From ec48e51802abd15e7391be549a5bcdec0f6b52bc Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Wed, 23 Oct 2024 11:42:22 -0600 Subject: [PATCH 01/11] Fix the way controllable parameters set and recieved from TAO. We were changing the internal tao parameters vector and we should not have been doing that because it changed the way the tao optimization algorithms worked. We now have two parameter vectors, _parameters for TAO to take ownership of and another called _local_parameters that is still owned by OptimizeSolve. We can now update the _local_parameters with the data from TAO and compute our objective and gradient from this. This causes some poorly designed tests to diff and time out. These tests will be cleaned up in next set of commits. --- .../include/executioners/OptimizeSolve.h | 7 +++++-- .../src/executioners/OptimizeSolve.C | 21 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/optimization/include/executioners/OptimizeSolve.h b/modules/optimization/include/executioners/OptimizeSolve.h index ac72c7a572de..e6e7b464d7ff 100644 --- a/modules/optimization/include/executioners/OptimizeSolve.h +++ b/modules/optimization/include/executioners/OptimizeSolve.h @@ -173,8 +173,11 @@ class OptimizeSolve : public SolveObject /// Number of parameters being optimized dof_id_type _ndof; - /// Parameters (solution) - std::unique_ptr> _parameters; + /// Parameters (solution) given to TAO + std::shared_ptr> _parameters; + + /// Parameters (solution) owned by Optimize_solve and updated from TAO + std::shared_ptr> _local_parameters; /// Hessian (matrix) - usually a matrix-free representation Mat _hessian; diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index d70d52f99f46..e7e10a55962f 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -47,7 +47,8 @@ OptimizeSolve::OptimizeSolve(Executioner & ex) _verbose(getParam("verbose")), _output_opt_iters(getParam("output_optimization_iterations")), _tao_solver_enum(getParam("tao_solver").getEnum()), - _parameters(std::make_unique>(_my_comm)) + _parameters(std::make_unique>(_my_comm)), + _local_parameters(std::make_unique>(_my_comm)) { if (libMesh::n_threads() > 1) mooseError("OptimizeSolve does not currently support threaded execution"); @@ -71,6 +72,7 @@ OptimizeSolve::solve() // Initialize solution and matrix _obj_function->setInitialCondition(*_parameters.get()); + _obj_function->setInitialCondition(*_local_parameters.get()); _ndof = _parameters->size(); // time step defaults 1, we want to start at 0 for first iteration to be @@ -357,9 +359,10 @@ OptimizeSolve::objectiveFunctionWrapper(Tao /*tao*/, Vec x, Real * objective, vo auto * solver = static_cast(ctx); libMesh::PetscVector param(x, solver->_my_comm); - *solver->_parameters = param; + *(solver->_local_parameters.get()) = param; (*objective) = solver->objectiveFunction(); + PetscFunctionReturn(PETSC_SUCCESS); } @@ -371,13 +374,12 @@ OptimizeSolve::objectiveAndGradientFunctionWrapper( auto * solver = static_cast(ctx); libMesh::PetscVector param(x, solver->_my_comm); - *solver->_parameters = param; + *(solver->_local_parameters.get()) = param; (*objective) = solver->objectiveFunction(); - libMesh::PetscVector grad(gradient, solver->_my_comm); - solver->gradientFunction(grad); + PetscFunctionReturn(PETSC_SUCCESS); } @@ -387,10 +389,13 @@ OptimizeSolve::hessianFunctionWrapper(Tao /*tao*/, Vec x, Mat /*hessian*/, Mat / PetscFunctionBegin; // Define Hessian-vector multiplication routine auto * solver = static_cast(ctx); + libMesh::PetscVector param(x, solver->_my_comm); - *solver->_parameters = param; + *(solver->_local_parameters.get()) = param; + PetscErrorCode ierr = MatShellSetOperation( solver->_hessian, MATOP_MULT, (void (*)(void))OptimizeSolve::applyHessianWrapper); + CHKERRQ(ierr); PetscFunctionReturn(PETSC_SUCCESS); } @@ -424,7 +429,7 @@ Real OptimizeSolve::objectiveFunction() { TIME_SECTION("objectiveFunction", 2, "Objective forward solve"); - _obj_function->updateParameters(*_parameters.get()); + _obj_function->updateParameters(*_local_parameters.get()); Moose::PetscSupport::petscSetOptions(_petsc_options, _solver_params); _problem.execute(OptimizationAppTypes::EXEC_FORWARD); @@ -447,7 +452,7 @@ void OptimizeSolve::gradientFunction(libMesh::PetscVector & gradient) { TIME_SECTION("gradientFunction", 2, "Gradient adjoint solve"); - _obj_function->updateParameters(*_parameters.get()); + _obj_function->updateParameters(*_local_parameters.get()); Moose::PetscSupport::petscSetOptions(_petsc_options, _solver_params); _problem.execute(OptimizationAppTypes::EXEC_ADJOINT); From 865b96d8ca40a8b5d4b9cb82037722d7e45a0c15 Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Wed, 23 Oct 2024 15:41:37 -0600 Subject: [PATCH 02/11] The change to the parameters vector will now correctly use the nelder mead algorithm This test was diff'ing because it relied on the incorrect use of nelder mead to converge --- .../gold/optimize_nograd_out_forward0.e | Bin 81044 -> 28 bytes .../materialTransient/optimize_nograd.i | 6 +++--- .../examples/materialTransient/tests | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) mode change 100644 => 120000 modules/optimization/examples/materialTransient/gold/optimize_nograd_out_forward0.e diff --git a/modules/optimization/examples/materialTransient/gold/optimize_nograd_out_forward0.e b/modules/optimization/examples/materialTransient/gold/optimize_nograd_out_forward0.e deleted file mode 100644 index 755413e2e3507aa08ae700e5535eccc4144984dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81044 zcmeHQ2S8Iv^9Q@wd)L^-g4ipLie1FsPeTX+A|b&fAfTT0&ag9j=i0xAlq zAOaHUXVd+N`0Vv=>6m{%mypZ!fTSLHWn-Y0%EDM)2s@Eh4RwIVr6R}Rt>_kAla$WlkZz(1v!`(;c8 zOT1E@%{qFnh4P}gHTtEr>h`?uoj~`haH*1}d#SEqoi^@VjAU{1yO+u`i%S(f;gXzK zr;Qthkt}Y0_r9llRs51z3AY>)>$GrNa4?d^&F|hpbgxn$)bcIQf}&5jt(Dg;NLSc< zSvgct{>J>(zITh(y=>Yl=5lYi*1ashm2$cFHO7~vf<=uBmGL8;tgO19)yV>udrJ;J zSI&zk!qTe5BPB;im?Yy|>Yis$@V9adA55mGthMsFD)<{Y19@r5!DlKlys((<1dclV zlp0*;WhD44XHX3>oD%(CFMn1 zdJkceBVU`?IKrU3)BcTphK;9t7zY7<>Uq|Ga)VqXu>K1b9_t4v?^ni}nSm}}x_s!qSNA=IxJr2!%Hdxv2ev%0 zK3k4iUpM~0eXTCHZ22{n&(=$(_St&H)V@NQ6JTnet@ljrv-P&AeYRdUwa?lSQ~PXv zX=0x(mp`iSD3Qx0%n;g-DFLa_#Z~@eCY?#OT;lNqr{2s=Byj$bv)}ATFaJM!{ukDN zKX(21Ls$NVi6;rr7!^BqMFVRzen;bFG=D&2e>Cn+Wb72sXI~+q@GANNWG8%sW(y|q`pYD zNd1udBMm?rh%^XkFwzjDp-6T}!;tKeh9iwY8i_OtX*ALpq_Ifjkj5iTK$?g&328FY zPe@acXs(otacV@|ePGK2scp+5Benp3Qew2iW{)b%E6bRwr0}V0DAl3sy&1 z{a|&4)f3Vg;)(cRb%w&k2k8#QQJDB3J)$@Y6Cb2g6h~p=gY=8yC`^2iu2CF?i4W2{ zilZ>`K{`lr6ed16NEAn58VhcS#6coGCO#S=HCBa*k0z=(3KJhqRdEz1KANfGC`^2i zPE#C(iH{aY6h~p=gLIwZC`^2`M4~tfbC9SEP#lGcx7J7$M?4X4Y}ueN@kV8Y;wVhK zStC&#g^3R;I}}G@;-fth#Zj2}pfW{q6ed18B2gTLi4Q7k6h~p=gUTJnQJ8q^f<$pv zNW=$Q9w|(GbXUbunE2?SilZ>`(Nh&iVdBF^6-Qy>qn9dF!3=& z6-VLTNJEh*j>5!;9TLS+n0On8L~+Cu@n(-STooqXMyTQ_OuUU$#Zj1e8>Nb)F!458 z6-Qy>ZHy|8!o`_LC}( z!o=GYRUCzhx2dW)3KMT!RUCzhHwPq&qcHKtLvm1si8n_iilZ>`#z&$!;)!^3LK3LL z#GA7!j>5#7iz<%7#G9)sj>5#7P!≧$xaBj=~N|Zb%eIVd6uCL~#@*KHQNgj>5#7 z7>VMDC*n@^Z_`zA6eixJsyGT0Z!%RJg^4%0DvrX$ho>rz!o-J{DvrX$#|%{* zg^3SuRUCzhHy>4;Ir>GAiXs(5DvneFsU%VaaNZ}e_1^x-6S1l^^ny!RIn5|>jvLeAa52Wcx zQY0CY9LW=j%H9klDq~cxhzF7->3?G+(pS>Men_M@BqITm2R-~FI}*qb?#%m94fX@O zepG|}z^)(F#y_xQ7xw+AB516~eU~g6b8Mvoo?PI>arEH~8$Nt=e-0TT23+TwrJ5^h{tE)loE3r-s$M`u~Lm5{?O z>h3<=Q|{p@m$l`~ylk9t)t*54la-Z~8Ls)({45d6aHY5M7UYjJSd5Qxa4E3BNOp}# zVU9;8Q$x~}j>F-4iiOiX1zaAV1jwur=4d$^P9GXREP{@2!)YOwaGeCsJWr9F z8oK#70u;)HJQ3GfDsksByA5b*KkY_gplvvIea7@3J;p5ini{{{*4*d=#3hs(HZ@76 z#dn)jIJx2hhr<(zBr~{TfeVV=OTe8zLqPM|YH`|dsQHi&4vX&xFECR)Wwo>xxC|l-qw!G>$Br3p zMnG_o{vv<$8rc1+*QjToAUq0pMJAR(r*H&ig8tgmR(eo&W zGuf)GlTa$;yNU#I6Yxs;nr9WuRIq(*`!Lln&&i4F$VVw@c+h2%0Q0P3HMNcIqx!E2 zFwZJhr!4D7(TZgNWy2k(;f4=ovM5H&DXTB7C-Mo>qj{DU8%{qq%lg{p14cg+AkPu) zyQf@$I{$C z^D*-rj*Y5^uJvN2b<~Q`P9B;lPq_rQ%;K&lu@m-KBx2k=t)+>Em*qU$4aA|LHYLw? z0|931R%oYAZx|aQd9@n|(6DjSeA*2JI7Z47%Y@kT(94l-B()nPQtYLOx!8O_)9lO> zinQ_s0S&FbcznLVgF(d2?bsdl7C5PP$P48HDbw#Z1Qj{V2IwK=<7RfQQCLjsReH#C z^5Tj4`i#BdYD0>Rc2CIX%J@7yUO-!`QJ97U@?8adH!jc9TRST>VZ$?pFLB4=9%^|h zhYHyGlY(x1XLv$6)2l54OeU`%Q!B=oX&tJTJWTNS1vPb zfa)XSxjQ=XxLCgtdj%S5S9U6N0Y!2NtKCLqigL^W8`@kAjCQ896SV16@Y13lbMR0O z(`b-XA)`5z3UIVaolp%fW{RMVHO(g%%ux#)Yil{z!$aAt&_F3ehU+1=YN*+ety)m) zqF5qz=Q65aASJ{^Fns_9P*p8_2Noj}1kA0esZO$$A$2wZVm+uUIn6a?N~;crs0{+@ z=|HIwnOtsHphBWba-Q8DV~mtQ?8K!8zM7}(0mG9lkV>&Li$+R++7Yl|8m+pE!_hWN zdI~fnLxak4Hb9Y!L@JcKx@(ec!%-?|LD|gCAy(0R+TJg9S9fy_FM8S>l4TZZ#$Sog z?~@^Fq-g>5)L~4f7*u@;T~KB;BBJc9$ml2>w5oCmYo-mWVmTZUSC6u2=dz(DK!k$> zIkF-fpf$RJYK<9jsITT%BPwOs$q+!C+EUqLHHucihNGIPC?F(qr~%}9@c3>x`=W)1 zdgy`2S@8=9M<#$I=*(9ou*7*sXJy_T37UZUl68#`-JQ!E77O z437e{hc|LKVkVcx5;3J652NtFCZdN#-Au$xF(8kXfOs5~RPO1)oH?eh6xgI2UO9-B zn(ZX?(yKqDHmwY*4^@CP38fFwXbyAJZbq>UvU@XnTnb^Cpof& z^swMyq+X~t%G$x%Q;f~>oQ_c&0~ALMsFyv&x8WF&#Vm(ZQJXZE_0;_8v@^MEkO?58 ziCr>05seuhrzv44p|dk%Ou3Fe*r32<7rga=GQ>loT%ZMJGc)eOnmi-)5D$@~B?jtT&2|7Du*p{Yd$cFZ9wTm87cu)6X7}fkVbQ;r>)6|((vj_#bIs@ z97BqovZSc{c={VThF1<))$qKT5h)z^qWLmyr6D~uv@A1#IAEb}aq0pZI)11emdUkG zYIvqF9b~STj602|9<9P=n3SjNtQZN1BlBEb2SuO~Mj;cBA|$fP(sMvex$FJB;&NmNVy47VxTfH~@GO0uDbUO9H59LM0v znbA{5q>cg?8tgSZ$yBep;|fwC4@d8FHXsZK#AC1>CA!v_%@V^o{1;5A55SH$(?v1K zgnEI@j$t>cR`)qO^SL-kU;-{FJM&-N$I3-H-Opap8b1{$np6;Ap0o6Z*EatTR`=QC zARxAKM+rP|?p+|YrGvn+(<&FpSYc`;NUbkiO>Fv=X|!BKfO9GYuj6pV_+b0~eMV_> zkyn@=XUvpt$D749CYP1#7;{0yVP{6!qymq&{b+KMb~5JSh!JltbK-iAEddOZ*#T9z z<^$+ca6r|q`2hOn4QS|UmLG2s)KGy`ED-$qJ98dNGA!>2y4bYSQ^w%>=P-E&t96B`Z0&kvF z?}jGhIb?R@C?C)H*O(-u9`bV{sbY)){0EkxGfLqll8m;qc;D7HSJm=%Mmmt$!tG92N*^C18drGJpeVDb@d~cYm={O&*eSFM=RSlrr2br z;(_G;-EAA~bM$$@K2jQ-T_|d9BdUfB)vS|Lk5f1B@~ns(*=H zmPz@h8gjrSf4^Nuel#r&0xY!4Bn6GL;q;X_`3#_y-x@*X5uzsx?XpIG6f(w0{eb;t zoIA=sFRv{{!xusQ1BN~yyKF=UT%t7ztesq?+8Da{q_9W-AK0aCc&7YdJ^Fvalsb;1 zV^0&O>rB=d$-^WX^OJgl##GHEs!;MD#9-y3oT6c`R8#8N(?NiRjU|$T#^KRY0zCLY z$Y_lfAvxT>zgk53 z28bCa0bhhm8FG$c(~pKPg8B#6IhcIRLAe=%`SQC!Di;c}Euk}J#wX9+6*e4!x5UXa zpVbYTydt@qd~$&Sq=gvS(n_yFXH1eAKxTc19z=E}2DVBy>B=KSO#H9UR{VG?F^1ux zMW(dz`4~~sL*;?7{n&GpMo1-i(tx|lq9QxlbtoSrYE1Q&=iDs;8fpSeejE)g3T3&> zaj+C|XlNT-DCUbiodjGwhZDDe;9fHqSL|7-$7Bs3gH=_p*f z6nvK=hr?tquEka*UB`+VQBraOqB1%wPx(d7F+9m8Ke$Q89D9}9aj*u-k18_NmK-NM zW|rBJg9{;X(-d>67MJHt>k6a-XF8R-pc$hARHLZNu&U%07>KQA5s-G!F#EVzjBLK) z?ZaGm_b72~nB%O;@~}MQ?c+gvVj=AcU}cq!J-jHW?AX^RPwr!qtqa9+SnyIppg5$9 ztMz1_j!t;K6dkdlyPw2x#a150EEV8BW=HHX>CT=RZUT5B4_6*nDv>iADRZRTa1I>> z@;vY`Qw%kudG_>-sT>?Vg(4?9ok~?7N@fV~NHX;~jfSfYAJ1!(N`!b&8e53504on) zqWw~aCs|WttE*^bjjgW05wzgOo*GNIMqPQ{c8)B@2xB-Tz+6kT4QIkc`oc^>9j%Musjt{QQ6^iyqtTLOqn@`D-#f zH$hvHhUcziq}}8q0na%HZ%RHfQw*wM@jM6IC@T}{>4&m_2H~OF z&}M3ph>l>>dx8x1m-`RsGuCcQ0X3TeR2ued+m_Y&V)zL>`ZHGxu%kg~CJsqkR9o0& zxI9!YaM4;1YlA|@-D3qzFcm#1yAy)vtuJeAIP^iXf;&~)M%g0b&TtioxzrQV7;3}I zGVasX)X!?ssRM>8cEQt9z&n|7Y!`PIll8$VX$2U^#>N*j6iXGHrt94nIniaD01L;l zNeUXL8pp=+<3!C^wIp?A$6nKuc;14HtG#|$180npQUPieUu`@itey(cHye!R!tkPp zfNTdBTTFP`P4?r#4R3vE0aCY~j*8G;k!@&MrnKeR7%AWprfepg5g>g|Bo~WfOv@pk z){QZlqCD%K{p^WQj5a{?DHUU6=)&{FE#M-FBTtU!M$?%~BnXu=CYSRx^+o~aR_usL z!IFxy5Cs8+SIG~fn*`1fm7aS1Xa6kd` zA)j1MW+A}lgY5^88QjN?GiLBG{H$mH5#0Xv{c`=57WVX*6-2rzRbLyfHq0kRbDr79 zA{t&&T-;5ZDK27950ONFxiczLT!l`#783^0&^alSFYTZXw-nb@vALk*8=lM4WcpSK zs$mURY;0f)-SMzv=A@vU>>3W3XMf(9qNnWKa)r*!iIjL44}OwHs5zn7aK*-R0G)B< zg6E;V2TmNr`Q&sqxhOl3*`j1^`?2da2vF6r z$njBL`VGsnq0PDf2ZvIQpq}bD`gnA1wpcr!#H3tG=7ddc{1yS8C8_MW(D~r_U-hNI z0=IDp@E_QFo98K)+8rqE#OV(+9I{_oRW9VjwjG|>PCt+{w6>vVaHIi0?d5@mTF=)W zzXK4PM|!><`CWiQJ!i2Q1E_3eYZ_c62DLM$=;c1fg0R?MZsFb9r?s!8O$&O9wN?90 zt(n(pLKJPO>Os>_Cf`Am=em1iWSGy+RzuI7Gx0dK{_^u3u}YiL{(sP>u-{oEwJEeI zBn6GL;S}1Ge3YJqrDZmyPPp#3(54tZNB`fpDP0O}N_I`B8r!O^=_>5(=%%<*+LR8a zW0A_TN%|=rRLLX2LYqQT(6~aIlCSQQunKL8Mr9~uOdI>ZZBsP;6xO<6LJIpSrmL{? zElCF7ptLC+O~)eXu1Rc4$3mMzvefGeZA!k1PI4=>DcQB>-)K`TqHpO%m zw%Na63W@#h)c@k_5mOT}W)xTU@l2I3RB-b*qpVz%vq$U|9>Rv4=+uw|SlBfqDQKJx zXE=Tx)?Mh!90brWr_l7suy6{=1jBtok$_p4pvekN$cFhan~vo3xTGhU^?l6oTpAp8 z$cDrGk_SZgpVWZf%n<@=9Cg5kCp>b#u2L8qyvi^#rChera;{Z{rN19&9BJd%?q zBKu=D9tkj~fHb$Vp#t;BBsnLd@p5DU^<*N;Sw1n>OnM)M>U`xM3%FBQmuJ0g*1SA5H+{5*m_gV{>bQ~7N8zP&8=)mFQVqf z?K=^ma)m)Yx8{k+{)jvhplW_eFQVpFHl+794UYuKUgdLZo`~#^)&!_tSD_bCb1NIt zdmGCY0cNW$zPDTxpw`+Cy)S1u)6vIVw^o=T3P;;W(OPG18%2vxtgYJNd$p-O@u5W> zFib=;WWyctTAMoIwKjFeYi;U+*V@z-uL+QRmbzhBL+v=szuXh2zmcPxWTr8won}fh zr-1*InNpCu4PcWvH2u)MsXy5FpI#BB4EEptq~{z z77h`R6f};uc`A<}XGd2w^3oTgCrv&?fIIf^AVuad73Rzd?b^$zeu_4rp8C-6wZz!~ z1$^ATpv9;$Jt;ka8b*x)EL^FpQECbqGZ&y*`ujh;QkORA;UPX+%BPiTW7LKP)F_{+ z0Ch`=GE)pMdTI`pfY})}Cdv6UMQ~46f!5nAYe!0z$rmT10*dr!F}}^1Br|~7B}a@a zo$-MBvKTS3!P$@NjXMMJJW>4Wx{o@99LV&v8;K1ihx)Qu2}oTJYEjc4osi}de{H91 z!K$0{)}8dcP@iGTGmbdKQxx%R-dwW97#XSn^=HfX0P4+_?+4Uj)EGb$x3NvUpz&WY zQ8>UHM*cj^wNfCtg-P67&(qpXMv5WzVx3TtU|Qm43kJ?0#^6>@??28Bj_lG!x%oc&tQLO5acAv)3B`zl)a} zUu?WzzUgH7&z@d3eJl=py~#kloX=;MC;PjuuX&&H{>^ZZ$qzr3ze&eu<8^V^>+i+W zeO?!reLu^W?ll|F;;_%NJ{!;a|F!hySM(r&$%jo4Fe<(AguuQKFtTc&rt9xO!0@rN z-*$|`>l(K%tX&BKL&w%yTKi837<}1xo!<-y=zac|wwE0t0H*uE+qMwUc4yXum8BuT z>U=~M=NAxAZG)uTz@F&WdNsmp3i$VLnG!j72lx+guQ0IaLpU2Se%u_#vvBs$E5}?1 z#KNhKem(E^>IA1Y_q^Uz&WA%&wok0QYCas|RqS+o!~@-QARm$Q+jv?cU;IDbFKh+@ z{enNazmY*ekMZAz>{|{2t&(l8{A~^aRStLvA2b2~p+0Lp{A6%8bm=P5hUai<9}FCH z*&Gf@E}W`#ybX(w>G_@W$@4U(FY$8Ao=XtVZS|Q?4%_L>fMP($wN?1Dbw5e zqug3oeEE0iA;jAe^=R`+2&gx8PAkDM2q@>=q3(xq;4fYL<<1#hB}PrI9da;{#?V!lsn2&h{8^^48BkiUf=tXw&W_j`*eU3)`7 z3IE>Lhui`GT_1bK^Hbs6nxSr|FQ0)k6^pF6{OLR#tGVak$+a!ixc&nd9SMzy#QYlc z%c`EU!QXC)Z}*X-!GEG9?0fhX{AHpdlb#I*|J`SHM3nf9`P}WP>*Lknf3LSC?^FXg zcj5T>$h{TdRA|#`wgJ1;xMzb-tqO9vg84qU`n}FO;cS>k>RzwCa5klWw9jomoNI8& z`u@r}aBgkXR5y1E#9RC+b#e{x|M>HMn}xN(zoVPyqv-n7tnaHg{G%`cx{!MTeKW~O}TfOtON zzKFu%oL>(In<0DQRG?zt0-+|~4ml@ptLzyGhxpTvl&={FhddV~aiWEAXt&~8|2Bzm zxF>JUI-k>Utp30gH!n29^m;_iYvqXiEsFTCaXjLslqtfqh7&U$p7xzwmF4%J^5I3L zu`M&pf6Ld8*tc7Q5m?6t=K@8adg7aM;*-*mG4XHPGiJ{E_){?kCboX=;M zC;q;EPTQA@-{|h~%6WBFqFVXrm* z|9X0J=z}VM*z~dOrtmjzZowPgK=`YM{l}$sfbeH;WLqUQ@w$2AK40fSc;=k}*SgPy z@U&Nbmt8Cl;dk4QzLAg$;W5{S6|vd{;pg7UUW`nH@Uv|PrtarL__D-~4kw>N_|nUR zo^JjCVFT7awz7H%VS~8wW$sOe(E5H42fw$3&_;tky*$l_;7M!hnJ<0A;oRil0y)Fy-S@=VPhfu zkDdFDz5W20 z;p@Ke*Udq>`JVQIB1sUo@T>c?4=*5ePo1z8eJ;c0lH(f(*6@b2C+@zp|FB(yyUgj- z^{$x^zI@@@)xTeX@Wo}4riC4b@CBk?Wx16Q@3rlPM?MhlzCUrTWgLV>%(ic~{5QDT z{nemK$KOGS*^>rmH!X&M8n0_!Evm5tVT04%Jcm$zH7FhVG6cd#JgBnZNG}L;Y}#sF zkGc@{Ygh5e##15e+Ty9QxVjMT!C$dYQ31j}y)E;xOHsJmya&fY9txK(SY3EKvxJ)8 z&?X1x_a9OVLOEZ%*|(Skq3v&tekW2u=(r0jFI+N*(0x7Ax{eqHS9?C=?(+|Vu+QRd zu~Uygc>ST1%1&h*O4Q4cG0Yxw*YoVi=O$A)cF;cSJ=OVUe>fU{?Bb}m0litU-EFaAWm zxOCxgy$Ks?Ab-ckbbsWJc(*@F$4`Vm%Wi&Ey!dSv_n-0&tj}3HkXyZOsC_UsUT%D` z@rCxV&>kw=8wG7oz+ zkh1BO-gbwW0q^%dpI--JI$t}zzeqU5bZpamWtl?|Q_G6~!o3>A)M$MmuD=6BKl}aN z?B)+4`e~OERqow@sB_6@1v3vrRKUbT-413!7vffyTy4wrvx3^A>X z2QOOQ3Suh0y;WwwaESiPYX75OjzZMM1`%C~Y=Ow&pm+PWZH2JFUQes8cmRRF@3Q!^ z*qp`3^!yZ4LOKm%x|o%4ycC3Zjc*m*;{Y-BM%er^q$|V}e=wjZ=OaX?hzDf+(F~#@ zr+GSF?*x%w+b+92Ne1EOZnD<7U+{{&(x^?q{k z>uZQ9VbOZPAxDUQJ#v8A$7K+GZ_zKiir0mx$4i#&KVktl=R6PXW{Gz5P^n5qcRYun zw9Jm9GM=k(qo3ZYd~n_?h<fAE6nPNQGDu;iuhnwc%d%a>e!_5Ue&pE$T zhFjjvh9CCWhIm(}dTnY2(Y>GfPV|w&trL>_8)gaNYREc=_HXW~al`gJ8C!Y6FA%nM z-%pmFOCaph!ZM!DatJTcyuro#(;@s=)8uNmZ^5-%vE8N%6XE8AV?{@=`+#^SdX@~a zhR8)9_D^5n2caukl7m6#0hyMa+F!XDH%X-|p@E1upHalh}ImUKaPC@(b-@ zF8$-e{vq{0*?t_`zss$^`Q!Ev<5lCOaY;90UpwxGxO;WR``8YJxR`aW+)vhc-K52d zov{#i_2;>z)|Y~~VCR^9zn+D-{gUTL%{dUayX=i}s~$s~H@|9;aStI*{y6YV=VcJr zDPcsrk=-D!gQM+}gQ;-$r4^Ge~tB{tqI#9*tyD-BjN!XTu-m|?aS;zIlXm!>^~6sI~l&W z&P>D$8sYn8IK*`qk9#rx62z5DaOhR*1l--Rq?F@<)^NLB)S(c6H@NBMxzl^=3%G2? z?|c;!HMkx7`&gX12yvamChZtk72;ZlO)Y1665=?vOJ0rq0=MsWnLS}y6^N=;>1y1&4hxD~3R_`*9Y0n(U^U!z zxi+g*lfH1*x4WA#{2SceRpMN`3mf6?t7b|3O+Q2I2^&$*R`ua-Tv5rWaqr=F(-r|Px-f}0-aUG`U60a101Z+z1J4BT$AxOc+}7ZI;do5&*R z5dHVX(N!f1h!`DI@~6N|HEwXFsC5$Wk`P>`;`8zI{2{ni`MN{*b%)?-O=ORtEnF@p z-|w((D1=0O6us#BCtT~gZcEEg{gA(`F@F88AYNqCz;T!0a{A?AD+4y$YQY z*k~|>{QB+b;8B?nveGv*FkGrze;^;dJcjwAWk_9J^0nDcNDMt_offng61ToMclv87 zNaTeiH+`H1iDm8Tg$nmV{DGSl*9_SYu}yaNTlD02h_=}1?zOTvgd97S=H$X>@i9G$ zJJ*ixf<*uRK0SSFLgKbIe$SuVK;lfVO%0cAgTw(-#?+k<00|$4RC61^hxnko^#|QQ z0I}nmH!otf9-?izmmY3k0U;kZhAyx7Rf8+Fo>`pN0upCTxnMgP`E{JY`L*&x#5=w8 z%~A;@*4;O+=(#vZc+hbD<dgm@#McC_JVc!poZ2EeR;pVbD%F=IlAtn&CGEc z+?tBu_ZB>SKIopP#tTR+H)dvXT`NfVSgqj$^LdE3)^TR@Q;^_azvDIjW4J#oy$auc zBgD-=9&=&nX^4sFS+|vW1YF(W=XtAwTFwx^yTQo-j|C9Fv-8{FtdbL|%LUg&X zzpoT+1knQ)q+4F^3(=uh#~sd?1Ti;6sV&1_L+t3miypSx46$LIXFDa?!krawPcN<* z1UE+h2%K>;DNtzIESLV(lxqa?+;b`jOY+ z>fV)t_<9nEymYeGlc?X}X7IH6?(SiTCqMq6y#rj?(PZ4kbxl~@f66bkhlTdA&>pJ$ z!8!ZG`Hh#RGUKHkK#{(qg#V4TpiuDahsI0+MZ&-<=f73QYu7*C;kpV%)X=JBmK_Df z^(E(r9xn@u(<53Qh#UfnKN|M_^(n?LId^2AJQEa)2AKJlUk!?poqk)l^Cl?le;-|M z8V8aV-CNP)RUjlS-n{1U_#}w8+__1V)(zsVOD!J}@&tu*C1Nqolvf8_;$d_wKU)ue zlNy6!z=0)xgL^>IDyM2|ZuN%vf!m&(nLikA_bSy2GBY9cwKUkKbQX(`>6z00-O`De zzBO}qly^fs@ig&FOHeGkY3}<64;0f@Zdg`46%^g(ZQf=hf~5WJPVQ(}8sg`SC~NWO z-*Efqv6F0{&w;B$dL^EHc3OkG=-i=E;%HDTwGMDwngoj34f>3T8HjkH-9Ifa1&ZOV zW*n8T07bL7qSpnbAt^r1+ve?kh<`mzT8`fy?vx$%xk}I{2&>pUY|3Rz4eszkp@Ggp zDDO98H=XpsNLpKZfOXp~kaTcAZ(7Zs zkd#>GihI}P@L;fLbJ;DkA-Pjy3(wW#@%~FE-Dmnjd=<&GKW3hTD2ECc5=7J0xbYn} zkLXsZ2gJAOzBW~c?W3U$5?4HX0rB(Co~?Zm<@oN5tk3-$aR2T-uZJI=LekQkHx>p@ zfTV_FDx41Q1o2+iLpyFR4N(tX#?AKIs>Z$D%xSLWPmAGp{U_sxZ~O?i`|PN=GEE4# z=RKV9ag{aPsgN*peb;!n+ivZI*^vr}uX>ZuS=kKYXIQ$-y;>e({kIh_Vcrz&Y;%R@ zjkRjr(7P9}A6eEDLa#sf8zj5{p&!<@*jainTpd195zgxZVb$!)eBQGMB3gcx{C%S$ zMDfhs4-M=EQOP!+q?>jk-k^TXc`M+m*^!bS#h0+S|CC>74-4&Kp*{Q#dzj(OI7qF% zwMoN>V~|?4oqUVR`rWtu z&cvsXSiJQW{C5*r|#$1%4~ z9ihQJuzPQ%3TqI@yzZCL^&n;Qq!n#OZbm#WpMf!>AjNU)#-CEJK}x#@FQ#m_1%>~P zdMS!nNK9TZ!OFu8V(X3BcVycki0CwSW066b8eBn&AjMTaJ0*TMq)hVf*>TQo zbQ()@?iI!Ct zST3@FM5k-3t6I=FM7yMr9`TTL=jJBoitj+dU0eH3jcTAMD|8F1y9p9PwpVy`v?#vL7JN1yG_pZuum=uck8YgS=kcDcl!#1uGm$DyT7&jsaP>Ph;7)#Owh9zj!!S> zxxE$kpJ!d1{O9r4kZ`5kBfFI8aBoQ;hqp2jL^)2GJ*deSHEvi+)8tae5+E#Y!pJGO zjyAls`<&U!>qEHnu9`oGeuaqcsWW9yXTbGov$r*DWed?qUM;_tE=K--YF4}6uZTC@ z!+~=E!Z%;KBcFSLh+_OQ?%euq8$is(Wc|xP+Sl?APbF-Gw4{+&?!OxXX>qN7U2oq2(soz4{_w;} zNZXp&`+7%fNE^N4Ws`ZYA#FJCbNzBlA*J(}Lq(^3M*q*7E`Lpf2fO$C_OMKb2ZuIA zj`$D^v5&gl{PXZ~hDC*_N9zZTW8Oh}@fr_D zb^i!ye-*FMiXQ=KR~$m>)~pX{E6QJ*ymb+z_07EHB};~sZtiDp_G}6duB>|9bk<6U zs|>}qnwN!$v>B_nREc5nF+DTWCs|L#^c|^jZq|FmThruA(R-M_Tm4oS+Y4#Z=cPId zRzRAS_1O7gnUG@Jc}#KJi;!F-GsvQz9O5Q_uA9Cu8Lka%EKF;x>BpsQlNT-Ku?}%g z{2aai59IH+#UmmSU)I^FbNg!d>JUz>mXnq-ab1pg|xdYXZvU)4X~g=~QMzK_Pt<>UG$*W1xAd85_1DP3po*_B!! zQo7cu{;h8G9$p{X zu*8CQkhC$dIzQwf#6;SyY&Ug}8u!7mkM_HlPk;vp%74z>+Zi5&-`{J)%YfvP6`Cgw z+X~4`-&c50rycg|%Pk6ay@Pn~c64Y_0Ul2H>nz{93nX2F)f??x;CAP6cGhMIYTVd& zO^Y}2w}RMbi(i-Suo~j3&yiFwhx4-zR__+>u!Vc(6E5%@4af0;&Jm?+{tii-W<)LO znt^yhPTZU4;ePc!Kif{;4$(c{nR}f(q{fZ7v`zSQ-4}>B!x^yS!e@whH1XW(s#V~c z-B-_I#mm6;RxjU_xEKtPk_KJvO8f>fH)mE(yC0AI1r0m18X&r7dAo@Cwh&&)mS4iA zHH-UC`Gxkd&>j}r!|$+%Pi`;{GK>6i&U())$oSZ3@tDV5Ame33o8U+D@Vd>`6JuUN zhQea%n~ZqKxYy>&!i`fQ<5Z(cmE2E4#*vCH4Fe+~WBP>aMaq4F3^)6O4!6%kMvV{W zUhqFdMwPM&ey5*7>iOv+*KX11FId(f6Z;vz3?Fy5StU^XcBNeK()Vz0?Ip>eI|*=a z>&}t0rZ>d?O2xWGdL+ShkK)m(k6-K7AIQh>`ZkA)Azz&%iz)U(#--N04)u}G^>fCb zuKpG>CVaX-3)kmo6dOBZ<+TQo8aV85o8V>G&$*rDvljaU7s?--uy-U}-|QJvz5f9g zAJZc|6S&|IrteqT;H++lcg`+xStm?iuMmFq-jLC4=c=z;-az`}NBu8$_yba}JleDW z$R|*o*?F*X<(m+1A^S2jVF}zQQmpcYbDHte47YdHT$+1BhP3Pe%gMHoF>(Ii4twno z@5PbSuRlXZ8F7i3AH5(wV(Z9iS*;=ULDPvYb+3Wqqy3gv-yT5xi6uu?Hco*XS#ft# zI#1H@TeYs8#Uo62t*Xt|Z$AMU#cj`ib!`IaPj)Q1err0UUn^!-J#{{$Z(fRHr|7>{;q&Q<607ZV_%X!(WX#+`>--92ahac!F#H#N}ha{J>qQEm>O!oMzr)C-&@ z?Wd$c>eWqksygr?HF?c z^(U@B-}_sQt5{k;IP?}D$JLL`+T!pP6dN19@_T^e&*zdl4K^2o;Pi z%eTjnT1oz@lhb=hnSC$($jP&iJoBf<1Iq1!J56oomtRvwjeBobhszcg*WjMt_|=>l zGvVIlwM%@roq+iAkCJC%KRf=+mq}r--65gmwq52a8zI@ZbmID9^AIm1w!UOIB)A35 zto`RPh<47O;#(&sxs92tt}Ta&+VDg^~}}Zp@FQ)iO8zbFbyKt+qSv&L^HpYRkcWb15NmExCng7n!h_SUP! zgOu&%*G09N2#J0R_l5$O9(9~l7ScMd3o5d_HjcB-?_s}I26v7wJiH{T zh8p+b-oCY>tA2xrJF`54rvCyDPc|s~bEE(s#+1C~bfy!e)OcNAa_Ir2>>OG#Yw9dW z>og@c^wa}LohN<&w2==e=C&_BbI%sI^XBBF;`{olaqn9$7_@3hRk+Vta&T|VUbsJG z`ovKwE#dyg+2uPNnF|TF5x(Z;8*zQq@Vb9_4+h2R`Bi6Ie?Q-b1ZqytCQ|<=WUy5o&A#`X1&F14{uM1Sdy^j Date: Wed, 23 Oct 2024 16:02:30 -0600 Subject: [PATCH 03/11] Removed a 44 parameter nelder mead test. The optmization tolerance was set extremely loose to make this solve solve in reasonable amount of time. This loose tolerance will result diffs in the solution. Nelder mead is not meant to be used with so many parameters. This problem is still being tested with gradient based methods --- .../simpleTransient/gold/gradFree.csv | 102 ------------------ .../examples/simpleTransient/main.i | 48 --------- .../examples/simpleTransient/tests | 11 -- 3 files changed, 161 deletions(-) delete mode 100644 modules/optimization/examples/simpleTransient/gold/gradFree.csv delete mode 100644 modules/optimization/examples/simpleTransient/main.i diff --git a/modules/optimization/examples/simpleTransient/gold/gradFree.csv b/modules/optimization/examples/simpleTransient/gold/gradFree.csv deleted file mode 100644 index 710f65e85bd4..000000000000 --- a/modules/optimization/examples/simpleTransient/gold/gradFree.csv +++ /dev/null @@ -1,102 +0,0 @@ -time,bottomLeft_pp,bottomRight_pp,topLeft_pp,topRight_pp -0,0,0,0,0 -0.01,0.0034153818958332,0.11517842875915,0.0066608185516488,0.11522530336876 -0.02,0.0053665390334923,0.11420850611407,0.011444097438576,0.11942189568949 -0.03,0.0085552711327619,0.11120799188337,0.016937106224148,0.12648212718312 -0.04,0.012851232688829,0.10644181334973,0.023058017611604,0.13618186823213 -0.05,0.018096184392933,0.10023067497191,0.029752213324665,0.14829105122736 -0.06,0.024139533131428,0.092877829235154,0.036980399723527,0.16258551325335 -0.07,0.03085088416299,0.084645040048176,0.044712502749925,0.17885377127333 -0.08,0.038122427784701,0.075748999104424,0.052924296351265,0.1969003752646 -0.09,0.045867238174283,0.066365372090072,0.061595369584765,0.21654713197196 -0.1,0.054016235417254,0.056635016072737,0.070707810002853,0.2376330680023 -0.11,0.060246714042696,0.049583097910245,0.07962138819668,0.25524902864616 -0.12,0.064620920304098,0.0451357275912,0.08830399326406,0.26947397805309 -0.13,0.06731753973928,0.04303379158256,0.096707632400483,0.28061405982019 -0.14,0.068544564014952,0.042967785431617,0.10478655783539,0.28903655306446 -0.15,0.068502341643221,0.044635431591813,0.11250391179749,0.29509945215181 -0.16,0.067370009854498,0.047763345591573,0.11983306094067,0.29912531858821 -0.17,0.065302265213659,0.052112785744689,0.12675681870075,0.30139466166746 -0.18,0.062430401244984,0.05747880035638,0.13326601678337,0.30214737814035 -0.19,0.058864879742888,0.063686953953117,0.1393580197787,0.30158709669797 -0.2,0.05469825025689,0.070589438249827,0.14503538827563,0.29988619626178 -0.21,0.050746581867551,0.074949469120654,0.15246465836869,0.29543308998348 -0.22,0.047037769465179,0.076783472007206,0.16155953763622,0.28841778101018 -0.23,0.043551349262972,0.07624963080523,0.17213749145859,0.27907980434585 -0.24,0.040248959811261,0.073551625971576,0.18399343893423,0.2676603492611 -0.25,0.037087980974323,0.068896649789173,0.19693073632134,0.25438314677549 -0.26,0.034027291320075,0.062478644272578,0.21077248441822,0.23944844907998 -0.27,0.031029446356722,0.054472864072256,0.22536417688553,0.22303265409394 -0.28,0.028061284436513,0.045035300200021,0.24057278510219,0.20529014967429 -0.29,0.025093875163387,0.034304019998234,0.25628456950269,0.18635584808287 -0.3,0.022102217969867,0.022401115420244,0.27240260860362,0.16634775779688 -0.31,0.020834585094789,0.013950967633523,0.28387373019252,0.14768259496387 -0.32,0.021198491941506,0.0088879814843724,0.29085844489853,0.13035464565986 -0.33,0.023028331492296,0.0069697000749763,0.29376423158114,0.1142484497878 -0.34,0.026144161008545,0.0079000098067093,0.29306333650595,0.099216733777847 -0.35,0.030376139817647,0.011382552717756,0.28921529065984,0.085113756658729 -0.36,0.035573090308149,0.017141839424501,0.2826378917771,0.071807947377476 -0.37,0.041604099367868,0.024929864082934,0.27369961585733,0.059185351240313 -0.38,0.048357294682698,0.034526491444572,0.26272092680772,0.047149239143654 -0.39,0.055737651898949,0.045737395870172,0.24997884633488,0.035618298249211 -0.4,0.063664633352845,0.058391241125855,0.23571233799105,0.024524460856603 -0.41,0.072554066665895,0.068059016195198,0.22193804221332,0.015499290691412 -0.42,0.082313652984483,0.07479627590616,0.20877143286951,0.0084109925499152 -0.43,0.092824809322632,0.078867807093627,0.19623937373158,0.0030493812071386 -0.44,0.10397019400131,0.080597353755792,0.18432938530521,-0.00080812258998158 -0.45,0.11564435046415,0.080303427208354,0.1730124755521,-0.0033694770049607 -0.46,0.12775662370044,0.078275007751198,0.1622535792187,-0.0048189376550778 -0.47,0.14023082570427,0.074764926505308,0.15201623985037,-0.0053157498033525 -0.48,0.15300370825714,0.069990620581562,0.14226463922017,-0.0049959226779204 -0.49,0.16602313833807,0.064137613594031,0.13296442233955,-0.0039750013003017 -0.5,0.17924633827927,0.057363696608724,0.12408298999096,-0.0023509538363313 -0.51,0.18848743887961,0.051998783572661,0.1154126329623,-0.002530331925576 -0.52,0.19389920905505,0.048026880506084,0.10689242360925,-0.0044778227252717 -0.53,0.19582538191297,0.045282216502944,0.098431083343936,-0.00803943144789 -0.54,0.19465606727125,0.043557121296816,0.089936509801101,-0.01302953369658 -0.55,0.19076672259572,0.042647994576178,0.081327353128796,-0.019267789534733 -0.56,0.18449582309625,0.042372489985691,0.072536272773463,-0.026592749287749 -0.57,0.17613959716779,0.042574009241774,0.063509712446616,-0.034865174891743 -0.58,0.16595379058008,0.043120975622633,0.054206421396825,-0.043967129581523 -0.59,0.15415794493136,0.043904225084887,0.044595672420907,-0.053799555634982 -0.6,0.14094023402738,0.044833944977823,0.034655545845195,-0.06427951595792 -0.61,0.12921986498076,0.045248856757479,0.025410096533643,-0.072128161549186 -0.62,0.11902691992248,0.045150836993428,0.016844893872084,-0.077414557810501 -0.63,0.1102610297924,0.044615910239221,0.0089439126947128,-0.080347444000446 -0.64,0.10278014499017,0.043741243007459,0.0016893592380327,-0.081173389282729 -0.65,0.096439050917554,0.042622515735788,-0.0049381214657887,-0.080133298608535 -0.66,0.091104448836688,0.041345455687522,-0.010958990098816,-0.077446015768955 -0.67,0.086659550464379,0.03998358632913,-0.016394355713897,-0.07330396898479 -0.68,0.083004221350117,0.038598510016074,-0.021265623518795,-0.067873858206556 -0.69,0.080053415697298,0.037241093754583,-0.025594255112232,-0.061299213727461 -0.7,0.077735114264825,0.035952872180858,-0.029401611353408,-0.053703434724797 -0.71,0.074513809981331,0.035180354387679,-0.032901648916209,-0.047274127960218 -0.72,0.070398383979448,0.03491130659638,-0.036129212752995,-0.04201706573164 -0.73,0.065467480965302,0.035088050333983,-0.039132807655419,-0.037837753844832 -0.74,0.059819792793832,0.035640833190398,-0.041961385858541,-0.034611094619309 -0.75,0.053552720010797,0.036501943558325,-0.044659148791344,-0.032211455443298 -0.76,0.046754253953181,0.037610868871598,-0.0472640633717,-0.030524304875417 -0.77,0.039500745150941,0.038915540771712,-0.049807925773187,-0.029449625140661 -0.78,0.031857141870865,0.040372002833899,-0.052316977061291,-0.028901853220407 -0.79,0.023878151635331,0.041943532558735,-0.054812650296736,-0.028808504688732 -0.8,0.015609646732622,0.043599649760575,-0.057312289233528,-0.029108427629917 -0.81,0.0073623803354763,0.044268896195891,-0.06100211364758,-0.029816952372644 -0.82,-0.00085641270848417,0.043974138658282,-0.06584434151106,-0.030901507572764 -0.83,-0.009070068095191,0.042786604165915,-0.071748814402876,-0.032347234592689 -0.84,-0.017310874480346,0.040790681280285,-0.078612009816332,-0.034145950171177 -0.85,-0.025610811616018,0.03806891687736,-0.086333579084693,-0.036291279582184 -0.86,-0.033998060105938,0.034696392272616,-0.09482246680989,-0.038776720054354 -0.87,-0.042496054208166,0.03073925543226,-0.10399842508759,-0.041595001264544 -0.88,-0.05112357811373,0.026254981719099,-0.11379162143508,-0.044737980311105 -0.89,-0.059895239397071,0.021293267597614,-0.12414155691474,-0.048196735924848 -0.9,-0.068822037254138,0.015897079570053,-0.13499582367687,-0.051961722740038 -0.91,-0.07539593041976,0.010282850659579,-0.14285919695238,-0.055376296732926 -0.92,-0.079702446673683,0.0044967592619565,-0.14781346004102,-0.058433004929491 -0.93,-0.081907453134513,-0.0014050359895208,-0.15007014449345,-0.061127318902144 -0.94,-0.082196826025889,-0.0073670020700528,-0.14987674157917,-0.063456647216327 -0.95,-0.080750809150306,-0.01333837348136,-0.14747647557979,-0.065419774808397 -0.96,-0.077734381930881,-0.019274368056944,-0.14309287799782,-0.067016504331501 -0.97,-0.073294764129238,-0.025136188898146,-0.13692543644011,-0.068247444514349 -0.98,-0.067561935988628,-0.030890587740038,-0.12914993852877,-0.069113908443719 -0.99,-0.060650290164935,-0.036509315062294,-0.11992060304404,-0.069617881549746 -1,-0.052660574969234,-0.041968579558181,-0.10937270662606,-0.069762023417668 diff --git a/modules/optimization/examples/simpleTransient/main.i b/modules/optimization/examples/simpleTransient/main.i deleted file mode 100644 index 6a6cf557052a..000000000000 --- a/modules/optimization/examples/simpleTransient/main.i +++ /dev/null @@ -1,48 +0,0 @@ -[Optimization] -[] - -[OptimizationReporter] - type = GeneralOptimization - objective_name = objective_value - parameter_names = 'source' - num_values = '44' -[] -[Reporters] - [main] - type = OptimizationData - [] -[] -[MultiApps] - [forward] - type = FullSolveMultiApp - input_files = forward.i - execute_on = FORWARD - [] -[] - -[Transfers] - [params] - type = MultiAppReporterTransfer - to_multi_app = forward - from_reporters = 'OptimizationReporter/source' - to_reporters = 'src_values/values' - [] - [data] - type = MultiAppReporterTransfer - from_multi_app = forward - from_reporters = 'measured_data/objective_value' - to_reporters = 'OptimizationReporter/objective_value' - [] -[] - -[Executioner] - type = Optimize - solve_on = none - tao_solver = taonm - petsc_options_iname = '-tao_gatol' - petsc_options_value = '1e1' - verbose = true -[] - -[Outputs] -[] diff --git a/modules/optimization/examples/simpleTransient/tests b/modules/optimization/examples/simpleTransient/tests index 386664ffd781..011456e2f60b 100644 --- a/modules/optimization/examples/simpleTransient/tests +++ b/modules/optimization/examples/simpleTransient/tests @@ -3,17 +3,6 @@ design = "ElementOptimizationSourceFunctionInnerProduct.md NearestReporterCoordinatesFunction.md ReporterTimePointSource.md" issues = '#21885' requirement = "The system shall be able to perform force-inversion optimization with time-dependent parameters and outputs with" - [objective] - type = CSVDiff - input = main.i - cli_args = "-tao_gatol 90 forward:Outputs/file_base=gradFree - OptimizationReporter/initial_condition='0.017248124297389537 -0.4383269038787613 -1.0120688493193575 -0.604005388481836 -1.4561640635027022 3.231744273062789 0.30497109596745786 0.44633697183648136 0.01016924485170484 2.102321678477381 -0.6633902660583816 0.8744951418636224 -1.6563188219465808 -0.7960335532123246 -0.8868197436891168 3.4789948727882036 1.221786635733348 -1.3649297188353513 0.6718141978617336 1.073784058368632 -0.20990475499085504 -0.23140796936323005 2.719922596118634 0.49032306047413676 0.5754881340320752 -1.4387408219638242 0.5868285452264156 -0.26563061173982583 0.7632228812045031 0.5847693390767825 1.2297597229219401 0.018872725738175458 1.3701093737026238 0.5124595468128872 0.388110595828123 0.11247112873355217 0.9234434408370418 0.3748330890983532 -0.1772288909293001 -0.9744206675334496 -0.3917172574619362 -0.2538603477404897 0.5517774216239373 0.07213835476751881'" - csvdiff = gradFree.csv - rel_err = 1e-4 - heavy = true - method = OPT - detail = 'only a forward solve,' - [] [gradient] type = CSVDiff input = main_gradient.i From 9dbcd23ebe6763e3ad869311f0c8da5c2078c717 Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Wed, 23 Oct 2024 16:06:15 -0600 Subject: [PATCH 04/11] These tests were removed because it is now too difficult to hit these PETSC errors after fixing the parameters vector. This test is optimizing a quadratic equation that converges in a single iteration. And with the fix to the parameters vector, the linesearch algorithms now work more robustly. --- .../tests/executioners/basic_optimize/tests | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/modules/optimization/test/tests/executioners/basic_optimize/tests b/modules/optimization/test/tests/executioners/basic_optimize/tests index 88c0745cf3d5..937209c06746 100644 --- a/modules/optimization/test/tests/executioners/basic_optimize/tests +++ b/modules/optimization/test/tests/executioners/basic_optimize/tests @@ -68,23 +68,5 @@ max_threads = 1 # Optimize executioner does not support multiple threads detail = 'testing hand-coded gradient;' [] - [failed_ls] - type = RunApp - input = quadratic_minimize.i - cli_args = '-tao_fd_gradient true' - allow_test_objects = True - expect_out = 'Solver terminated: -6 Line Search Failure' - max_threads = 1 # Optimize executioner does not support multiple threads - detail = 'indicating a failed line search;' - [] - [failed_it] - type = RunApp - input = quadratic_minimize.i - cli_args = '-tao_fd_gradient true -tao_ls_type unit -tao_max_it 1' - allow_test_objects = True - expect_out = 'Solver terminated: -2 Maximum Iterations' - max_threads = 1 # Optimize executioner does not support multiple threads - detail = 'indicating maximum iteration reached;' - [] [] [] From 6c6160a1b1c486a62c4e6f0ed6bf32c32fa2c0db Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Wed, 23 Oct 2024 16:23:20 -0600 Subject: [PATCH 05/11] This problem now converges faster and in fewer iterations which makes the per iteration exodus output diff. The test and input files were also cleaned up --- .../exodus_optimization_steady/gold/adjoint.e | Bin 77616 -> 77696 bytes .../outputs/exodus_optimization_steady/main.i | 4 ++-- .../main_auto_adjoint.i | 2 +- .../outputs/exodus_optimization_steady/tests | 8 ++------ 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/modules/optimization/test/tests/outputs/exodus_optimization_steady/gold/adjoint.e b/modules/optimization/test/tests/outputs/exodus_optimization_steady/gold/adjoint.e index a88c913e874b8d9fcc75e8aa0abe57a669bbda54..bce5ad5f7800c55649913a6d5e09268cd1f4a98e 100644 GIT binary patch delta 14228 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 DSrquu delta 16120 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 diff --git a/modules/optimization/test/tests/outputs/exodus_optimization_steady/main.i b/modules/optimization/test/tests/outputs/exodus_optimization_steady/main.i index d98d53c8b172..4c915753d482 100644 --- a/modules/optimization/test/tests/outputs/exodus_optimization_steady/main.i +++ b/modules/optimization/test/tests/outputs/exodus_optimization_steady/main.i @@ -35,7 +35,7 @@ type = Optimize tao_solver = taoblmvm petsc_options_iname = '-tao_gatol' - petsc_options_value = '0.0001' + petsc_options_value = '1e-4' verbose = true [] @@ -48,7 +48,7 @@ [] [adjoint] type = FullSolveMultiApp - input_files = adjoint.i + input_files = adjoint_iteration_output.i execute_on = "ADJOINT" clone_parent_mesh = true [] diff --git a/modules/optimization/test/tests/outputs/exodus_optimization_steady/main_auto_adjoint.i b/modules/optimization/test/tests/outputs/exodus_optimization_steady/main_auto_adjoint.i index 8f556761e342..efa2eb2d4d1e 100644 --- a/modules/optimization/test/tests/outputs/exodus_optimization_steady/main_auto_adjoint.i +++ b/modules/optimization/test/tests/outputs/exodus_optimization_steady/main_auto_adjoint.i @@ -30,7 +30,7 @@ [MultiApps] [forward] type = FullSolveMultiApp - input_files = forward_and_adjoint.i + input_files = forward_and_adjoint_iteration_output.i execute_on = "FORWARD" [] [] diff --git a/modules/optimization/test/tests/outputs/exodus_optimization_steady/tests b/modules/optimization/test/tests/outputs/exodus_optimization_steady/tests index fe942f53c6d7..be92210b013a 100644 --- a/modules/optimization/test/tests/outputs/exodus_optimization_steady/tests +++ b/modules/optimization/test/tests/outputs/exodus_optimization_steady/tests @@ -11,17 +11,13 @@ abs_zero = 1.0e-5 # steady solve recover = false - issues = '#25009' - design = 'ExodusOptimizationSteady.md' - cli_args = "MultiApps/adjoint/input_files='adjoint_iteration_output.i'" requirement = 'The system shall be able to perform gradient based material parameter inversion ' - 'for a single material property and output the iteration-wise output for the ' + 'for a single material property and output the iteration-wise exodus output for the ' 'adjoint problem.' [] [auto_adjoint_iteration_output] type = Exodiff input = main_auto_adjoint.i - cli_args = 'MultiApps/forward/input_files=forward_and_adjoint_iteration_output.i' exodiff = 'main_auto_adjoint_out_forward0_exodus.e' # Optimize executioner does not support multiple threads max_threads = 1 @@ -29,6 +25,6 @@ recover = false requirement = 'The system shall be able to invert for point loads using gradient-based ' 'optimization with an automatically computed adjoint and output the exodus output ' - 'per iteration.' + 'per iteration for the combined forward and adjoint problem variables.' [] [] From c36759e06753661dd408f83d983178d77bd1cf15 Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Wed, 23 Oct 2024 16:44:03 -0600 Subject: [PATCH 06/11] regolded files. With parameter fix they converge to the proper tolerance with slightly different optimized values than before. closes #28922 --- .../gold/main_constant_out_forward0.e | Bin 49848 -> 59488 bytes .../mesh_source/gold/main_out_forward0.e | Bin 49436 -> 59156 bytes .../gold/main_second_out_forward0.e | Bin 49688 -> 59324 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_constant_out_forward0.e b/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_constant_out_forward0.e index d82c116b343a2463dea393859aa7a68a90f51491..79053702ed102bf70a3dfd427cad6de66126dbd3 100644 GIT binary patch delta 5998 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 F`wu0w=m`J- diff --git a/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_out_forward0.e b/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_out_forward0.e index 9c43357844cc73b4abeccd40c992ffda49a206fa..7ed5ca3000ff1c288883d3d41dd13e2491ce8a17 100644 GIT binary patch delta 6547 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 diff --git a/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_second_out_forward0.e b/modules/optimization/test/tests/optimizationreporter/mesh_source/gold/main_second_out_forward0.e index 01c89d857f74301902f0e5d51e86e0610bdfb5f2..5d6a6a068d69cb6326c6d7895be2e2d7b76aa0c5 100644 GIT binary patch delta 6461 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 Qmopge-^}Hl|7kGyKbm5UhX4Qo delta 4064 zcmb`J3p`Zm8^`BL#1=wH3<{AMR8-V+L{|z)M7hKW>oPGDx)^k`-B!KbmHbC5#IALO zM59z&QIY#4WpZg;hLBRyf68V*|NXbS{`=qaInR0D=RNQ9d(U&u^EvOg;4%5kUUFsv zkwmJ*c>_vGxA zd{%dS%Mhj~o9Rv45g0Rl%xQ*i> z=;+i}X5{+AOQVF)e5W74?cG6=CQG#lBb4l*oY(rwK{&v?AxDR&Bk`AFcDnF)y_u@7 z+PWBo=XZB6n0N(xF7Rka4UM5Udb5c}6%V>g?v^?4YQzYKN)G<4iE8xJm)OZd)74so zu#RH>zPwo7hLlq1a7e50AL)VKRTM7C$g;RS=8ArY-jiVA8}cL5cXJG&ZaaQ`8-~|LT1L zHc2D!R^F@cVc^~O??~Z5ekPa)xNQVgX9_4T`38c3^ zpw$|a@^qU1?4A{-yvW&DIp;Yxy}`=2+rrpzUu%+QBPXUJ^?P-IQWI5<4 zKf2v;wLhP~ze0!V#D;fAXs(+HnHVYG*3K(_Cnh;5v2=U81SY+FZ}w305TW)1w zz@}d)i{#H(hp8A>@4sWP8dD&-KJ|KW58fKZNC%RaL+eqRs`aTJ{`JjCJQ~fN6XdrI zIiFEQMh42t989JuINq{+1o|Xq#yVHcgz8%18XeS}td62=WM|FNIyv?D0*qL|GFTTY z#0VPX)~70dF!)2^Zq^YN)W=czv>=peV5q_RRMDRf$Xc$h{6tMO>WTf_1BbdBw(mnp zblur-Yoo8;cIwBmo5jB2eep{ifAjCKg$F7`1T;W5)c8ediNvc;EhrIjifq#}plsm) zH-4Z1%HK!GDD8-W3bc%&g`V%0)tK5pv*xV_l-1n}yRh^iRC@a~*(sieniLKD)?#(2 zH$2O=!>MWEP*$nnw4vxJRNdVuT3i?d^_w%oeZD6_(?MfY^t@)GN#vZVw$jaHPa3)kb?^d=deF62Jb#aV2b?|KXU(aZ?P(N>`J4!TDFj0Kx1~q2}f_MwkpeZ>*T@hjCpO@sWuyAy6AUp%%uAHH{ zdpK~5lH!%VC4Vfs{NV%B3E@^y&oIyUmM*Rk>e+>9+EUPxIqQf;(0X`DuvRlsCPPOU z{^RB0=g?Wn4w1c)0bM4X*^~UFp=*}Bl-j9lP^@7+0lU^Rru(ELUQqWUfY8kZ%T*vaIT-8ezY^LGG;}=l3;uVVQ7tg}UYe=$EUYt;NaG*Pjg^c_yP@;<@PIZZ;h_wyzLN_ZS zzRshJj4sZfAz`y>?J|pXs5#XDX?Uy2FnogpnG9BlU(k*~WTLNTD*nY0c6hS=f`b@r zW+?mfC6p1&V*3U9jgE&fS-~M}W(XsY8S3jknmz-8w;FO@vKZaxz$EMVB7}QUBAk&>1pId_%X>@$2 z@25Vlx9g;MW+V?^5w)0vs$y*LkUgptJUUiF0@WVvLjiF--2K=~Ni=-P4qtxuJQp;!vv z`_Pc|YbA_EMpaPp7f*nQ->$SGigi9|^x@{UP7+@)A5;i^T<9IGW3X$VV*DsT8=L~v zrbqcV!9%x_g(-)f`0Mvy?YVG0=SKT6wRvk^L_uxqLQY$Y8sGo*2LJ62Ezop$plYSL zB0qXT+5DSf+VCv-bpG453jFWG*H3+W?E^F#YihqyQR8QQ6%n}OV}$fdCw@d#P@Thf z(NG(`*QV`pq*_d3n&AWT1v*A;aNnD`mVpsc zUnZYYtcMN-!y6T4x1heX>RRJ=;rwTooq!q38-WMbhYQ&sQ*q`#5Qyo2hr9y;8N_ z&71;46{X87YxaOJW@8ji87~`ZLh~Q8A@^^=A^c-($Q>;UsPNbAp=WJ_##58-P5MhX M{O8zEXPj{OZ=~ktuK)l5 From b888c0659c809856ac702535649987273dc5756d Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Tue, 22 Oct 2024 14:47:01 -0700 Subject: [PATCH 07/11] Swap in objectiveFunctionWrapper --- modules/optimization/src/executioners/OptimizeSolve.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index e7e10a55962f..56239e497684 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -359,10 +359,10 @@ OptimizeSolve::objectiveFunctionWrapper(Tao /*tao*/, Vec x, Real * objective, vo auto * solver = static_cast(ctx); libMesh::PetscVector param(x, solver->_my_comm); - *(solver->_local_parameters.get()) = param; + solver->_parameters->swap(param); (*objective) = solver->objectiveFunction(); - + solver->_parameters->swap(param); PetscFunctionReturn(PETSC_SUCCESS); } From de318121c349bc4e29da5eae713a6a7415fbd83f Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Tue, 22 Oct 2024 14:47:16 -0700 Subject: [PATCH 08/11] Swap in objectiveAndGradientFunctionWrapper --- modules/optimization/src/executioners/OptimizeSolve.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index 56239e497684..a176e17f4d89 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -374,12 +374,12 @@ OptimizeSolve::objectiveAndGradientFunctionWrapper( auto * solver = static_cast(ctx); libMesh::PetscVector param(x, solver->_my_comm); - *(solver->_local_parameters.get()) = param; + solver->_parameters->swap(param); (*objective) = solver->objectiveFunction(); libMesh::PetscVector grad(gradient, solver->_my_comm); solver->gradientFunction(grad); - + solver->_parameters->swap(param); PetscFunctionReturn(PETSC_SUCCESS); } From 1818e2f0d5dbd82d64b751a4cd345c94f1be77a5 Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Tue, 22 Oct 2024 14:47:43 -0700 Subject: [PATCH 09/11] Don't modify solution vector in hessianFunctionWrapper --- modules/optimization/src/executioners/OptimizeSolve.C | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index a176e17f4d89..2fadbfabaa68 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -384,15 +384,12 @@ OptimizeSolve::objectiveAndGradientFunctionWrapper( } PetscErrorCode -OptimizeSolve::hessianFunctionWrapper(Tao /*tao*/, Vec x, Mat /*hessian*/, Mat /*pc*/, void * ctx) +OptimizeSolve::hessianFunctionWrapper( + Tao /*tao*/, Vec /*x*/, Mat /*hessian*/, Mat /*pc*/, void * ctx) { PetscFunctionBegin; // Define Hessian-vector multiplication routine auto * solver = static_cast(ctx); - - libMesh::PetscVector param(x, solver->_my_comm); - *(solver->_local_parameters.get()) = param; - PetscErrorCode ierr = MatShellSetOperation( solver->_hessian, MATOP_MULT, (void (*)(void))OptimizeSolve::applyHessianWrapper); From 8a123720a36dddf1b823d753ee6ac67f24173872 Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Thu, 24 Oct 2024 12:35:13 -0700 Subject: [PATCH 10/11] No need for _local_parameters with swaps --- .../optimization/include/executioners/OptimizeSolve.h | 5 +---- modules/optimization/src/executioners/OptimizeSolve.C | 11 +++++------ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/modules/optimization/include/executioners/OptimizeSolve.h b/modules/optimization/include/executioners/OptimizeSolve.h index e6e7b464d7ff..6164edf5d0a0 100644 --- a/modules/optimization/include/executioners/OptimizeSolve.h +++ b/modules/optimization/include/executioners/OptimizeSolve.h @@ -174,10 +174,7 @@ class OptimizeSolve : public SolveObject dof_id_type _ndof; /// Parameters (solution) given to TAO - std::shared_ptr> _parameters; - - /// Parameters (solution) owned by Optimize_solve and updated from TAO - std::shared_ptr> _local_parameters; + std::unique_ptr> _parameters; /// Hessian (matrix) - usually a matrix-free representation Mat _hessian; diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index 2fadbfabaa68..0a4d932c25db 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -47,8 +47,7 @@ OptimizeSolve::OptimizeSolve(Executioner & ex) _verbose(getParam("verbose")), _output_opt_iters(getParam("output_optimization_iterations")), _tao_solver_enum(getParam("tao_solver").getEnum()), - _parameters(std::make_unique>(_my_comm)), - _local_parameters(std::make_unique>(_my_comm)) + _parameters(std::make_unique>(_my_comm)) { if (libMesh::n_threads() > 1) mooseError("OptimizeSolve does not currently support threaded execution"); @@ -71,8 +70,8 @@ OptimizeSolve::solve() _obj_function = &_problem.getUserObject("OptimizationReporter"); // Initialize solution and matrix - _obj_function->setInitialCondition(*_parameters.get()); - _obj_function->setInitialCondition(*_local_parameters.get()); + _obj_function->setInitialCondition(*_parameters); + _obj_function->setInitialCondition(*_parameters); _ndof = _parameters->size(); // time step defaults 1, we want to start at 0 for first iteration to be @@ -426,7 +425,7 @@ Real OptimizeSolve::objectiveFunction() { TIME_SECTION("objectiveFunction", 2, "Objective forward solve"); - _obj_function->updateParameters(*_local_parameters.get()); + _obj_function->updateParameters(*_parameters); Moose::PetscSupport::petscSetOptions(_petsc_options, _solver_params); _problem.execute(OptimizationAppTypes::EXEC_FORWARD); @@ -449,7 +448,7 @@ void OptimizeSolve::gradientFunction(libMesh::PetscVector & gradient) { TIME_SECTION("gradientFunction", 2, "Gradient adjoint solve"); - _obj_function->updateParameters(*_local_parameters.get()); + _obj_function->updateParameters(*_parameters); Moose::PetscSupport::petscSetOptions(_petsc_options, _solver_params); _problem.execute(OptimizationAppTypes::EXEC_ADJOINT); From e62b0fc2e204a1db26455ed18c8138647d7958bd Mon Sep 17 00:00:00 2001 From: Lynn Munday Date: Thu, 24 Oct 2024 14:39:06 -0600 Subject: [PATCH 11/11] remove extra set initial conditions --- modules/optimization/src/executioners/OptimizeSolve.C | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/optimization/src/executioners/OptimizeSolve.C b/modules/optimization/src/executioners/OptimizeSolve.C index 0a4d932c25db..b09bb82e24ab 100644 --- a/modules/optimization/src/executioners/OptimizeSolve.C +++ b/modules/optimization/src/executioners/OptimizeSolve.C @@ -71,7 +71,6 @@ OptimizeSolve::solve() // Initialize solution and matrix _obj_function->setInitialCondition(*_parameters); - _obj_function->setInitialCondition(*_parameters); _ndof = _parameters->size(); // time step defaults 1, we want to start at 0 for first iteration to be