From b273bc58250a635d098331c58c4c79224b94a091 Mon Sep 17 00:00:00 2001 From: Savio Cardoso Date: Sat, 15 Aug 2026 04:35:52 +0200 Subject: [PATCH 1/2] feat: add stochastic uncertainty analysis --- README.md | 25 +- configs/stochastic_crossmember.yaml | 42 ++ docs/figures/frequency_histogram.png | Bin 0 -> 47369 bytes .../figures/frequency_sensitivity_ranking.png | Bin 0 -> 49190 bytes .../figures/stochastic_correlation_matrix.png | Bin 0 -> 105373 bytes docs/figures/stress_histogram.png | Bin 0 -> 40282 bytes docs/figures/stress_sensitivity_ranking.png | Bin 0 -> 49106 bytes docs/validation/stochastic_correlation.csv | 6 + docs/validation/stochastic_samples.csv | 501 ++++++++++++++++++ scripts/run_stochastic_study.py | 279 ++++++++++ src/bodysimpy/analysis/stochastic.py | 367 +++++++++++++ src/bodysimpy/config/models.py | 15 + tests/integration/test_stochastic_study.py | 38 ++ tests/unit/test_config_loader.py | 13 + tests/unit/test_stochastic.py | 135 +++++ 15 files changed, 1420 insertions(+), 1 deletion(-) create mode 100644 configs/stochastic_crossmember.yaml create mode 100644 docs/figures/frequency_histogram.png create mode 100644 docs/figures/frequency_sensitivity_ranking.png create mode 100644 docs/figures/stochastic_correlation_matrix.png create mode 100644 docs/figures/stress_histogram.png create mode 100644 docs/figures/stress_sensitivity_ranking.png create mode 100644 docs/validation/stochastic_correlation.csv create mode 100644 docs/validation/stochastic_samples.csv create mode 100644 scripts/run_stochastic_study.py create mode 100644 src/bodysimpy/analysis/stochastic.py create mode 100644 tests/integration/test_stochastic_study.py create mode 100644 tests/unit/test_stochastic.py diff --git a/README.md b/README.md index ed66e19..8437f08 100644 --- a/README.md +++ b/README.md @@ -86,4 +86,27 @@ Planned parameters include: - flange width - local reinforcement - mesh density -- joint and spot-weld idealization \ No newline at end of file +- joint and spot-weld idealization + +## Stochastic Engineering + +BodySimPy includes Monte Carlo uncertainty propagation for selected manufacturing, material and loading parameters. + +The baseline stochastic study evaluates 500 independently sampled configurations with uncertainty in: + +- wall thickness +- Young's modulus +- applied load + +Each sampled configuration is evaluated using automated CalculiX static and modal analyses. + +Reported quantities include: + +- response mean and standard deviation +- 5th and 95th percentiles +- stress-threshold exceedance fraction +- mode-1 frequency variation +- correlation analysis +- standardized linear sensitivity coefficients + +The stochastic model is intended as an engineering uncertainty study for the simplified structural surrogate and does not represent production vehicle reliability. \ No newline at end of file diff --git a/configs/stochastic_crossmember.yaml b/configs/stochastic_crossmember.yaml new file mode 100644 index 0000000..cdd2471 --- /dev/null +++ b/configs/stochastic_crossmember.yaml @@ -0,0 +1,42 @@ +project: + name: stochastic_crossmember + +geometry: + type: rectangular_hollow_section + length_m: 1.0 + width_m: 0.080 + height_m: 0.040 + thickness_m: 0.0015 + +material: + youngs_modulus_pa: 2.10e11 + poisson_ratio: 0.30 + density_kg_m3: 7850 + +loading: + tip_force_n: 1000 + +mesh: + elements: 40 + +analysis: + static: true + modal: + modes: 10 + +stochastic: + samples: 500 + seed: 42 + stress_threshold_pa: 3.50e8 + + thickness_m: + mean: 0.0015 + standard_deviation: 0.00005 + + youngs_modulus_pa: + mean: 2.10e11 + standard_deviation: 5.0e9 + + tip_force_n: + mean: 1000.0 + standard_deviation: 80.0 \ No newline at end of file diff --git a/docs/figures/frequency_histogram.png b/docs/figures/frequency_histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..171872ee716fb0982b5488d8db5f3242d76cfc6d GIT binary patch literal 47369 zcmeFa2UL~mvNpKQsnyfRi~+SVBZv|NNw$rOfG9bmk|awGlDa)@7Ic#{Dmf|$NVZ!g zCyA0(l7N7MfaG~#cg~si%rt=gyv5xtwh| zgTYuSdHNSQ24k@}gR$V_(#816^{a=k;eSHb5-Qg6=K9ul7cKP|G8e6{n3!9e7+%_L zt7mCtXl{0di-(7chjaU7YwIgkLfqV@|9l0PxupTOW#fWx_>^T=PODlm7~B4&fAh>L zZA2N2=QfhR99OUp`qX0Qr&!w}I$&_&zSb{)ix2zzRc;lXTWq)3uHMpIqvMeuos`SQ zcPrngUggrA{OdWd-X1c#bc>Hi&aSo#zNMUy<6rjWj#4}bpGF1Pr|PJSNNdbp1ViNPfJKh?BBoNa=g=5z((+e zQ=^WDNbz7#0lRBlPdJ=5}`p>c_su`yCN*runt#X|dRvR?gNDqKC? zOjXZYF}XoMu=C?%k8+!OP2aIL*SwgL#f-2`w25Vnp|exncQ+l0Z0$GC?1@~YEWPIF z`+uw{*8Zkx*J2~1c{ZmkfbT%PwySgQaPXjRdW&s|x3ZT1uM3vw7vA6DFYI6$DecdE z@YAWTw%HlG#Jrh_sgI|`imRl!gFR(M1%Eo_ZqhsStG?O9*Pij-xTK*k1?=70vlGhn z$}LwvJykVLtsQC^bP*V9y=pG+t5UY=*r#(doUWq{27#GD64&cjGW@h*Kw+wZhxN`3 zWcDRGraF(*Di3!BnsdFo9bNL=qCL6EEQ@u22BFSMgD#%CWr{m}wL?E^jMo%R)1Qc_&UY~9_5CbMGQub?#q<|rB?@Yd?h`1cSZ)96+bQ5rfv|r**yDc z_B35nh1l%WZ=4UOHJPNyqzZOoNrSJg651>F?T^*TU-CCc(HdX6wd=6$r?)?B z=I2bx8C45$9&Hf*_U_syF&C%mb=uqG;*-yaPJMnE$+dv3j4SIC^Ax-Dv#I9_`}O|( z$FfbwY)$BwKWsUAXtnTXaV?kePRqbk+Z;HWOw%>B9D5?Hd#WPxE!dqt|FKA8{7>aq zRz^2pPfyKr>usI~dy?9E%(gUlav+dn)6pvzS{?fm)S8rYMO2qHhccUSoiFy ztu_j&pLHht(<|`RUbsP?$xkV=j$;GCtF{X1-rD7JdTgL2WoDwUyFhHlVq$DCly>y? zfyBbYC7jjPdl;O5hq+fh)hXc2n;L4cZ8Ej$jfv`t@YO0lkd)2jtJg?rHmeLf-svjE zV5m&NPq^v#(MLICC8mnRCa#l9WnWPN3mI#+DA?LrfSpj^<~sF-Griezq_+*m9c2IE zmf&Fa@Op(?;(wSX7wx9I;cv079y9Vawl?TXC?)wzgDNv_FNqspzW!8e9FTltwCQ9_uZH3^ZJh^ z>>66}BLi83XPI}|`1W^)y1MW;UVhA(S|f)eC__s_+l<2@)-6<*)?^lV`}S=OSYBth zyU6I

K+=F5@NI*@AI2B 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 aFeEeoqt6OnG`-;Ek*!+yS@eo6-~0zWaNdjn literal 0 HcmV?d00001 diff --git a/docs/figures/stochastic_correlation_matrix.png b/docs/figures/stochastic_correlation_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6336032cb403b66b472c0a03d53aec8350e721 GIT binary patch literal 105373 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�~t^EBTkH9ahM8ixn%2nW&ABB_;QRK@0PKlbCs zhwX>w2JtueLwTg#vQ}jRc`d9Z-`UPT@5^XUa&9+6Vk&$qKRvc~5j`bLQf4Vp9vM|b zSNLE-5NwgxQ~Ksrj#25Lq|1*SoO)gei-FWwSKx?C!@{%BkG%?cH*a^^Hmju>Rlk}r z1$mn76kz6qrdiC-9^Q-I4(gvyFfuc@E`Cqvrn|h&aB#AsqC@*Tb_9ig)t*QF)PTXZ zqok&@=J|I4Ot%5CR7_gfX>JWUK*Pd|<;57B zVgN`?hST2!;Iycc6-t`@OuHck&>IL&7k|>-uRPaDYS?vCM(F$T3wGtZ`6ZG>HQ1`F zO%&>;$ccSvKc{c}bJa(J<_LY6-qobESL*h|A3SpNY3(E3wpS?C1*!JbD?gS> zom5KpWmJ9YcDOND*{5UEkM4ZiF;b7HO~QDf9eaQsfJU;`9{QT=Nu!^#R(r&PvL;T^ zZ>s*P-X_;0M;I6;dPD&Y8;Yaf=MH2Or7@whi_NEyuyWLF|;b!lOquZv@6a za;W#87f7`{O0R65n)y}W!ZMdOgOi3rileqw-pWI5Z!O36>=}xFz>8r!z8A!{uN;|s zt}M1}9_!HjwGt{+*>@54XMQF>ajFZ>&#^WW+jQM{Z1?WEktLFoa2E|;LDKDAw7|-* z0`|I;M-O84EHb=HRv0Qrd|@rZt*oV{D+t@Q*`l#OtB&!Wvo~yo>dnpB{gdY?ppILI=TntPW;Lm6~&&PTPHNu)^w1?s9hd-IhYeBtzFJNU6 zXba{Hu%Q(O7@67WJS&}tnpM_kE(dO@as1_p89mn3W0O(7Er$oR_!up9+%fWwjS zp`PNJs9n+#UvU+Dc5KJHRIw+)GYP(HW0fBV`E_)$RhHC&GWSGIVa>c=M?&NBqTghI z;o(DF45T3IdV+KoFtv`a|?_L%kW0$Zj8kOxypD~V<&b|Q4)aPX0 zq=(&iFnFem*IFy?s=B$MP0%?Oq9zgc-5=Qw9`4AsYg&0g<#YI`Ag=b=IYsZ-Q-ouo z5BoL09io%tmKz?ue1lSzOp4Z*f5V@pAI$Oiou8)l=CfCtlb%o5)wf~geC@wS8oS&j zZh2#vpcx|RE?1?fp%XHE?iPqK7PlfngioDlUaaNJtu`zCHhLKZItM22;qGR!!}h04 z?4$ty+u_>deL<6*AJjVA14ip}#!?Tw9BkRafWfz>U1*x(*v&Y|&fF0-m%}^wOTaHo z>(8QNcZ^KYZ(@hofO)r4TwMukLz7EoKnr{M7nQ?D4gI3KWU6G{*`;4|ul&4U;~e`d zJLgI3X_GD^q=E36gkxXP50=Xrlewmm{93L6Sn`Y^Oc!O$;=5JIoCjYtf#65B3O3w4 zmw$mB1V%HLXX;bf^#0zUCv&i^J-`ZzBv~vwX^R-T@G#z|JDYX}M%|c6Gp} zb?I~!D00J=u^t&|!g9$3K(#!~C#tKekR2!QZ&H277mZ6=XS(y*hB_w{f(o?<16l42 zw43f8Yf^9Mzo7I`uK$;*1Xct(Zz&La>#WtIDqZ+C_RUIg+H21E3~P;9OW}fTCJWTE`LnG?+qO0f zJAs%0j6Jcb`xJYNH`%Y0J36g8C3?r@iwqs{yrOd}Vm$xcjicUz6j>3PE`~^N`V_TE z$;3;SptZ1MI&||U7ab4#-KO~G;^X;?tL|N7cIk3zdi8fp)ZV5=0Qy4N$wpeOoBW$@c&4gKp+cGK5uHw0*Ramv^8 ziE01gla#IW)`V_COn>A!AQ+Sirw!6sPm3r;ZdqUhF|@<)>&Ja{xBn=DS!LY4z$m1+ z4s-^z?*Tu@NfQcUGSXjt2%s_Ws+C`avff~)$e*89T3R*LEX|C3M9S*JU@uBYaH-Cc zedJ{-9<&6c!1zTR4@038AUR}y9vTNvK7a$s0`CY_VoVbL3BY|Dw}ONQ$X0MNN-vIWZvXM~&ssI6BsKmdT=CVux;Bz93!ofV$2>Qd0d>qz~7e?lB z@D)jb)84XuZ#}pSHmB>B2bqC&Mn0ugJ^Nwb4gIjYr9yx2Cr>!0P+JaE8~}9=3|>HZ z#bx(PZ}ZlfhKse0azu6iBZSRSofWk8A9jS!M2l%!u&SEv7QbiIP^^|j-(0ivN9!k_ zlh1Ek{TiyKr9G>zpy$@Q$;RJ5pW%f{S?Qtuogd!qkQ^agD(ia-f*7?RPv`bj!))tz z-X!Xfpn+FB(i5-chim{T;xGm}(w-h!Ne%&|@YSqotJv6r#$io?ZLG}sD;JWa;v=(c z+^wcUOimceJ8Co)ckwC<8U@*i)yP*x&HMS&3D|y*%&>wDa&{}*Z5K00Z62PQv;4~o z+bawRf|g<76AB&N@n=i9OgdXT25vb>dCPyh44d+pVWT}I!OT~!KQDt`2wzA!lhwdr zCG9a*^MidLd7DVUK4;K$4^^q zoiL={=bvrX-}`efNoLXJMNPM|1cZ)*>W|)=_GL@ED;>l>`~X^W$t60MrxgRs4dg*{ z)2D7nVPK0%gYgz=Cr0TT1yoE~*e)U`p(SeHu1%!+53}ZKg^;_p?ND#dv+idwoF4A^ zXnpovipOiyuIej1ue@{E1s0k+H>qvG8of-8^peO>O>Sj|A$@F`_AJ)ZL+8lePj7&H zHG&=;)S!t#GJxHY02ot<3{AapPgbW=NMhDPb&-FX%R#t=$gyGnnN z2zecU?!d5s4tiGr2oO*ZNdxLlD8<^^ngSPB0&fzUPJ;u)*Olux<9`&Ak_cUUlAz!4 z62E)5o?+$pjGeMJb>LF zhDU2|1Q>?b3jP;8>~-QyiD1ov2%5+MJ8h)ehuZ<@)=gQqV`|8l2D;UzEi^*F$)29J zL5vQ>q`Y-&tD9!f%dKbXuffh-@!Glg%db5>36oPW4od*t7ZX@QfTKw$;s(5ZyB|$7 z(bvJkoos3W#PfW36j?AbLklI|V98KHyH>E!iGm=9Y2+blL<0|q{Y>PH@;AWvB!T~} z2^ixb?ozT60bQ=@^9A=nyaBap(9LpU5SckT_4wboIyFz^Y6wtmv`_`JOBOhr;DsuM zR0Cnwdd@R;-1sZtR7uYM_F(Lt4Xr@8cW$5nE(s>M(eOGj02hwN7&G=yb6~HJwKj706Ru=sL)JlP~lOiQhT2B?3C8@ zDl ztHktL*r_A9lFvz@+v`+JV4&=WFj2BJcmd&;vw`n|zBTagJpjW9$X-YYVwpFmcWnU8 zKIeS#7Z1dZe}o*zsb;o|>4l~lI=O?BO*^*@QI zY(RCo67OO#u$(3Xh9eHlV2|G!v#v!}PG~;ABYKMZ|Lylq=!EBr10?h?D#$Lgsk8$+ z|1KbXHsWVZ;G7Bo!QI!#N7t5hBY2kT9_7;(8deq-&_`25F%}gM2>N&SY*g(O=p?wG zo#tBqxxoB`NctDZ$Yo_JJip&t@SbHF7<9T?3gS}x0qww|c>e2ubA6G!b0)Ig zLFAr}5|I$v1-6FDec<;=)g8L7`-LKAl6SaXOYXa+LRA%5BZXZRA^4&WVghLPi ze*$&EaykK7ulHD^Ic-faU#^T^@dlpge*tRW$Nf$1@Tv6zsK_s)jkI*&!-2Q}O!s;I zi>+0m1Cz^vHTK{7uR#T}P#ZA7KX`y%jOZ~b8hLVTY-|u7l>Xjm!}R#B)50{j;1{J0 zhEP<6rAzZu=;b3ad3I~wXhtUfQ zJK4{2SHq9B-%t939Zv=s4mt(h(!ejtUkzH)^%p} z{0CX2d>O(1DwpZzl=-tbet35M1xqeRI?F|%QDQlE_v_Sx7Km-U6Ao84H zD9#^gXrSwU^{NVRZ4m`S1O#vp*aB};M$KmgZU9dDm|g zbfMCUglk|Ai+sdQ0*n=A!-<|5BLI=%J$;n)zqpIE|5}~=ojBLonLn5|;`zzQ)eMF& z%79s3m>I*`UQG%5mz+TF%tUV*DoFsTa6LN%C@|=OA=oYAw)_VGZ)=;g>)pb?^buNs zA%GML?(NujG694|MORf3LdD7ysNwmr6&F4fIY=-}o8C3hVo1`b@ZRpEyZ zGRQ%i5hXHvaO6W*^e+C$d5r|XJlONfFaR;`AH4kw{Nl#C;=KoIm&@&Akc)50ZQb5^B1o``2`2jhjC4k2}s`4HGI9uoE{$o{@fA( z3Q4i5h0D&Qc#p^9>%SyS=5k^Bt>Afts}Z6=cV(&1Dd)L96N+-G1{(%RuL#kGr-35+ ze?A`7J>0KALlVGIFOhHu-`R3It9R2XMVkv*=f%L-awvo@RADnu%bR`DIPjITi!LXkF8>)PP&)(`V4z&^Dz#sAWZnuG|2r6sq zzaSiIoAIu^>(Se=v_QZ7-Y~agW1f(No)jo{CctUhKxg@Po>x29|K-=3r1gb=tIMsE z3aKE*f$9px1|lHL5GkpkTgz}6w2wwm@hoFg?6&cs<${*eG6+eu0R5NFu@-&}wTowa z*WEOMqxg4`@Vo=XHlW7JJa`ZZ^&1M-&?o!{{r0E-8`MppbKP!=28fJ_AirktqT2-O z{q6gkSHPo`gv4)vksXHwD_(ql*c7)hiZ{i?#A5pfNVRp^5?sYDPM z`MxuE1A`0QZj_MnfQXspvg#}h2;XsCFppe-Kzilzq~5me+wBR;sUEwsB)m}4gb6@ z#sPAZ8)EH0BtN6KkUG#XLoLrL7Bto(U@nEk&lsGh-!Xy?q6$E^p(uL~0C@wetbfaa z)B>&+z@+u4oLpL3V%Oj2URGq0t%d`TQ#DAH!$E>#By3-Hi|$65ig5(WMW93Y$w1Ad zj5LWsZUh=L6iq;uS28wER7%w_z7dnM!5Nk6JyIWl3T}l7gQ6DT@v`Ci02?m;>jI>N zcZ^Pu+{1P^#Q&Sd41YlpZ_{a(I|5okxr-mmbrRE&C>|3AIn2)ga0F@o|J<>E;*3l* zJmVDY60Ijso}g)tTdgrDVllFT0s$&s{}okZ;^Gh_3t~ISngD+p9zI?#w^RMnmGJd= z0(u7N?WTAWshJkuaw8=rf5t@M-E$p%PqUHj*Tl%kSOM}bFpC3Tm_aMh-nmE z`9mWN$$}jeCbP#uM8goN_n^ZCigsg(`~MvcOkmVQ$F1{>aRiDOWf0Lq^%J@}_!v}M zL*Iy4v<|*~sC9!x+N5J%vl;YETwOr1R#xUwjpz5x7sXmnXP%>y3APc7M2bYW1=T;I z|EJdG-!xG=!RV^Cb^CS_QfWj4M^wk`pgGkHgQ$V?fWrzmFP=A;t&P&mCB5 z?b=vujX@qXe;5Bx&Bk$wYlp_!nL*HYWiQiQVwW+kgDLybiAl> zXO0;tswu$;4VchZjOtIr5Ipd|3u2vgl`9W_Tmz_P{iuv1?Z$e%AI;iPEiUXZqX0D- z$Ov7r8n{~%#3KO^Oau3!rj62qBar(tcsBGef~_v1n}cRkyD2Y{ zn?MsekT(L<7#i9k5kowJFQ6OqYdbl5J=0Tt(*4V#77kQ&e3-pB1eyRwxTHXLyMcrY z;b<~p_8dKbh3mi6UEaZr1$t2gIfc-cnl5$s?n?-)r!c7_cN>;A{)BTNH^hX2-&tNo zMJ0u@oth3TR)RKC-(A0E{>`Sn4rn320Xim?0G~m4DO{&~M0GaA_W!e*E7cEK=y6b1 zHQ}nOs4$W#0>v0(s9I}Ig{Q6Gx%Gyo3+8u7!&*KSRNVH{K9l_Pe+r#cLQ&G;B5*C_ zGqaD<(RG-b%^%#5F@C><1Q=@DVQk>uH@o5Y&T>VQp83H5BvlDuZGiX1qxo9tvt3|^ zY~e40&}Z;cAQMSIEskW&!0s4Lo6)dxxIU7S^9M$_WG}uRBN-Reg@90{J&fq|{v8<5 z`0k-5sA4oB(b(kVWD|X8@a-X2@fbJ8Fz1#S)}2CA+6AbK25bbdDRxj7o79HzgNWM0 z6ddr&3A4Q}CD)h3;CEo$=|r_2A6*TmAzX+-4eE!KS&ZN}A%PqSgyOX^G)TW92^(0S z+d!V>OMC-;F#^r5d6Mrr|M41XkfAz@hbc5_RMC_fqAO}yu+Yv4kdre>X0u3*4906% zE(Q_DM?OEF+imEO>hGbI1?29#sLdpRa$f>u{P9V|l|c6!<+{a zy@9d>9|OA+AYaMgVNR0<%7l0E&>d1>z`>Ik4l`*Jh}HRk&j-mdX_Td$XA3~r1-hU3 z!Ri3M#0zt$)=$csI#$YCP$~lj*s~ZAIxB(12>2YNJqQCP$Y?+izV!O5_CsigK&^$G zVh4(YA7^tx2X5H;NAQM`Y{YR>h~XeIgpYv-9Z{Q)Mh8gC7%XsL_<**GAS???4Gz71 z51Z9j0gWVYZ=b&|EQ=j&O9v8`jOUjf)*I?BqwOG_iJPD~b`id(Uv;i|cZbfdQm|3a zn_Z-kl`WQ`9{KpSAF_5UGD)AU5X&-OKaQ?Mkbg_bm4X?)(0i2vG)D}Oa%6h>pgAU}$&>9K82!t!xL5TvP<)I}fs ztwCK_3K+J3bUDw(1rB%Hx3@kv2Te7HRXy6YykjpSL8ruct-6F*Bn5;+LbkJJG<}K^ z0h-|lNM#=hF@UfmS}iP2l$5CIzSt;OrGR$AJ% z=;!mChwc1%+X=o|qr!rTVs!-VV;m`*s%-+<1L?dPQP92!5_ZU8908m$TpSyJoA2g)24fS9VKA)V6kWoYSJRqbGJG`@V@ZF{Iy@0y@C z+NfJG?I;1YW&`>_RwOrrxNsj0%#MZ`Zq$p`u7|#sGSRDz&$1bjgQl%TrOrH;3{!qT zMlc#5@Qs%Vg?En2 ztrz4-{3g-qTFtcU{UfV5zxu6L9v?WZ_4XOF+~Js)I??S8<+Vu_YG}+shBX;hbCw|5 zt-0syjMj(KJ6}ezCS19Gw&>u_T_b^&zKe^x_wnzyS28xOdDfot$r}or$_uK#H$LQC zn>UsNewt_q2jrAaJyGjl-%(CULK{GI9em7Ipvxh{vKAK5C;2lZD?fuU`3NAP&1`GF z!1RpdD=*amOOA6G0pP!a&g|SW-IhrA4f+?GzrZ8zePg6U9$FJcu({6y znPjv=#=}@54lYThK_*Xo9q5uxFObtD@cTsO?xQS9J>vrT!T!gS9ZRA}A{|mXmOBTi zV@Q05x(7TYulVLGGGrb23Z<7C;OL zX817>Oi`P4{P=OCVhV+Uy0CNC$F+pbgh5&{S*r=r-jfr($`CBgr?mpkYfi(Y2ZIN^ zS|S>A!GII`UpV(DgMd2a4EE$Rk@Yk~MbF5=Ap!ZIbE1Er!0>5$oBHcD;}h+f@vtau z538rEtgThDwY9yrc+2S0jtv6qRH5#>|7nd%-<=68bxbKXxJ`Pz>CDshKcG78u_0ej zMQ!xf_^&^D$zr7)(z#pw2tewiqEjuEp z6V_$>{>PvE?+>Now(eum=E7W-dpqi`@P*R~G8=?fZf$gXxOQkm4MKJ6!1^}e^vUB6 zId=~w4sCn3lYQOk!}n2|BvD-)l7KhZ?nH1%HjX@L)lOc@4ub= zdENCS>q)wy=dE}4TGw7iY>>tIA3x2ySnjoBmyQ>6(W2KK`G5a)i@^tr@cO_1x;0=B z>dO1Sew_b$?>f}$0_^u!1NYu!F578)jQ%XT1ONNiz2Oe5g|2_@<4YZ_TnVi=1!dp3 z3$-4bVD%mqjgh}y9I)hv|86;Se1CqSlwmE(N*-=LCy>Q)v|2IwJ^-(%&{D7xd9mq-U>IAW|bDL1(UL@ z2XooGvu=1d-Z-w+%iv;wP5#-K&zdrHU!OwHmdTT&X}Kjb!US@<%c@%lnXdwH-kGZ0 z?d{?x1#VS-JH=sbdhhOQ{YOGp=Iv1(HR=Ohg{rkR!Gj&?@|PSjud?K&Wl0~?H+dc& zz6bcSqb$lJZZy~|lWcYKT)kY0o9%m>hc?dmqtmv z6n}f_&`K~nA$x2W-jhcE)+s=GN2S z)oBDCXSv8K4##k;5ZzO* z9dZ19!+Qt2#GIa~w~PSwuK|q09;;h@@t=#b_ne*WQ8QCabbh?J3A2<+MgIhH^h;X( zU}cjg8iuj;zG zSiEncvv>t5we8Cl)v;HX0`FM~vMc7#E1PKxNMs)_XIGm~(fR4qqA$}gn&0JJWnX#S z$7=g2Lh>dt4&F18m-g~k*(E(}Kk1jeteWk|q$cR#u{{JwxNv;evq1bC(LXGswA*Rq zz>j-5 z;9$p}r9Ecedv@~XcGkxpbOi9k?fk)Cw=ikv*z|rG)6) zs*@hv)Wv=2ODFZ#C5@VTj@tT!NZs64l1EwE9J36l{$rQYx$uSy5Fk|n2r$pST8Yo(+z`?e&8)6I(CwIe`FOB`=1T)^S9)b3F;!Cuxc z+Y%Ma{&?u-V-7;rl*@(0YI>Jf$rOxe zpo}&GF9m^L?{#7Md|>qAlYP36ggXj|N+LV6x%BO)l`+jrKwkPSma;U^ zJDHEoe%$wsWZlSPM#mv?PI^b^#l%V{C5Na>G<1=^smobQZeoKt{w(WqzA9n81 z{Ejh^{pUD#WbQZ_U3kE-dF)Eyp@1Ml*f%ZCGIGN>MPh)pGtpxV>)VxW5&U!e)7YF3 zGK0NNEEo@RrnCgCc}|Ipb~ ztSAq_n!I(-1tkoAfs#$?&b>@`Z?!#5`?c0%e#xU+8c~mXTS9}*Kk}H2`w14FP@4SqY-6$T*Mx}%(LspGa;Y8&a<*HVMq6~KXN>DzzhT%q3KQV7M@W- zQV(ccjle)?6M*RJ6vPvRMWhm}F=}CG$GrFm6ikspL8#+oW#|c^{nzx>cMl}DF=47s zJu=m_`VjVU`n>oAj{;sH-6{KIte^mA*!wv>COiJS_%yltu>{j*1B*huZ^!amgGF&N zcg1Rltk$7VtWRoXSGt$B%UiFAsGi4EiZL)%hp|M=GSA&`;ym3|IGu69IKWT8wZ+9W zUuPm!&@nvx#Tm&^wU#(bkszgWbz#T9n-`u*ugu<5W8kx5Pq0Y#*nQIiD9CZ?j3Zsv zq}F@MqBwTfudNnVBU7ryJDO_+h0`l3n=UtUd)2nLADD_q*)b3{RevG_6c`c$%FQKb>!)u^D>}71zQ~0u?3AH=eEoj5tXLzT3SB_onbCE7dTedxkN2#QG}z` z?e7%Pq~6cjQo;$d`^%T~um-~0eA<(rT`$)A2qi#>dd{;Ym1|e$&HN;=#Dxr7mQW+* zd-s|Yg`5_@CTMH-GIBN~dMo9=9g{KHz0xKF(uv_qERK=*o0v4$DqqiobkS z)z3Q72qp$6t=amH`FK9j!J%!2t-_|WeM4RhHhUCAuO$$)NQ>rdnW}%>c~@l&mpaXFlh;42tK5)aKNrO?QxsNw3}?8~NBzr_8-6VXEm;{3@lQ zuSWZVW`Rme3Sr{GliL*UT{h@>bq_3t9kafc`khxjb8NJTRP4}d-a|L3%g<-7H0E!H zkAVQ6n@B@NRk{hg|Lj>bZ~)*lJ_dmG+Q>;W)2ykf34uFCeg#{M#|*pH>L1hMuX1dP z`of%D*c!+5^*n*=y1Aj>$=I=Q@p7_dHQ8!TyCA7rv6#X)rZJyVIIh+%Z|&>yMOE?? zR=QGd<$xi!X_mogc7aK)-;%AMS2lymu$o2QPN>K>w+MG1E3KMzhREtNomfy|)jyL>x>LxMiV#EvlLa)Bvt{CLezoitk7 zAZLRn5Q3BKlh~c#U7WpVan?fQv8o!$?;FSQ7m@HKt;v>TKV<@?rce#S<(63%!t9f! z`5jp?_i-tVY$CNWA<6z}0b1RHKYv zjeu_5kymFag|7QQYrlMX7v^=85|M$ozv9CZF7Wf`eXc`O*D!k$TZ+~g!73>+u>ttM zC+KJ4A``I6ySynTG;9Cuf!z2?~i~t)_U^v3f2Jq^j*!zp) zc84`*sT)y|ql`>=_%c0Liw)}~;oGUol$*Isj_|cmP0Y5|GM{!f)ybdSCwMc^>CIcF zxcPX|Ow@VZDYiZ082^(;G|9BdWBa1y5kkg}lZ4Tg;xA|Rn+vtzh=H+w;xh|PCms`K zRu@LUr@KDPbgNuZEYW-8ch8mFUE76m#+VDolE)7=C>Xajzm?ZJN@lk&KEeEh+q5P zRaF(Ogl}nw6ey&KBQFN32fk=Jbnu){4RcxF@3eErcI!gHl+Zol+&sMe{ye`p9nOPR z%=>L+DbFsdml}*a54_XSCAV6umN+{FFSO<32x!l_TBntk`?=1crMWp}mpnLiAr%f# zZnP2zMHW)i;6cJ?R5E4fcML&2VLjeGK=%?D93JDvi{_Gnmu|C!+Q>yOx3sh%$)z4h zmIihGNU;S#WU1h+$aw$T*}_L%xTeE_$tk@juc$kk38l_RTkB=0=(lGUNAyuD3gYWJ zs=A@S)%bH<)2}&p-uOConzFvSQj#OtqA?5?_PtdF+#SmL@qLyA(`s?(n0x_O@Svh? z>PyBzL0|)ZVX>%oxkNSnkbEjRT zm4^p>%&L|&X(RJH2reQT4L^#il)j2f@^GYdaU7Ss9eXCXGuN?E**dhUmY3in%HfB( z#=%Z-dR27QflL%%<~^)PebC_v35ElAiY8vhwY9F+UMW}6zsi^v&DEmk)Ffgi40 z0D_fc-kpRXSb&69fPGZ-99*OuZr=ud`z(3#>hy9dXvx9mO)>U-%rku=ap^1v3@>G` zGV6$IxzOAH*|HMeU2EcJ!B*c|uAN}@O&}%cPYASK#Zde<46CGlOUce;COCGoSL!K^ zM_5*o>|%5d$}wTQGtQ2wh$t5*Ek{W9mZT+V2DkJN@9ChwynkmH$)vJ#dYhq#m*3+F zFR$gi@2~A!Zkpx&^}?H1c`ODq8`W1QjmkX0AW|Jy)3VF{S3A2|=dYH;_@iY1;DbDq zzf}Ucn7LHt2rR3biQ3BfesAwjvYb)pxc`1dwcG8|sW*{_OY(Wio!H`~+;Dj9$1-zRuc+MjdKJu@5!P7+r%BRA$w~i@7 znpm~M(#6PQ1p&;z^~(a#0qxS<_6bz<&VWw_`bkJ+3oRP}{GJE&ORmMRZyf{z0VynD z@GAfvBf(+>d&%DgbPqbxqx%XM$M|ivP1`eK%a=i)ymvyRq0OH`v>~;(*uqNthAj<6 zkWz z47&zzXTV8cUzfSSs&N+^x8)gMPMj#oQB}vZBmF1#aGF*^%=sce%O4+Hzfq5-nXNA5 zb`{w1hQpQ+g<>os*OiT#N92nbnU@ErGh5`k1-X$5S0~lGS{t=)Loo zU)3Ztv;_%TNXwa}OfT(G1W`>u{IO%34MvXzFHEPCT4_-v=AjgDUl zP0}h#wjXHNy*w8!A-z%{=Tab;N7?7f>gRi3snXnnu)6QAoLBVu%z){FzbfJ?l8acE z`ePz(*`T?NMuL|L5$V>nzotCC>!cf$$q)b6b8FLp~tB9znhzR^%A*CfN+Xq z%dJyy#1OA76|m5-eY*wDrvjrN%518+a*aT=d=o?Gm@V=N!z%n?!Q=>QvjZMY7KUlR z%EAS3CT;^iw1AC^HtdYrjbjjPXC}bCcberyFkO6cNJz+b(cGanr+4Auy+3(%ZuOgR zkBWNoC>>FE^a;jEQz8a}@lB=_rZ1X2hih;{LrH7_jOA_WTAh)?$vKa3$44dJ9y^t5 zo2K27Ao(YV!O3jwRTarWFVksopGc2(X*#y$>Asgo+FX9kJqkP+)J~G@HBQX^nj9ZB zNN$qX%I$5e>fn$ZL0Qp9(L(ccRFpq)p))&@< ziW2Tv@3xy;;d<$17V?P(s%_TGEG z%ZiEwgWK1G7d8oaR=ymizVHY)Nu%bhX#uTD<8e%A-#$;_xem+1#ba~nb5#$h= z4KyVBfpK_&O;l9$e*bD8jf;_OI1uE)Q;rGae$wjYS8w`G(@xmU8UtEIEz9T~MB4EQ zzRQ=JM7>C$cZY*Ek^Rh>2jM!{y7Zm&kI&W0^t`;RW@dOPP*1u>mXcayrF5wJ;%kF= z8k`{eU?T1=e$+T`lh^F*&&!ibX`zP;=tigVHIq`N6}8J_aqkkJ&-*9mTy3Xq8c1gK zk2W>T9CNL0rudhP$``!1r+M(vcFZI)b|5uZl-X`It*-Xuo}GM73(d=_S>{FRVhk;g zexF`Y<93x6J9W$sHGkfsJ6-247u3BvRab1%Yu?RSRb`_76v}zyPgGDXHmVL5V5f7Mj+D}E&l<= z$5k8y>?VT+`bEp!nlr0s25L`Y(-yEa`JNt~T~N$NzW&y<|BtuGf>F@|iGUO`0sokY z)C5pG;sHF8OR#FD!3Y3Z_O{tO0M1Zg;O)(z?h+(c)nPq_Yfg|&naRyfgT3)wuLPKb zLNw#RASlD+)D#XdMsJlk`kDBbq z+EoE=f`j|lfs|b5sP>NEcakrh87{c4bBs&b>MlOr@XrySJTpG&C->6SHD7P6t|o`jX((qh`^%^6$p<^9>lhCSi#fpum(&jhzh}oJo$p~!E0_W7|V9-Kh?tFyROj4WiWYoT`ZE9;<@n+jIpCuu}cA6Qc zU54Ln5;8JI+~tp~s1PKB9seKZ-U6!Xbbb5ZCRm7FFtwK4_B26ol3bet{>bj{or8JiyS#@(}37l9nXpt z)4jT`nO1{>Nqo^y7;g|UaU33xXG#+GURD<4Fw56&zce@)p4fG~n`~j~-|(lsK53?k5i#w_Bzv48pMI2(!2 zaas$>PH{?#t+)Hbz+VkAAXg3GAk#Q~-a_rUJ_m}-5C*Who1)ArXh%Ukm?Cj5_q&>R z%=;HQK8*_^cZzIB98*~=wb(V`^crlXL64Q3uuq19Dsr-ZDjC-+&r*<6TuWS2m{Tn? zf4bXq1(dm2RcyST;_-Yb{cgJ?;kmbbT4Cal*03k3UHIE)mFk_BWagW%)#ZM-jf2j^ zusyHrwdz_cjG$Xl<>;j3$X#y?;E6*#b)Rq|c2m7Dg^Y}`q&Qyt@uDa=H%zpmz zI9*M1$b4|0Sm?26QC8)P%Ef1#Q_}jPeCLU(ta0npM5i)#&cyjiPgY*yoORndO^FX*`EWV}a3(Z)Pf? z_TvX-N%M}*@swkd5EM!FVSHKMkHk)n+AdN8cF)e906S0iiJTD*HtV*;`A4+MC8kdq zSjM_e8~R&n`57OV=wIrJNbIcN*QGYlLDETAFOm%Y;eMW0{d}w8M1M}ZzE>>wZ*JR~ zkbha;8oVM1wgX&XkR7mu*0Fli?HQ_lV#YwPMKXhK!oH)!ptJ$!J* zR1B39%H7|N^yE7|WVqZ>$S|@`IIp`rr0mE36Ep>Bcd#ejhTQ!YNsHa*eV#yAosMTW zj@uxQxz6lqXy;d4eCc(=NEH)k@Nk#X)EX!hJpW#Iuy^^PAq*c`)hpDdBX*-&`;(8J zAwgJSF^H;mHnrFQ?{Jo+5iIPcNZ$kfk9J3c*p0v~Q6E4*mm4UjP@5~KRAL{QFZP2r zAi(Wh{I?2sygIf#dj7G zGMU+Oot|)}c>K`CwWVvedP<5Afg0J?8jO2IT2k`)BwR2jLt^1nop^eJBFb6f#VR3Z z+>7I=VAMmE_3;*brs_nbwOeagw9`Eq&mxwr+B*ZT6%vgVHxj-E6qt849XB)z3l2AY z-u~Ov+4=FL7&Bf%yIH!%NC*S9hf^Ap&RhG(v(Q6HE`2#9;v=$ek&!9P zpn%^4^eaCK#=aYtH{z-5U0Kh^&kd^X?+=gTtjOrdzZAf+tRJ`GVH*K65eVJJ>U!$N zm(Z}P7zWcrYuuQ&)-0cuA1yN<59=#`ShmgmQN%K@qLMOOYaHaT%92eO=g7=aX&2*^ z@BS!=V=z}qRFI|WG!Pp|HM1=GDhiBskLcn)5B*1ec~i6jtohd*tM-kunY%=see#66 zy1I74u1>j7vHfXi>Ueb(?$+{$QiJtqMlKBI@del=2rw0KY&>Lu1Uxpktrap-n5BDJ z!6ySb%N@V~MZQ%K-IAqQ=X9q*NIBA&E^USt2k!dN|Lr^L~_fx8CrG-i(GmW`wpSZEphG$CgYL7xg z#8lfFEi^^;pHw*)*3c4@A=R|6lRqlAmv+!Y74+tKOPiQ>R&D32_oj=4u`1@RopH6m zYHv?JQlXMB;9tw2ZFlhn&GI#y9QQ48Ry`kCwYgHp2w$WeT!U?AS9i{cIC~~qt?Qdb zei+B;w=eMTZxU2JY&NwsblRivildlTORS8Uk2@}N+bNVuxoYiV>{fTq!UMp~LCv{#S84xN z%x}kbUApoL#J{NbiJZ#@RwLLIV8ZhNIH!~Z)EnrYUW;C~q%u(Qw zZh@BB0(5aqVQb$qR#3hg?2}G(Bp=Qq*Jg1h^2|>5=1vsQD&^;iXQXn&gqWR0n`LEN zaQFAya6n^Uyp_jTGjXTZ%-rSVE03i9WFKmC*o$lz zz+nhxK-zcf(z%DS0z=!WZ9ksNCQcj8g7DD}Ww*oO7lK@or3|G11JnB3ZqAqD1sDac%a_Sp>x zh=-iW)1mbR{=NV=gYd}iGlFNZ;0Q@YHU<4^3L>2UnxIFP29sh^t~oSLi-F`=JeUP$ zkur!FFCNB8A!zPcey>$4wPW9A{uTTH=#?T)i>LOLO&b?!8JaxETGR0sneTGxxA5N`H_kRlIP-_=O$r(pGOMp1Ktemvr3Pu@O zz?=Y|$E=BipI;RPFd{f4WQfPsmV?c90gTV1(0AMvlY=h<1}V!+GwGrhPoWZZhj3OG za8V%!7c!k8N(}I}MywAVIuwtFdC+|?^%tHNAgzHua}%b3PG_JbR)&V*{nRRe>%eb( z2SHWsKc1`RIbI-A{ig}rYxcw8_{Y0Ju?Zg#9raREQ<2#c3}+C}JEbZHd@hX=hjjSY zo61#GSbteO>!A(ZY49slefYpv6nzU8H!~!lMa_SD`ip=Xfa(mFmr%6I=v<~V)mNkl zT`N@?89xYXZwH%T)rb6230c=m)jB;tRY^+prjLAV{0-0t+$`t~j)|EeeYU_uj_73qPnccq zq@XGstcKAY+&Wf%{sP5-9e;Z2hJK0O9IENc`CV&yCF~asCdTX2Pl-Kj(f_Vovgd=r zcHymHq(`((@M??ce{%{Pn+_*_gFPgXKSD zpu7KF8R)y8*a7d;|C%mc-0{;l{CD~5UzDDIQO3SM`7^Qd&Bl3W_dkBM9sl>gn&r*O z?%%}$zx~_t%b$_Iln71Oi@bwUuY3o1UcGJ`97j^tH_nLg;R1lBkvXT6 zrDE=@b|MgrflOkHf<>J#P@+8~n#A;gT|K9rFY3VgOWS@iKVepT2R9NQ(YRd4p-5DO zLl_4YHORt~z`&y*Mq1C=m<#Z%vEZB7Y%_#`6kO56!y{)6Oh_kf&YgDp<(_S?f$)`= z@N%o6)Y&sA4gk;wIJ@@;u8o45sQpegbrSLd?!PeWg$()|#I*v~KKNfe>?&|0CggIb40E~{!0@Vy8=iAQ1}Hlh--=`Y=i=Reeg?QV5(d^o zHDh+;u)aSZ#+RCB)J=mqqvO^iY9{QaK3!9@*YwgQ72sbWbnL> zAqxZS_wle+b28{j%>H7Ip*Mg3_&|F8Io~F=+}GLJEhHg&`nan6xw$zRngTI&7|@3H zkKcgUm&d2=Ko~Otm$4aj-a_jWz-psaO=ar~yXC!;e|e7HDVq#ez59d$P0>EmPy7hV zD^UN#CNZ$NK$?hY$=ZrLF3sazMq*-Ol|D>7h?%g7^-@dOB6|XQ9iVVQ z`4#coZ=Lzz>woQEFAc^!jYGS5yPMxzDUPBmVDPeX6blaz-{&DKC%06=!NFlQ*R{IV z+S1Yk-%LS4p$)If3Dg=5*s@J>#SZIBRR8k8yp#m35SY!j4uD(2otO!4?x0@pYHcx) zUv^vwS%oPcL+zLyU(d1BbMg8=Zvoxj@V$dapS&ZKQiv?v2$yC8DZq|BM{~Ot!6_BW z02>b2Hj*p#=3UBqN}U0EEi7Epym7<#1a;$IUXP0~LH8H<0!V^1^&BO2^=^X_fF~l! z8_o_!jQkO)JkQG4=cQmf#o{FVsk%)(|8_O##52lQ&9Dma&?DeFQ||?^)xsWa)>M8P zaW!D*J5O4FB(@$`>kxPNywEQ>#a@_A7L?w5`0+6LPezMHULM3P_4H_!~kkiJws-4w$h+aBE6`|ef+nrM0=;d?v|su%1gMF&t8 z4kjPTX@6NhDd~)I)M-7}vyglMd3R6?22kcnU=1__ImU*84(#Cw$5>~;4L=$FH8MwG zTLATOa*7jRPrx}4`<+Dt>CCKvHG}3ey3`dtayX9iWxX<(2vF0Ue@FInr|~{r`FN7u z7fJy$P?Dk56%j?i>XHoL259JkXtfp84(TvwP=~_Bl13lK1ul@BVGj*NRD;4@KotCGcl^&~?0+vO zf4(c?0^AHI4iuB$@{T@A$@<^8JeRpoyrp<~|H^-4nEFeJdSf`F{n&rcTf}9+?R)c4 zGyQ+|G(!7V{6_HN^R$$={#(V}%{f+eUth*F`RdH{Q%zE0c&ZOWA;M$aU(~omcsqt* z(fv(j$@L!f)$McB|8e2?v)Te%+23ti&uY2uQA<2}jB57(_l0f9-rC1)RjcS)Hi`c? ziuV89ZS|LD<-dEJ87BP4KD1wrNe} z`K!KZH2;Fv}!#{UT%-_$K|NhYvoO%+kD@Q4j z)$gC2ve43ZbzH;!fQ!a|@b&+rw=H(x-ajpsSN@Tu(s}7Wc830scWY8C@K%k%@wXK5 zm(fD}PppjK@q}~IfzQzFY6~}xP64JE>bZa|zg68hDgj{sh5hcZKOG*Z9ln9P`_g*0Hu7$F!Qx98lBNP6x#4rau~v4S4=svkSWjE7g|e2S{W(@028eC{D>k|%qoD>!oKJTYMWd^BX5ddzo!AXf?a+z@H1lJ zw@A@(Cn%H3LDR9aR0fa_myuvqJNU;86bF_k>&+|$8@>`;P%9LRtJ3RE+8zhzmpol> zvA=xBnUn5-u7i2JTA(G3=lUIzQVil}37-vtz8P4*WpJ+oWreWNd!*(&`fkt9rQjWo z9`@u~@7#Dy55YXh0rbamlKM$NtR z-Jze~#S5bb6h||2b4Dy^G7X+u!l=Lm3&Pr_Y{UAkG*Zx3K#)$Xf|XTyU;WO zfq;$-kO;wnf$OAG3H(4?xNAmX{32Kk9lC+exTt%bqVX z`)1oIDt?>c8m|xY5aX~K7z}XFD$z_f0kGPTCL$tEq8=T}ctqC&rAHS7z+l@+=6kd4gri)E7Mcgy=j&?_kWH#(sXWzTPDXn?b=IO4}LV4*k#*_%aHdV^6bdWH}PY8x4a z5->1;LWEj`s2S@5PolEAdJ19`!O;UzhPTpi3c(!Z&xXvq=bmNdjNwFO7@h-OuZS`OWY#Q?WGStbUgBxIXMtm<>sRPp^KjuVLM zfWi_1>ct#;F5dPR4j#EW`c`laHTxDj;ZVztZ||A51Qb_;|1Iut4d1vt;?y}nqLC)> z8O5pnL==jN@)j9tzs`*!=zwDkImgfEO1uWe^}XplzTi>@huEpn3lPJdujIDx|G5m)rS<_4#->PX zYG6F`^cgH1c{e%{DeTD>o`!3o_r>H z;KEPqwpX$qXq)nOieBZu`36Ip0A@mdSN_JvYIUA!Y|^oG>zUl-ip&>RmVf%o#RcY3 z-4qtx2`8FV=p+|uaR8~kqADL${ZR}+Nic<2oGm9j+f$Vz_^pBTHC*!?`WrXJSA!XV zISSp`>+>>eKB&$7=gq}zc?OY%a6Xj8f%pQyv-NQYFl6{hLLR6C0ic|1+#c6d_LqYK z1C;B}8DLVu8tWeaLDNy zuGn)&5EYmJ2|;G@2e9?(&GPC1jh0nSV{YGv01ZI&#JvLOnA)ygyVefR0F@Z8?=L8U zpk8PMVA)qF&&$iZ;Y17Z?5Gz7FA(lk$#k(4NY!dY34TpgKO3-^EhuaSRuM@QER9A$ zEQ*OdX0{+$L+o{{{Qb~d3#k6;*&mTF%Q@~)LIBC(I5hk%v$TOnJY7NBFv9*mQ&Wy%mT4< zF~b;mtlELqxwO)Sekp{t{1|?o01`cO=&2!K5f#NF)OD%w^hCHIIMFHqoM-FN^Y@h>VQH!xDro=iR#W2*x`#&rkEhTE$oOWcC-@ zGu?X-XsD;Jg?#9a$@gNI(mnYnKOch;S34aA6Sd9%K>2{0G^i4${OcJPPElTGz=xg+ zo8xr0Lb$Y%dTZ;E-UO){{}FqEVGfq(B`>uGB2I=|I#d}L)kTD}1lG3EgEu-ZyAFS~ z{zZ@aq`b{bb>e;>d5_L8iW3tBym=ZqZxhB(UKR{LO6~GmrWU(KN>f8pyQq>}>5O;O z^Brw9xUl4|(hTnE?#nh{APg=kyb?XX8#H(Z+>r*dk_wYsinx1)nT+Vd%nFXxmEo_< zyBJ_)lr20|!#`60P;VQ^D$UCf=`=0^t2B4jhq{R9#IQb#@UtNlPfn1BfEk`x`Z4aM z9QlKMAWFLiWfGmwah=S%?+uFG zeVM~4$tJHGBcd~M17#JyG~J><7m}2%U}#$bgL+=LPI9a>199-ay3oQ+P4N#da|CXY`30-=!C|Y}@&==p z?j(lMC$8t)8IuT^-bk!(pVzxvd4AxUO@?~sY)-YA^1G(DlEQ0t>IV;9(o0K?If^%% z;}+~p3oIxuzOyYy{m!;k){&q?2K9}5u74EgQfAjkZ82>f8Bp%~>~5=f4_8ftAO0#q zc2>SCI%{vhHN*2p^;u@=FHZ4ctsLX|z7+~EQt>IVFw-(iDd>so?YuWMXY4qUlpssY zeIK_k^3+C#uA8jhn?ryrjC-_^d4=R$BwZp^wr_FY=plUdMs!?Yb>4;`buzkw#(h;= zgq}ch3`5oX_ciYVUy^SHc~G-?W{O$20v0Doe-V&nhE8QRX}X+_*e5)s3)Kv5zpwfS1cdUk%Y+OYgnu+Ds;^Tjv5bUq8*7x{<@S0{`RVq~8r&P&+vM&K zg!_fQ`Lb&iG&^ofn7MoIWEZE3@Y4$sq`=ERjtbblXNe@twQ&gDk?!?O+E>}+J>fX& zx1W^}d&eQr|H8+NT&1TS8IGoNHc11kuN87CQkwZ`9hGCYMapKAfv1;BKqbA|pCr53 z|B*l3V4_<)B*>s>wt#dHw&e#sg3l=6NaD`JAT2HX9>4h-V9zJ!t_pXRxw#G=` zYwUoJWUy=`$M;pgx`>5G4$QlHg+qoM@RL6{-K%>ovW<-EaJaKM4d3v`2lBPyRaAES z5tSOc@$!WjNgl)pQ$Fy>3)7@Yy-Z39=Y1`g_Kp3vU5y&WBUNVIT$#c3&l45q$DV@Q z8K2sNciuy_YOkCwTVhud?ZTzlDJMNOi|(K!jA&aHnc5e#XTBcBg7BLow4Rhxr6(^f zT`k?6&k2@eNN8Zfx`6M`9;C=S*+UWqqGZAK5?IR+$G$HFdlWg75jICe2z5J`~PpOw;k+0uAHYL2+d!o-Ge_HZ1t3U-@+k{ZIH zJe6P?SWb}3_^yl8^#=K82)TiW`CrHA6+4&)U0G04#k+l@3T|B0h|ac| za#@kFFZ!AY=I`yT>75B?T{k1q?NePkeq`DXKk<1VHFt+DNq$mpoJf#Mahdf8b8>lO zwdDh=D8XALM~PqBbT`VSE|Yafr0eVjEl= z3AM8t>1C;@ESJwf91GgU{xlFng$)^`@YjO^D;4q2>lC%qTe^V_nMFnw`*H3oahEVQ z`+XIQ>pNNltR#*h*liMDqHEm+Kbri#6*^fFH#_K4`onh*9Mck zsp3a*;*p6PVuKY`M}i-2%w^*E{1la^+VvYlBWn^xfQk}sF_=a! zx!w1UVhB%DNzlFRueYRiZ6xP=oud4Swk+v$DhV%mGP()7+2`gYg(rAGZyU_eZq=RI zGbP+}_&lXWz(8QioH1-YOaAU>TpLz3L`Y`g3}fESb1uWy;Tx}_8K|F`x4Q<~9x>*x zod}+GiY>gnwgp3X5NtPU;TN23@RopDTL3|Y-6ftO1fN8*6+%G;Q3gphQ3*TwtZ7$j z2z%g=og@x-%@3FI#MFxY&K*f1n4jQE3f27WCoXxM4Mb=LE1a909e>frLCQ-y9(XNK z*IqBsitI6nJa?_i{5_>E?~*31a%#Q^V1Ppp{)jdY|edWusHb%1z;p>{^cUkyY7oUu17XTE?Ad{=GF4` z|IoJ^>MrLMsaR`{J_W&A*xPqOUv@48FDgy6pSA9FtVcq5a5Zmqo>MXH4U~y8{zbnBB*r z2DugIy29f38^*eP9$q}4$iz_Yx=#7qSt`)4zyL+X(lQ-d0PRP6QP>pj6`jHIdxDI960j^B=rydvJ?pY4>B`Vf5HY7JTBJHur;lF9>Qw^n)o{GOl_IUU zv3d!r-*kCDH(g}UToSUl-M=xywj|cAGLecG^34L7iUyI7Q>x4fK-^6b9M@QjB1^Sx6(wTp~zwR?A8 z_Bi`Jkv&yo76yY>P2wG7J2XBMPHJS;EfH;IF`D;TE_zx!mCZC)92O9MMN2n)9JlxM zrGlHJ>K(sn{s_p}Mh}s|5+EpOg0o5-G#4f~Jy)axryyTBGnh>kCT3&MCTN3`Y}ueb zsBXd|)tL2kPduCntT!-QkuWo^+6H2A@NY@s(oES0ow(G`W-~C?E2=Q5vb7gS35Jy9 zD*5M`yXzNf+k^&#%HP_?s*4Vb-m?S{z$4djVml#quK0W2`jNDajdsiA5B0UFkv)!I zja2urC+v$HPlYT&^FJ;WK6%auL{PA%*76%^GmDk-bV4_V+r<%psR65kqW*0;|@oeSw4Qv&~H zIqd}<=eqh4tqLqJn~EghWJscQh0E(ipF@xNA`6N~ZZA*g*_n^H+I4cMsHfw4+0&uY zTr-Dzh@n$}#iy$f61^6{j%QNkb426y&ASxP{gANKfuMVA3wWjNf$%r2Sn=@IC>*Ui z;INVkfjDTA2OY6-XoMlLT)$nbO!}g-qGCL0t%B4F5c@b7YSseD1-dS)m9!hNr>qKZ zRebt^GHzg2iU&X|0`jG%rz^t%8Vy0kNGpwqXtIbGd*hhXv~;bhyze+qbyY3gmdwfn z-1>qA7Ann=);unQP^70l@my__DaU7%?oG1LoTW++-f3fR;J{(z;*6TF=0s;aQS08*==-xAV ze|3;uQFDdHGAk@7?52uoI25WaP;_9#U&Wr?bt@jm>q6tn@eEibp~$Vs&Q<^_u0Mk* zuoBnWj3H(c671tqfDtlzIZX91LWKoQ12h_j)}}mZgSg4E?X3o)HIGFXSHFFywnn*I z5j4+6Y>IOAs&;SUb@{Dcz!W!9#Df!L{=HTuGDtWLVgi(1P(Nk|uZAfkogi=sGU1Lx z(%pn;)T!5@@|vo(`q{Z2woSRl(Qj6(cetK4H%mSEkb+=&e`h`58x68*v=v^y`@WHc z8*3%Dmxw2)W~7v4-F#|URCnQ%PC-Sg3(2#<)!}LL6a6m$qCP4}Xe6yvh1PwomEZEWHn{=#|ASL^uov?Y%sr z>yhw|ImYxx5xMuF%z6O!_P{+THR_qy&OiNuyVpWez~b>iic>F_^WFiHBJ|I`F&#n6ZuaEiAo9NLNK{lLn0`5xtH2mkO1Gn%=hKZ|z$b^_Z1 z+MYyc4eQ2B_$h#L4~Fau2#Jh36KI*6oSb|nd)VrC<7;o>0M$tws~!eb`PPX8;fD?# z87#c_Fj3+#ES;r?gJ| zcvZd9`r=w@f41@ixeMuin$|a@Rla#Z@fBEWMqp1LHZ8lC^p>~v!%X&FntH(Hd=%5_ z`z(@K8J8Wdn*v2LDn6#a=#BI_rAvo|utj*8w10NZEqUVA0LJj zjS7-wp&Sk9x^F(|V6$6Wno4Ia1wT4!_<$nw=o+%9iU~R)k_jw50iL>-F5Lsl^9A6k zDxh#0Fw`If{TTRSRkg}e4A6Q=T+gw-wSsPvCuwbvxCWvFJNO1>;6e}r)rqFBAvmcv zhCc&u8-@PW8{su6OMvit?0n}M6}Lu88(x>iz^d}Qs@+s^HO%h~cKA?>>rI~*9IPp_icdYdkp_j|qOcL&Ne0Fa z#!*(hhTP|w^kpe&ldvuXpBX*3USD=48j(GDK%VhV60ST)X_G3wl4nG7*~CG~^1R(k zRY>20RgjeQfj;~kQ?DK5P(l|plfe{x=jg7Un)C$LG6R}TASFx0(r6rEhs_wnG0{1n>Q^TV_^mb5xTEZN1fON$0Jth9SKE~sWs zpIbH3i2mjol0-Ihy_1$xszW)HVdAZDOWpz=wDqjlA`3eFcwg(b+Oi{nn38&n0x`2c zf!))i$T5`9S?i2H^eKp|XPEdkaY{KaV`bbiZ*!L%2NmVJ&DztA8+rA!dky`q-9;vE z!r#QkPn1`8oYh5@rAZTSC+m-B;V{kof_0H%lhA9jNt|)d26+?TmjAK&0FlBNHW?SV zSPQ5(3hh`$kb3EBu{2*>Fx91uN>>;}7ELLbFNb#h!@~Z1Gt=o4IzZcsAuxes$ zxsT6oB#+100hGS3=Upy0tYA7hyF_4y^9!2%`ZysL$e6ezAAC2GurLx{()83RxSlmC^yJ64^crGEga3+6Zi%dS8eTp2Wdu*k9GeS|xo;GF*7{wDi2lekB zeP0#cj(7F#NOR;}j_wOOf*)t~+P~3%*&KR%7_aNlb$#~&Z%(kQX2t|FzYkceTB_~*GL-;gI&*GZP~Vyr^FiQ z+BO1iih0PA4;nN0FPOmLzc4h~Xc)6Y2}ZbAP%Y#M7;(W6B(KnZtYy)FvggCV8r|TY zfNP%!6A_lGiZe@f10{|CdBR4!wC>W>xW2gU?a^b#9S17ip5)MaH~?jI#njKp{i{^I z`q`GOYq{yHw{%gLGe^B0W`WgJY^TdC74Pqa$5;(|AkWgu2Q{m$%_A(0f#R7#aL)%M zU@cVv36=)`yifq#;S7A9&2w850!5P^-$@6(Xw9qpP7Y?n#8Q77?dG8wb&aC}kN0jh;EZQyVGDP?`3d z^}W$~@`z^KRY+Z7Wl1Je)5NK4gLj_{U*s3f>lTmd)No2gqsAn2%{@m7#m^MZo*n#t z5nzFx1DPh-4Tl&p-SX(3_7h!>=hW3Dk8=Ymj#$r`x;&O7VJTVhBBjT& z{M2KXc!~PHj~ZdYPmiU{e~(elvrvEJKhjs6P?e{<7nnJ=-&0}3g7%Si@tF+j;K$;| zVNQ3lJ=x!tY^e8*ri_f6Wo8uKNm~3^j$hk|7%&hM_UUt(D%)MQsPmwll#*D>H*!SB zvTxGNCZ^YNbfDUY@XoxvG0B`$t~u*;qzAXqrZ1Wh^p&VcJW{b5QtE2t)K#yXD^()4 zs)RGZ%BleVg0EW+KwYWpbH>UW%Q;#ll0p_|m!=hp>LW=0EZ7WcVdaG{N+iGF;pXc6 zE*kQyiDAbXW4I)6!>oNNEv7O2W{PKn!m))X1&n z*GaplO)al?&xn2g1@~J7oUW3PWidl76>X+><)eZwn#TsRNkb$nVRwht)+v8c?g8D} zrI^tAO<*YzPFD|098D)21_z&cR`6;kitNvDxFQB7?yVirAA-!0CZupcBhC_smFVJu z&atbEfRmaAOOj1Vzea~NPCpanNkG&Z&hGPFd&N(XGjtg;M4@^`^6#twkaXuBmx5OS zjtrY1G8mi>eE)%2y!Ij7xTeT7zOTf=w6oVb#ieR@6}8>7y_whA*;Hz>T=E!dJ90u5 zAdosgM%%iAy>bc_BfIYJwC_^8YF)}Ar=BwD4!f7g<&gJRplmQK?6Wy?B*kSU(`Ke< zgB^>lD_-CZzy9L%`|c^DvUzEL*4Q^?L@?ePXDU?=sTAJ6-3y)Cb}e zr)fjRQh|+q`o^sBV2=S*E~dk?AFxF-n%Y8klSb4c?=mVMb+?N&vf|rc*`Ly0{hY&^ z-v9a3_rBJH3&X_lh7VNm@ZUHV*{KYftjR5M70+ym5|*CBgOUPzg=cGPZH`PUweJ_J z(^NdI&R$nIxi#EUMy_2w&mg?c_+tozp>*MmbK!o6h`{cg>oq%4F_)qDqol4QzT_iz z7vOtq4fyI6b?BjYpUR@fIOW{MwBnrwARSIGQkB=Izzg4w3+`5_o$Eb`db^+YMII4b zz6o7L0R1WwUM7HRR-(A2Q7ot1LsBd%4#39@E2%r!&-qzD*{+uc{bHpb^}D+%#?xWA zrH(sjh?Nc+BGhSX{Z?J4ydeOcNJE`FS!bos`EU^`8!6J&b(gr*ov-#^jy}b=Mq`Gb z@jY}X=tbLWow%1R6Y#uQJdP|z$$pT5~Bls*MHWTz91Y|*!HWF-6l@!9#$km0Q zP1)Jp5aYqqy$FYug$f#B2aEfn5BJk%fFgVpWeh+kCcVq3!_Ikasvy#j5pw51D$?wG z;ye;KkAvX-%NUOxxzweX#ag!MJ_F90{>pe*X1J9}EnF9)x$Kg;8%3{u3k!=4FsyG> zRmNteYD#|5JS%ye=lWPu6o>iwPA*C_f9exSW7br$Y}P$6$?9MA3_K-kX;2Wk@MdbP zcqL*{rac^Ipc3GQhe?Uaz}9PDiM2*V;x{|uO6pUomA7f^_b-i^z0W4t>j*8UWK?q-NzHL9Vtnfxgr20P9|{2@``Z59F6Npc6SsI9 zU2VsH`_+xL86-M^p3FtmFKjac$rK85fSA5wyJk4}w%#Ox8#f*9AGj!Qpt>6cgi5%> zj3DVEE{g@eNvP4susEa?M~Ul@Cl$>XbFAqgG!2T^=gb88tyKutJLZEzB$;y3#>RYT z1;n$u1=AOwa~V8_v80h}eJgpsV_MoCPNi=!Hp=pdG6T6c4A7!eCBx6EgdaNSrszY{ zrWxYh(RpCUrH16wUvuYsrz2ME^UC3hP?z*c%JP_t52{7E+q~p%(ad<*P@6mc#n!E2 z?erslZNsoZUJ3J~3r+8;DBKHTB~BF-Dr@VXVXl99>%OJX9lO#mUo>JYMPb_*`pvnm zS@O835^qJ?jj8;p`3?aCc;V8G`Kt&s%!-GOTq9IDh=}j1d~_X`cH#szpNiJtKwSxm zqsYghw#cCjES)2OFdTBIwIs(Ue;{Izf#e=I6g36nM$PaX+Y^yyqlfmPtp(HO2&}OfXx1m>(R#*$Px;~t*OpA zkoa%dZ;cch;MyByQ^&FjJ|70`rc1Me=s@i@`xdkqEztGY987@H0~pksM9?~xB%aaA z3Bq`nen2~HQ_w2;;={IpVu2w&B^ENy32?d|r6nytLMkNEGE(PRfdWWkZUA||po7nd z{lk^S1C9)^T&5HkYkb%oi?EHB{*ZDVnxtU8D6b|H=h|AA+ zQD%2Ut!aU9`bJ}jrIkHx{zV)Fry4;Gy@NlNONlhlGrBHTXXW>C>^AlE?uP#LQU(uI zFMm)LzYM80Xn|ZGJkq+vz$nvmt!#PONhbP2kv!y3eKg8J;x&Zcg%HOW9>coB047Yh z7zrz)4idWIcYQ*^GV1E;DC8X(l;Ox!QnjcvQ!W;#ItZ3{6u`w_l$n-*N} zT?3Fe@GWHmU`GdXo?f4CDLbNwy)ZFVSEa%Kz)|s2 z!uL1Hyver8Kf^@+pC+vQ-+qp3I++IZJHgs9WjEOfAX#WOZ_XOrvFGU4Thq>CH?#l z^01$3In3X4e|{10-ySAN{{QO!->R8)F|0W?$tC1HBGH>1{v+fU{h&|`)?SkD%omJp||Bg z-2X@1(l7bEO&5Wy4p_I5+X93fh(dw}MQ*-OU3;@uHcu0tp!a)o955NW@ntHDF z4lY1JV*(9-IGm5pdQj5*awW;10geHwnpdF!N(n!2j3V#%gH!gAui^2BpG4Oz*mcXb zK!FSY?imVyy;ZprCKD5H$!LSREjmE`jd2-iEb|u0QZ|&p`*YV zvCeKl7jt=edFPaHDy{eapB5MJjGpQ~rJ)3QXe&RyOU)~@GchyscXROaDsLiFpou95 zGcD?t{lD4+yts0l=JY@(h7|$}Hpn(0bQg=O{@M(}aG2A^R;;u!OC6NgK=j3@K={IW^oj|=E+X`c#6+aODAD`oQrJ}qsbBENTvJs-xzOBET($)nFa zD3K6()DAH@k8)_8!6G(Dd!5+TAq&tKZzL7Mzf9%;bGP7cn1h{6ly!xoKmsA`@@C3t zsQKbhLd=n(wyB}N=+ATknRp>*2JADf7Lb5_d72(#bd^zlW>0@3#F_?2MxOF|yr@fj z|EhDs5-tmiyC-Ro`v!dUSfV+>x&BjwR4XCJvEnYsHA0 zeChGsE6vs;s)FZD&A9I`)Cod;6dc)4+=>gH|!v)H6G0@a!wMA%?)NDcyHZ~ktpkviya z+`P+xhIye4MiYPBh(Eu^I}9-I0GdHIXn2-ELJ#%0A@~E1KSXAHu;}bu)8+_8<3KDb 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 RI9`5KHOysb>R|t0{|639LJI%@ literal 0 HcmV?d00001 diff --git a/docs/figures/stress_histogram.png b/docs/figures/stress_histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..e2389a9e6be5d8f59e369151bb556351acfb6597 GIT binary patch literal 40282 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 Zge9Ej9th1o%AnuR+^M@GP4ka){|8vt>dF8B literal 0 HcmV?d00001 diff --git a/docs/figures/stress_sensitivity_ranking.png b/docs/figures/stress_sensitivity_ranking.png new file mode 100644 index 0000000000000000000000000000000000000000..91159fda5d351244bf23df273e9fb2956645864e GIT binary patch literal 49106 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 pd.DataFrame: + return pd.DataFrame( + { + "sample": [sample.sample_index for sample in result.samples], + "thickness_mm": [sample.thickness_m * 1000.0 for sample in result.samples], + "youngs_modulus_gpa": [sample.youngs_modulus_pa / 1e9 for sample in result.samples], + "tip_force_n": [sample.tip_force_n for sample in result.samples], + "max_stress_mpa": [sample.max_stress_pa / 1e6 for sample in result.samples], + "mode_1_frequency_hz": [sample.mode_1_frequency_hz for sample in result.samples], + } + ) + + +def save_histogram( + values: pd.Series, + *, + x_label: str, + title: str, + path: Path, +) -> None: + path.parent.mkdir( + parents=True, + exist_ok=True, + ) + + plt.figure(figsize=(8, 5)) + plt.hist(values, bins=30) + plt.xlabel(x_label) + plt.ylabel("Count") + plt.title(title) + plt.tight_layout() + plt.savefig(path, dpi=200) + plt.close() + + +def save_correlation_matrix( + dataframe: pd.DataFrame, + path: Path, +) -> None: + columns = [ + "thickness_mm", + "youngs_modulus_gpa", + "tip_force_n", + "max_stress_mpa", + "mode_1_frequency_hz", + ] + + values = dataframe[columns].to_numpy(dtype=float) + + correlation = np.corrcoef( + values, + rowvar=False, + ) + + path.parent.mkdir( + parents=True, + exist_ok=True, + ) + + plt.figure(figsize=(9, 7)) + + image = plt.imshow( + correlation, + vmin=-1.0, + vmax=1.0, + ) + + plt.colorbar( + image, + label="Pearson correlation", + ) + + labels = [ + "Thickness", + "E", + "Load", + "Stress", + "Mode 1", + ] + + plt.xticks( + range(len(labels)), + labels, + rotation=45, + ha="right", + ) + + plt.yticks( + range(len(labels)), + labels, + ) + + for row in range(len(labels)): + for column in range(len(labels)): + plt.text( + column, + row, + f"{correlation[row, column]:.2f}", + ha="center", + va="center", + ) + + plt.title("BodySimPy Monte Carlo Correlation Matrix") + + plt.tight_layout() + plt.savefig(path, dpi=200) + plt.close() + + +def save_sensitivity_plot( + sensitivities, + *, + title: str, + path: Path, +) -> None: + path.parent.mkdir( + parents=True, + exist_ok=True, + ) + + names = [point.parameter for point in sensitivities] + + values = [point.coefficient for point in sensitivities] + + plt.figure(figsize=(8, 5)) + plt.bar(names, values) + + plt.axhline( + 0.0, + linewidth=1.0, + ) + + plt.ylabel("Standardized regression coefficient") + + plt.title(title) + plt.tight_layout() + plt.savefig(path, dpi=200) + plt.close() + + +def main() -> None: + config = load_config("configs/stochastic_crossmember.yaml") + + if config.stochastic is None: + raise ValueError("Stochastic configuration is required.") + + model = build_crossmember_model(config) + + result = run_stochastic_study( + model, + config.stochastic, + ) + + dataframe = build_dataframe(result) + + validation_directory = Path("docs/validation") + + figure_directory = Path("docs/figures") + + validation_directory.mkdir( + parents=True, + exist_ok=True, + ) + + dataframe.to_csv( + validation_directory / "stochastic_samples.csv", + index=False, + ) + + correlation_columns = [ + "thickness_mm", + "youngs_modulus_gpa", + "tip_force_n", + "max_stress_mpa", + "mode_1_frequency_hz", + ] + + dataframe[correlation_columns].corr().to_csv( + validation_directory / "stochastic_correlation.csv" + ) + + save_histogram( + dataframe["max_stress_mpa"], + x_label="Maximum axial stress [MPa]", + title="Monte Carlo Stress Distribution", + path=(figure_directory / "stress_histogram.png"), + ) + + save_histogram( + dataframe["mode_1_frequency_hz"], + x_label="Mode-1 natural frequency [Hz]", + title="Monte Carlo Frequency Distribution", + path=(figure_directory / "frequency_histogram.png"), + ) + + save_correlation_matrix( + dataframe, + figure_directory / "stochastic_correlation_matrix.png", + ) + + save_sensitivity_plot( + result.stress_sensitivity, + title="Stress Sensitivity Ranking", + path=(figure_directory / "stress_sensitivity_ranking.png"), + ) + + save_sensitivity_plot( + result.frequency_sensitivity, + title="Mode-1 Frequency Sensitivity Ranking", + path=(figure_directory / "frequency_sensitivity_ranking.png"), + ) + + print() + print("BodySimPy Stochastic Engineering Study") + print("=" * 60) + + print() + print(f"Monte Carlo samples: {len(result.samples)}") + + print() + print("Maximum stress") + print("-" * 40) + print(f"Mean: {result.stress_summary.mean / 1e6:.4f} MPa") + print(f"Std. dev.: {result.stress_summary.standard_deviation / 1e6:.4f} MPa") + print(f"5th pct.: {result.stress_summary.percentile_5 / 1e6:.4f} MPa") + print(f"95th pct.: {result.stress_summary.percentile_95 / 1e6:.4f} MPa") + print(f"CoV: {result.stress_summary.coefficient_of_variation_percent:.3f} %") + print(f"P(stress > threshold): {result.stress_exceedance_probability_percent:.3f} %") + + print() + print("Mode-1 frequency") + print("-" * 40) + print(f"Mean: {result.frequency_summary.mean:.4f} Hz") + print(f"Std. dev.: {result.frequency_summary.standard_deviation:.4f} Hz") + print(f"5th pct.: {result.frequency_summary.percentile_5:.4f} Hz") + print(f"95th pct.: {result.frequency_summary.percentile_95:.4f} Hz") + print(f"CoV: {result.frequency_summary.coefficient_of_variation_percent:.3f} %") + + print() + print("Stress sensitivity") + print("-" * 40) + + for rank, item in enumerate( + result.stress_sensitivity, + start=1, + ): + print(f"{rank}. {item.parameter:<18} {item.coefficient:+.4f}") + + print() + print("Frequency sensitivity") + print("-" * 40) + + for rank, item in enumerate( + result.frequency_sensitivity, + start=1, + ): + print(f"{rank}. {item.parameter:<18} {item.coefficient:+.4f}") + + +if __name__ == "__main__": + main() diff --git a/src/bodysimpy/analysis/stochastic.py b/src/bodysimpy/analysis/stochastic.py new file mode 100644 index 0000000..4267e67 --- /dev/null +++ b/src/bodysimpy/analysis/stochastic.py @@ -0,0 +1,367 @@ +from __future__ import annotations + +from dataclasses import dataclass, replace + +import numpy as np +from numpy.typing import NDArray + +from bodysimpy.config.models import StochasticConfig +from bodysimpy.domain.structural_model import StructuralModel +from bodysimpy.solvers.calculix import CalculiXSolver + + +@dataclass(frozen=True, slots=True) +class StochasticInput: + """One randomized Monte Carlo input sample.""" + + sample_index: int + thickness_m: float + youngs_modulus_pa: float + tip_force_n: float + + +@dataclass(frozen=True, slots=True) +class DistributionSummary: + """Summary statistics for a sampled distribution.""" + + mean: float + standard_deviation: float + percentile_5: float + percentile_95: float + + +@dataclass(frozen=True, slots=True) +class SensitivityCoefficient: + """Standardized linear sensitivity coefficient.""" + + parameter: str + coefficient: float + + +@dataclass(frozen=True, slots=True) +class StochasticSample: + """Inputs and FEA outputs for one Monte Carlo realization.""" + + sample_index: int + thickness_m: float + youngs_modulus_pa: float + tip_force_n: float + max_stress_pa: float + mode_1_frequency_hz: float + + +@dataclass(frozen=True, slots=True) +class StochasticStudyResult: + """Aggregated result of a Monte Carlo FEA study.""" + + samples: tuple[StochasticSample, ...] + stress_summary: DistributionSummary + frequency_summary: DistributionSummary + stress_exceedance_probability_percent: float + stress_sensitivity: tuple[SensitivityCoefficient, ...] + frequency_sensitivity: tuple[SensitivityCoefficient, ...] + + +def _sample_positive_normal( + rng: np.random.Generator, + *, + mean: float, + standard_deviation: float, +) -> float: + """Draw from a normal distribution while enforcing positivity.""" + + while True: + value = float( + rng.normal( + loc=mean, + scale=standard_deviation, + ) + ) + + if value > 0.0: + return value + + +def generate_stochastic_inputs( + config: StochasticConfig, + *, + sample_count: int | None = None, +) -> tuple[StochasticInput, ...]: + """Generate reproducible randomized engineering inputs.""" + + count = config.samples if sample_count is None else sample_count + + if count <= 0: + raise ValueError("Stochastic sample count must be positive.") + + rng = np.random.default_rng(config.seed) + + samples: list[StochasticInput] = [] + + for sample_index in range( + 1, + count + 1, + ): + thickness_m = _sample_positive_normal( + rng, + mean=config.thickness_m.mean, + standard_deviation=(config.thickness_m.standard_deviation), + ) + + youngs_modulus_pa = _sample_positive_normal( + rng, + mean=config.youngs_modulus_pa.mean, + standard_deviation=(config.youngs_modulus_pa.standard_deviation), + ) + + tip_force_n = _sample_positive_normal( + rng, + mean=config.tip_force_n.mean, + standard_deviation=(config.tip_force_n.standard_deviation), + ) + + samples.append( + StochasticInput( + sample_index=sample_index, + thickness_m=thickness_m, + youngs_modulus_pa=youngs_modulus_pa, + tip_force_n=tip_force_n, + ) + ) + + return tuple(samples) + + +def summarize_distribution( + values: NDArray[np.float64], +) -> DistributionSummary: + """Calculate summary statistics for a sampled distribution.""" + + if values.ndim != 1: + raise ValueError("Distribution values must be one-dimensional.") + + if values.size == 0: + raise ValueError("Distribution values must not be empty.") + + if values.size > 1: + standard_deviation = float( + np.std( + values, + ddof=1, + ) + ) + else: + standard_deviation = 0.0 + + return DistributionSummary( + mean=float(np.mean(values)), + standard_deviation=standard_deviation, + percentile_5=float( + np.percentile( + values, + 5, + ) + ), + percentile_95=float( + np.percentile( + values, + 95, + ) + ), + ) + + +def calculate_sensitivity_ranking( + inputs: NDArray[np.float64], + output: NDArray[np.float64], + *, + parameter_names: tuple[str, ...], +) -> tuple[SensitivityCoefficient, ...]: + """Calculate standardized linear sensitivity coefficients.""" + + if inputs.ndim != 2: + raise ValueError("Sensitivity inputs must be a two-dimensional array.") + + if output.ndim != 1: + raise ValueError("Sensitivity output must be one-dimensional.") + + if inputs.shape[0] != output.shape[0]: + raise ValueError("Input and output sample counts must match.") + + if inputs.shape[1] != len(parameter_names): + raise ValueError("Parameter-name count must match input columns.") + + if inputs.shape[0] < 2: + raise ValueError("At least two samples are required for sensitivity analysis.") + + input_standard_deviation = np.std( + inputs, + axis=0, + ddof=1, + ) + + output_standard_deviation = float( + np.std( + output, + ddof=1, + ) + ) + + if np.any(input_standard_deviation == 0.0): + raise ValueError("Sensitivity inputs must vary.") + + if output_standard_deviation == 0.0: + raise ValueError("Sensitivity output must vary.") + + standardized_inputs = ( + inputs + - np.mean( + inputs, + axis=0, + ) + ) / input_standard_deviation + + standardized_output = (output - np.mean(output)) / output_standard_deviation + + coefficients, _, _, _ = np.linalg.lstsq( + standardized_inputs, + standardized_output, + rcond=None, + ) + + ranking = [ + SensitivityCoefficient( + parameter=name, + coefficient=float(coefficient), + ) + for name, coefficient in zip( + parameter_names, + coefficients, + strict=True, + ) + ] + + ranking.sort( + key=lambda item: abs(item.coefficient), + reverse=True, + ) + + return tuple(ranking) + + +def run_stochastic_study( + model: StructuralModel, + config: StochasticConfig, + *, + sample_count: int | None = None, +) -> StochasticStudyResult: + """Run Monte Carlo static and mode-1 FEA analyses.""" + + inputs = generate_stochastic_inputs( + config, + sample_count=sample_count, + ) + + solver = CalculiXSolver() + + samples: list[StochasticSample] = [] + + total = len(inputs) + + for input_sample in inputs: + section = replace( + model.section, + thickness_m=(input_sample.thickness_m), + ) + + material = replace( + model.material, + youngs_modulus_pa=(input_sample.youngs_modulus_pa), + ) + + sample_model = replace( + model, + name=(f"{model.name}_mc_{input_sample.sample_index:04d}"), + section=section, + material=material, + tip_force_n=(input_sample.tip_force_n), + ) + + static_result = solver.run(sample_model) + + modal_result = solver.run_modal( + sample_model, + modes=1, + ) + + if static_result.max_axial_stress_pa is None: + raise ValueError("Static FEA returned no axial stress.") + + samples.append( + StochasticSample( + sample_index=(input_sample.sample_index), + thickness_m=(input_sample.thickness_m), + youngs_modulus_pa=(input_sample.youngs_modulus_pa), + tip_force_n=(input_sample.tip_force_n), + max_stress_pa=(static_result.max_axial_stress_pa), + mode_1_frequency_hz=(modal_result.natural_frequencies_hz[0]), + ) + ) + + if ( + input_sample.sample_index == 1 + or input_sample.sample_index % 25 == 0 + or input_sample.sample_index == total + ): + print(f"Monte Carlo: {input_sample.sample_index}/{total}") + + stress_values = np.array( + [sample.max_stress_pa for sample in samples], + dtype=float, + ) + + frequency_values = np.array( + [sample.mode_1_frequency_hz for sample in samples], + dtype=float, + ) + + input_matrix = np.array( + [ + [ + sample.thickness_m, + sample.youngs_modulus_pa, + sample.tip_force_n, + ] + for sample in samples + ], + dtype=float, + ) + + exceedance_probability = float(np.mean(stress_values > config.stress_threshold_pa) * 100.0) + + parameter_names = ( + "thickness", + "youngs_modulus", + "tip_force", + ) + + return StochasticStudyResult( + samples=tuple(samples), + stress_summary=summarize_distribution(stress_values), + frequency_summary=summarize_distribution(frequency_values), + stress_exceedance_probability_percent=(exceedance_probability), + stress_sensitivity=( + calculate_sensitivity_ranking( + input_matrix, + stress_values, + parameter_names=parameter_names, + ) + ), + frequency_sensitivity=( + calculate_sensitivity_ranking( + input_matrix, + frequency_values, + parameter_names=parameter_names, + ) + ), + ) diff --git a/src/bodysimpy/config/models.py b/src/bodysimpy/config/models.py index 0a520ad..3406329 100644 --- a/src/bodysimpy/config/models.py +++ b/src/bodysimpy/config/models.py @@ -54,6 +54,20 @@ class AnalysisConfig(StrictModel): modal: ModalConfig +class NormalDistributionConfig(StrictModel): + mean: float + standard_deviation: float = Field(gt=0.0) + + +class StochasticConfig(StrictModel): + samples: int = Field(gt=0) + seed: int + stress_threshold_pa: float = Field(gt=0.0) + thickness_m: NormalDistributionConfig + youngs_modulus_pa: NormalDistributionConfig + tip_force_n: NormalDistributionConfig + + class SimulationConfig(StrictModel): project: ProjectConfig geometry: GeometryConfig @@ -61,3 +75,4 @@ class SimulationConfig(StrictModel): loading: LoadingConfig analysis: AnalysisConfig mesh: MeshConfig + stochastic: StochasticConfig | None = None diff --git a/tests/integration/test_stochastic_study.py b/tests/integration/test_stochastic_study.py new file mode 100644 index 0000000..f63b3a6 --- /dev/null +++ b/tests/integration/test_stochastic_study.py @@ -0,0 +1,38 @@ +import shutil + +import pytest + +from bodysimpy.analysis.stochastic import ( + run_stochastic_study, +) +from bodysimpy.config.loader import load_config +from bodysimpy.modeling.crossmember import ( + build_crossmember_model, +) + + +@pytest.mark.skipif( + shutil.which("ccx") is None, + reason="CalculiX is not installed.", +) +def test_stochastic_study_runs_real_solver() -> None: + config = load_config("configs/stochastic_crossmember.yaml") + + assert config.stochastic is not None + + model = build_crossmember_model(config) + + result = run_stochastic_study( + model, + config.stochastic, + sample_count=3, + ) + + assert len(result.samples) == 3 + + for sample in result.samples: + assert sample.max_stress_pa > 0.0 + assert sample.mode_1_frequency_hz > 0.0 + + assert result.stress_summary.mean > 0.0 + assert result.frequency_summary.mean > 0.0 diff --git a/tests/unit/test_config_loader.py b/tests/unit/test_config_loader.py index cce4a08..f725e47 100644 --- a/tests/unit/test_config_loader.py +++ b/tests/unit/test_config_loader.py @@ -1,5 +1,7 @@ from pathlib import Path +import pytest + from bodysimpy.config.loader import load_config @@ -18,3 +20,14 @@ def test_load_baseline_configuration() -> None: assert config.analysis.static is True assert config.analysis.modal.modes == 10 assert config.mesh.elements == 20 + + +def test_load_stochastic_configuration() -> None: + config = load_config("configs/stochastic_crossmember.yaml") + + assert config.stochastic is not None + assert config.stochastic.samples == 500 + assert config.stochastic.seed == 42 + assert config.stochastic.thickness_m.mean == pytest.approx(0.0015) + assert config.stochastic.thickness_m.standard_deviation == pytest.approx(0.00005) + assert config.stochastic.youngs_modulus_pa.mean == pytest.approx(210e9) diff --git a/tests/unit/test_stochastic.py b/tests/unit/test_stochastic.py new file mode 100644 index 0000000..0ae2e8e --- /dev/null +++ b/tests/unit/test_stochastic.py @@ -0,0 +1,135 @@ +import numpy as np +import pytest + +from bodysimpy.analysis.stochastic import ( + calculate_sensitivity_ranking, + generate_stochastic_inputs, + summarize_distribution, +) +from bodysimpy.config.models import StochasticConfig + + +def build_stochastic_config() -> StochasticConfig: + return StochasticConfig.model_validate( + { + "samples": 5, + "seed": 42, + "stress_threshold_pa": 350e6, + "thickness_m": { + "mean": 0.0015, + "standard_deviation": 0.00005, + }, + "youngs_modulus_pa": { + "mean": 210e9, + "standard_deviation": 5e9, + }, + "tip_force_n": { + "mean": 1000.0, + "standard_deviation": 80.0, + }, + } + ) + + +def test_distribution_summary() -> None: + values = np.array( + [ + 10.0, + 20.0, + 30.0, + 40.0, + 50.0, + ], + dtype=float, + ) + + summary = summarize_distribution(values) + + assert summary.mean == pytest.approx(30.0) + + assert summary.standard_deviation > 0.0 + + assert summary.percentile_5 < summary.mean + + assert summary.percentile_95 > summary.mean + + +def test_stochastic_inputs_are_reproducible() -> None: + config = build_stochastic_config() + + first = generate_stochastic_inputs(config) + + second = generate_stochastic_inputs(config) + + assert first == second + assert len(first) == 5 + + +def test_stochastic_inputs_are_physically_positive() -> None: + inputs = generate_stochastic_inputs(build_stochastic_config()) + + for sample in inputs: + assert sample.thickness_m > 0.0 + + assert sample.youngs_modulus_pa > 0.0 + + assert sample.tip_force_n > 0.0 + + +def test_sample_count_override() -> None: + inputs = generate_stochastic_inputs( + build_stochastic_config(), + sample_count=3, + ) + + assert len(inputs) == 3 + + assert [sample.sample_index for sample in inputs] == [ + 1, + 2, + 3, + ] + + +def test_sensitivity_ranking() -> None: + inputs = np.array( + [ + [1.0, 10.0, 100.0], + [2.0, 8.0, 110.0], + [3.0, 6.0, 90.0], + [4.0, 4.0, 120.0], + [5.0, 2.0, 80.0], + ], + dtype=float, + ) + + output = np.array( + [ + 2.0, + 4.0, + 6.0, + 8.0, + 10.0, + ], + dtype=float, + ) + + ranking = calculate_sensitivity_ranking( + inputs, + output, + parameter_names=( + "parameter_a", + "parameter_b", + "parameter_c", + ), + ) + + assert len(ranking) == 3 + + assert {item.parameter for item in ranking} == { + "parameter_a", + "parameter_b", + "parameter_c", + } + + assert abs(ranking[0].coefficient) >= abs(ranking[1].coefficient) >= abs(ranking[2].coefficient) From 0e2314e5355d8300ba2659e32fed0785c229f3e8 Mon Sep 17 00:00:00 2001 From: Savio Cardoso Date: Sat, 15 Aug 2026 04:46:15 +0200 Subject: [PATCH 2/2] fix: let mypy follow CI Python version --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 90eb451..e514ca7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,5 @@ line-length = 100 target-version = "py311" [tool.mypy] -python_version = "3.11" strict = true mypy_path = "src" \ No newline at end of file