From db3b479771e75aa17faa79c54085cb7bfbf91178 Mon Sep 17 00:00:00 2001 From: Guillaume Giudicelli Date: Fri, 26 May 2023 10:05:44 -0600 Subject: [PATCH] Add exception checking Add test for converting vector functors refs #19420 --- .../functor_conversion/conversion_vec.i | 84 ++++++++++++++++++ .../gold/conversion_vec_exo.e | Bin 0 -> 60944 bytes test/tests/materials/functor_conversion/tests | 33 ++++++- 3 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 test/tests/materials/functor_conversion/conversion_vec.i create mode 100644 test/tests/materials/functor_conversion/gold/conversion_vec_exo.e diff --git a/test/tests/materials/functor_conversion/conversion_vec.i b/test/tests/materials/functor_conversion/conversion_vec.i new file mode 100644 index 000000000000..282190625947 --- /dev/null +++ b/test/tests/materials/functor_conversion/conversion_vec.i @@ -0,0 +1,84 @@ +[Mesh] + [gen] + type = GeneratedMeshGenerator + dim = 1 + nx = 10 + xmax = 2 + [] + [subdomain1] + input = gen + type = SubdomainBoundingBoxGenerator + bottom_left = '1.0 0 0' + block_id = 1 + top_right = '2.0 1.0 0' + [] + [interface] + input = subdomain1 + type = SideSetsBetweenSubdomainsGenerator + primary_block = '0' + paired_block = '1' + new_boundary = 'primary0_interface' + [] +[] + +[Variables] + [u] + order = FIRST + family = LAGRANGE_VEC + initial_condition = 2 + [] +[] + +[AuxVariables] + [v] + order = FIRST + family = MONOMIAL_VEC + initial_condition = 3 + [] +[] + +[FunctorMaterials] + [block0] + type = GenericVectorFunctorMaterial + block = '0' + prop_names = 'D' + prop_values = '4 3 2' + [] + [block1] + type = GenericVectorFunctorMaterial + block = '1' + prop_names = 'D' + prop_values = '2 1 0' + [] +[] + +[Materials] + [convert_to_reg] + type = VectorMaterialFunctorConverter + functors_in = 'D u v' + reg_props_out = 'm1 m3 m4' + outputs = 'exo' + [] + [convert_to_ad] + type = VectorMaterialFunctorConverter + functors_in = 'D u v' + ad_props_out = 'm1a m3a m4a' + outputs = 'exo' + [] +[] + +[Executioner] + type = Steady + solve_type = NEWTON +[] + +[Problem] + solve = false +[] + +[Outputs] + [exo] + type = Exodus + hide = 'u v' + [] +[] diff --git a/test/tests/materials/functor_conversion/gold/conversion_vec_exo.e b/test/tests/materials/functor_conversion/gold/conversion_vec_exo.e new file mode 100644 index 0000000000000000000000000000000000000000..b2594f604ce9d125c550690d89cbb03e34d5c1e5 GIT binary patch literal 60944 zcmeHQO^h7JbsojCL`t$P(KaFkh|quzmJpHLT`nn!$bh>dmkI&?C|Zh^A_VQ8nVQ)a zd%8#6J&641MwjTC&DZk! zJBrzYo&)k$0cJMBn_9qO&6w zOIpI?@sT^hcXRPymKd&2FzX!Wi}?R5631S!5Z~lK5Ptssjk@>w5A^Ks>|?my756kjvnY z@%J45p2pv^&ce0#Ss1y2kH-P!#}nI6{QY0x`gBeFi&HOfV%MM9i@^0``#}&+knV?s z{Up)j?-c${PhAf(5Iu}2?7puGS3IPfLANY2=12f;b{^MK0JTljm1m&FHrfg~h8=ud^Ga6^0}{NgA0 z?=%~wAICGjOZlS$@gv`V;cw_3?=Qk&p=3|*Qa%&ilcG*=UcYeT8e&9x6#WnIeApzjeL!V5pbf2Z(%_Ivbh+xHaxkMZv5sQf)D6DnlC_Ya6Xh4-`Hqj$T0@8@{; zsd0dka=_s!PpGb{K)k;%9$xrYT*bSGJf`8@Gn>h~4_n{;4&ERcktnD9x0sp1piU~XR(y5I%28he~n`yZ?jlR4w_iMOIXiPJ|}2` zX~noE-tQ6KbEKPXQc!b;)Ob-IPa^I${2}~4PYddz&&Dy;1NttN@zeNI-#*QCReZP* zSbg#buE!>~t z??WSq65cV8jUD2s zOq{_V1yv?m>alwLr5}Ojg?-1163lfrqJoP+xFnZT^dJM(aalHg@l)LAX*W94ep;fv z(3SR=FP3OGJJW8JXfJlA-7C>v>P$;zIGMAZ|NeZ57UJzl`$mZt;_XQLtr9K7+mZI$C0dBLBkkXoXrVVc(*84O%X&i)x0H?l z0BMmnDOhc^uas$%g4IU*PMJ0-SZ%ZiW!j`*wb6dROq&#}Hrk(-X_JE0M*C@*HYr#w zw7-6_Oq&#}Hrg%FivA~Tbvt%OcqSUML(bq&1?u;FS3Imy9|gAXG_XT9h6SZ;m#-rJ zYvLXLKXCr;&&BilAL2@V7y6^1?$uSrDSor@DvlFg`PpAl`0FeGBCo%^z{8dQl+Tot z2v`0~#{c(}hb#XpfB(OKr0`E${H>G!PIBOA<$%Yg@zLVAUv5Kpws)*Epx^8~a%jiB z{4YXx?u3VHHU^_vICaKy(CWwu(vabk`fr$VCuAo%@Y|6CWE+r8Kob^ZmyoSO;~6wZ zaSDGlwy(zI)w}9_MWg5xt)f>L3P)iT@f41tS9I!qWxvqx^lhS7b_~rGJT+gp$xc1C z0qGaBX~#4NkbW^kcx=<}9P0`&Uw4jm1)%gF=L#^taIA~}0O>#8`v1bQF8+}JG1vb{ z|8cGWB>!Wr|2L1h{@*;-#eXp0Jl4e@=|ATBAL&2V`XA{(&iWr_zZxTYEUqtC1T{3V zC2x}J^CDua>H4yDHDpfACf4ZCx^?Hy?vC}c!lBVMge`RykAtnoYXyT6ut+Ci+AaXJ zt_JhD<4>%c*ot6nhqL9J`Eg|7rwnxwzwX&OckaCSHxGh{*)faavlF(@JnO7$<#z;} zbLsQ<#7+n623AuPK8o*eT@SIk6x$i@^B2N7b~yz8e;Ug>vlx}#ex+EWQhAzK)!{CNwp@9f;& z9hc!O>%zJ9OXt7@!WFf~qvgt9-o3f=PCX!B1+~RrMEY8;;=5OuVTeLv-NjC#G`+~m z>!EAiat^JHOV;|@<+Y8=o0~lQBx?C0zqfP1#!D={@fgR%{*w8E17`r&-ne}6&C6?- zngPq7sEm={ZB1__@d}YieLqEI|AxO<#um0WFjex^?<;(wl2qX)*QbBOL-L%K=Y;;l zKTU4?xv?yJ>AN2bp|w4kyvsaZ$)i1Yam(?Y84K$^Z;?ic!@$F` ztyz>slJ`UF#_fCCH|6f0I+!%xvRt2d+h-ME6g9M7@dJCprq0rfUrhyVc z2dD>|BPy8m3Ms#L_f8>Q4Ud*p1Ee7J0r}RAdQ^Qt+B&1yskjcUx3}Nh-EBx@{-@rn zULL-Orw_N62lt%NC7m7httfinZ!oZ|56_+7?~yfMN5k+g!_KBBJyA*`yI* zqXN@cUzRm>=B{^0&=p~bZs_ehw{C3TwD0X)&GJ%xPY{h7QC~R_pc}i6XCvto+@Xh+ z2}6ta9CZ(z!|2ZFBkXPy`JDlyTYUxFqHl)Q^&9W*-tEjHF%gX&?DU<{Z8?}oxl!Lh z%GCK*)$=VUVvXDqOG+ry5N!+JB}`j$X_q*D99lQG@9uO@b2T8ASJMv^Op@$`A$pcI zVQ8&2Cb9Sdkp<$F4ECZb>&qmx~OXi^TBFl#4E$15e5BJ`8|Au7Ea}dTJ z^gauFNq9@EOhOUkFqsdFrXmxORS@X3FXI3k>#?^(Hc@%ytzT0bn|Tv`*w`u)pstowf8IRclR)vpE?+0k34%kGxyKu1%nA?m%?W`Y)fD3o* zz-xvP7B4-r*f^7Y#~)W&1Nz#A${`JTjqS=FggziOQOlTN>9pvBg$$+;l$kwZ(;#G2 z=Ha2m9*v_;SxNm@0Vw%{baF}8FE&(DV1nD|FOjzxCmiqD+=hmvaE>LK}?XVFZ#$ zx=#91&H|FocJuu(edUk?gwv>A0V}GDeob*_$TLQsFvQS^jf}KOjVlGNSDP)%vnvWq zR?52C#^cRrA?I>{YY64?Q4>QPRwGh2_JEa?d)9J*n z?=cOn2a76B>f$U*bdvnQr_98@<^_7NFizDF1cag?V^Xj%%%~tv-2F;%la&8JtJRZ$ zG{jJasIP4#U|nJ4B@WA-P6G~w zbywGx>MIA?(Ug;CrM|l{hZP+!o|XE_L2_7EpY;oN(zmW|@p&F=YSjTHn#D` zK{7rp3XeXA91wvDlRCZ0MErd1Ssi(x-6gAc` z3xg$Dq_V56c+{_Y(S3IT|D-g$M9UI{>8aqT*mQ5?No`}k$7j)e3gM=NYh1Ggu=ak9>$^LN6?0IKFk-z z@N+t5Q548E3i@?93s@>NCdxr{{)Hjn#I~9+!&utP#k7rnlHo3Qgo(RC)+LX+fJb01 z;5vG)(EGPwM4=XYkKalHzKVd)6t49$Sur4Kwyz>6!$e%{hotm)hbt#7#8p_%vZVNdl&}|!h$5q8A>!Q^UHcNL@Mk96S_D(sk>SBnC2^)J3#?zwZ6k~q{ zMoo%MjU<@ETLo0bbl>vm)9TT zc3H2R-;#QgXX82ole&D;E@!F4;>oHQ4lV~#(d*j%%g)_!||N$c{FA0oh6aJ5ZR`3K6U-iHW6hQspeDzk|t zbz;$%C8rZpY(^oV)!I=iHoY{X;DjfH08g4x%7rvMf@aj9)uTC(l&AciNnJi^MvHl< zyKus?dbj9Ln$e5O;60GmbT($WPxMZm^ZnE-Xw7xt&{nH1p*DPQmKq~E4AjNev;%zX zEpe(W+EVNX!?M-cUJ#`#g!HG7HNm#HwlY*16mfGCVp z;SNTwtF{vpL-xplx-bO3`NRgqf$k&)AwIh3@uV5Qj+mKMmD;D`xQ#>?ZG5_tmv{+E(RhB!t z*H1DjSf1=6lz7$$bS4w5ZWv9lqnEa>6*nB{*Ja^a3ZB@O^AXl271wg=Hvx{f*mLYK zh{a~=V#4(~9I?0o4?@wk^%@6ENy^%QOV^vw24krYg9i+oz?0<@`cfXl|3?_O7%5hj z7!_FTpGAc>;4szLiHa5)J5k^O?cUha5C%M73IAb53DdKF9tyzP8a=e$|KLxWt8eaC z+RU5T$6Dr5C%J^&VvACeyXT((gg!d6$`W!pcWpA4Q=%B zJlaKH>D~|~MvGa$ z!}&R_7$^77)QwGYvY2=3nUajXV3A#1)neJ}z{EoK`V zXW@J%#Y2*{wAX-0)zCe6E=$|kvg^i8%3)(?#3ae&9<`=LG3hz9^lpqeJb>c2l^a(& zW))6&Rl91EhcjmxMHpEcIWZQ<&~ED$rQF!mn-m+ruG$f!$V07yNHl(3wUdCV-gmlk zz`AN@3Mj_sh`J(}~3E;Q!E_uw6JFdW*#m81r}4&|p;AS0u{br_^13071%B?rvx$>avrT zAmX_LPcLE3;F3wtq5p=SJy3HMhKjAwf>sCvDVVNSLN~^`suT7q$q<&=TOj=WVZlsRkLb7u0UNPnojI{SGN*`kpU#1%yTE-tJCkna;K4t0M(BeDg}KG$AMQ~Sd`-G8;`V*EWlBtHNgn5`S4BM zRrhklA+aM0oEqd|)O0?TL9v+x)45Y~P6xQv=djUz7&j|!+`e%a2liQaZ`{HWY&-AR zJGZaZ?xunHeGp8RbvbClAwLYR?88*aM!%-a<~<8#<}VjsP+jkggtCW`d6mA3tA3Ij z*RqgMbZZK4<>8O4f;)=Rugf1rHNzL;3;G2cb8zk)uGPsaD&}x8E0AMXAFy#u#H3)0 zF%jFHau2<99A%7!*-6#Wm-2#zQ!H+97FpM8sf6^CoC4xFr1F`>`cf_cVx2Qa{#-ip zoCg4EoEAWR>>?nSc8ZAe0xBEyx<~+G9lJRE35QldBv@=X!x&S@99}>TlAHxp-nSDW z8`KoRA*~RHqiDw`?y^f145Z9COpod)rCKl1Di2e@LaO!PxRg1ET-IJt_86_7WLnsf zR*ce}e$_+AX300q>|qB}P;!xKz~P}k79O2T+);$S#*W#z-$rUbuHEu3IMiCQG{Dl6 zi9>{SK|c=(P?Jyk5W$Hx{Q3L^u);$MYT9 z4nJEOf=xsnIy&XINL*W#?=5niHVxw%f5YOBE~qKtaDQ{}wF$-Qk_^P7=XO zlug(i#&`T-S4r6xdIk4!MbehzRLBtjR5;Tf0+hF=xn9Dc;%CcPzbR0C#8(p1RmjN^RM?bET zMFK1<=TW+Xqu>3}Y37x1*&J}q@G!Y8* zhGeNLUrYfjPVf=nCV-7&OQ`?ZyfzH0W4edS-EIRg@jT8n99W@4=VsOa?wPr z<}f1{lRT6Ie%R2({HVBGOMmaJTKbC)dv3dwbnLJKht)%p`eP0WhoZtzre?zm9HJTF z2R7wT61>rF_I(~8Yc;Bq7SPLlmyU#Ls&cya9Vd|OJ$Pe1zC?p_a7=F zht`FTT}|;C(INA=HL5UjSIw$CAmY3<$ec?0VbrGR=b_jDUhAGqA5eDVDhxfaZ^B{3 zK3+0^Tq$G#8my3P8ZZ-`$d9(HF>sBN%mHf*Tq8glC&nq; z<-H`P#inWC*`x{JQ!+Rd8=gwar4jm&on7DTtRSc^=RD6*L^ha6nE+wqk&8d{Gz*Qh ziBN=n(xh`V*re2PZEf#OrWdnmmG>H0JfDx_5+musvB!b&#!+liU&4oE&UK`Gs4DF( zqu3_;u>VQ_z8%?BI~7cdIIPiIckb-&STf&gSDnZVZ8<}c^6>gjgA7V?A=7ab;>5%1 ztr`TVyKq7Q!p}|BEWJLUoSmsZY)-eKhqrOeVPX@dK#sVxuS6yWJqO_?&h@eW0&dCF zOlg9sufFj1@9TOaYwam#R>%b9*iSNFV6NWCDQ*atNIGA0m zU(!!9TuJS_m{_(c?P|GE2qT|%>zgzIvKDi%x)oCl`r78vxZ2CCOi&zS8NLIt=;tAK zbS%ma%}DW9HCJqOr3^uo*F~m?`W#{;*N=cn?RU3tzrADM+qqiis2D>WHd@U3rWpZZ7#quXkaV%UioT+P ziF+=$$pqK0%b2YQC)K`SiA&haH{RXt>Rwh%2h%vVYUET(ldFE4(qhvOty=+-E%eIzLTsxHAymh3{K^ME`3c`!4gfQ z#caaiIG8U2AFjp=+MhlK4s}g4*itU`%5v(8|4fqHXg->7IBnWBWWu57hg2k&qV#*P zYUZ&@A{zdxKcwOHs>6@p2!$UE?D_+<4iuhZf(RWq(Y}L<7pLVS8TQcFTSB2Yl?fbhO`IE2p zc4^Iz-oBIvlI2V3Np(&1q$+=Ts@0!9x9>{Uw_2{M{I^}Z=0w}~)bDNIQ@{89-L80D e-&5&nyLQFv`kpGU$@MeRm&x~Jzvi>j)Bg{ydKH8K literal 0 HcmV?d00001 diff --git a/test/tests/materials/functor_conversion/tests b/test/tests/materials/functor_conversion/tests index 22b554aa1c99..54d68d1e075a 100644 --- a/test/tests/materials/functor_conversion/tests +++ b/test/tests/materials/functor_conversion/tests @@ -1,11 +1,40 @@ [Tests] - design = 'Materials/MaterialFunctorConverter.md' + design = 'MaterialFunctorConverter.md' [scalar] type = 'Exodiff' input = 'conversion.i' - exodiff = 'conversion_out.e' + exodiff = 'conversion_exo.e' requirement = "The system shall be able to convert functors to regular (using automatic " "differentiation or not) material properties." issues = "#19420" [] + # Note: Functions are declared as real functors, even functions that return a vector. + # They are excluded from the conversions for now until we find a solution #24502 + [vector] + type = 'Exodiff' + input = 'conversion_vec.i' + exodiff = 'conversion_vec_exo.e' + requirement = "The system shall be able to convert vector functors to regular vector material " + "properties." + issues = "#19420" + [] + + [exception_checks] + requirement = 'The system shall error' + issues = '#19420' + [ad_and_regular] + type = RunException + input = conversion.i + cli_args = "Materials/convert_to_reg/ad_props_out='m1 m2 m3 m4'" + expect_err = 'We dont support converting functors to both AD and regular material properties' + detail = 'if the user requests conversions to both AD and regular material properties, as this is not supported,' + [] + [wrong_size] + type = RunException + input = conversion.i + cli_args = "Materials/convert_to_reg/reg_props_out='m1 m2 m3'" + expect_err = 'The number of output properties must match the number of input functors' + detail = 'if the user inputs a different number of functors and material properties, as the conversion match one to one, and' + [] + [] []