From 9bdfe9de4a291d6e687d01022ff9698cf927723c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Tue, 16 Nov 2021 16:21:36 +0100 Subject: [PATCH 1/6] bathe cantilever images --- .../data/deformed_configuration.png | Bin 0 -> 14537 bytes .../data/displacement_graph.png | Bin 0 -> 35358 bytes .../data/initial_configuration.png | Bin 0 -> 23844 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/deformed_configuration.png create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/displacement_graph.png create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/initial_configuration.png diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/deformed_configuration.png b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/deformed_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..572016d732f9127c4361e43c7111cfa3bd20b052 GIT binary patch literal 14537 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 L%VbFzXW1(9wM1j$Wz2_hXzcXxMh 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%0A6I_jN*%l(e?ZN?<= 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 literal 0 HcmV?d00001 diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/initial_configuration.png b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/data/initial_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..44cf9f0c65cd8cb0497489ebd28a2a1793fc29e3 GIT binary patch literal 23844 zcmeFZXH-*L+cg|i^aui?(ghS$1O((zrK9u+XsCv!ASFO3(mRT1q^k6eLWG1agkCHG z6se(yCP6v@={4}Kc<%E&@9%GnZ+zn$RQfbx`q_07TI>EK-Lue34S#8!|Ld=m6UUya-1fivbfrFE<-Fbt z?T>NockMbAn3~q*S48dKo|gFD9x?!TO{x+)1{MO*nS(1F2R}dkeHuIh1ae(B`2_f( zg7|WU`m4_QYc$};z0{kh!H-bFb8YIs#$UTj{c^VCBkGev(Et7Ff4AwsA@SeL`F~O+ z7T1i`%T9)}_74rQvsneYyH`B6&-Ak^0|kaCpP&t?NWE}P1lpCU7|8;GbTjAQJ(k^n zH&dZzSY>`bFDpjerseVC{Tz+vM=!Y(i)bLBTl&c-RMPxOuLMX$r;_O1_1V_$cXy_$ zr(%SQL9OC`DlG#c-o+YXPih}O#Ta#mNwK0D+{^Oh_gE+_o*=xuHvGA8(h2{By?`b#TXmx|vibR)*1W+awF?5oA@z z0QgobKlql>nAf1i>X1#W?cy7L&6e?il?>`SW3;K?(w476-xSn7UKM+5CfS(*tiv3v z1Fp_l9W)g!V|To2e{+#dlQ+oI9kh+PZ=n2EL{xZ;w5LdvXN+u(xGKw6(Lhu(=KiyZ z?$Ze-Ept6N<(t>ioX;^ZFbvlkXDJ0O&4I?m{rcwVP*$Ir6noZ!t56oG)oz@xK2RL*B;T@EH4mD7zOxa_ z8{OL#z-N{f)a=o01oFJ-uQ-UqAl68$HE=s?cs)7EPQ6KKERtG|%>dr&Ud|QDjdb;Y zR3?=BxbGW{``#Na{8g(lIeAd*h?$_+d0(d0!qCmPM`m_nUyIiG1saD}Y-L-zw}+gG zF4rHu(W!(eAMzQ&8G(B8N$ASmV-FK_p58~Y5ES+Ac6R0o<*q9?sc*@8Pi)%!@-MKR z1y$Rq;D;GYGbiX2*xP$6D~Cek>=hoY*No5*L|(_q<`8Fj-;{pM{lLl0rCrzArF2Dr zt&w-A9Z4JMysfnBKYH-9;6ZkLZufOst(Pmc%TJ7Wsp$D(|5@-vSeQfnmz*?Se=qP% zG-Ds|noLBjAq&id3cE`klT$#)FeM}&B9gsR!zvz3yd?eJE^$hh2KD+TwQbx@5uq^j zo&*&WV3AKcWoTvae?-CmG1lr8x?;9>9HKIN2|Q*vS}6BbN!O2Kx#yWU-r&l>uNN+1 zZXbh$?ooFk{Nffa1aFpb1fzw~y*@*|V5cg$Al)KtSD%aPKi34!^#7IVAY0cW*bi@P z#&W8|cd^JCj2{(HYH#lQ_J%ot?4?_&G!-*m{*gNAw|m?uH6 zst}`o7(ZI$G1a)g9Q%@2NqN9@D#dpyx^Z=>+^Mujy?s~ND$(hyaO{h=5pIq&*G5Zo-$(0B!Fz1FSI>iI7X<^Ea4sS_PAFC* zmWR7bVf`*ECj*!Cjmps{KW^L=%Bi_Drymkgy?~`H8-Uy7n3RYoXxezLC`r_MIic$E zO5(=K4Vp4?oCZ;G`Z4U1*X402H!%6Zsp-T5V~7j(Ybk#_2RY+Xv}tR9I8u%LiM^9!}|lb}|PsN+n5KHf|K6g~mz5f94<+nCFVwM)=UqBwnB3N&N;#rXSn60!G4+EO(C2W$du)i9&vVPPh|nIh2LA$lJcmzCuy(OXj%GDwSJ2@p&o&2+Z}t+$6o7=?r;58E|BQrKl3QMef4kXE$b*HR})eDom^0obP53O&`dB zxZHRpXrN&j!)1N2^FnsLJ+tiSu$dk_-FXnno_~WP3zFdnSled){TyQl`J))ql)k>V z$39HO#wIKH-7c(|8JZg`5f7-}94Pf2tkY22US>#W?M{{vd;jh-sq||E8-TF_0A$ad z05uT%+NFuI<(xqrgmI0uInOp>zvQ-Nrm@CGr?6Hj{w?@|arykj9{yT$LPAxp8)EWH zxcf{>^y;VMHa1}loH-#!h@PS3+i2$1Xje)6r>9{bS!*pD_)ap3S^{pvODFlny;khV zZk{Gx42<5)(blX7f-yFGp)E0c1C_=bDCH77*U!FAC|oiJ{bnk4#W|~JZ|hil^k4E1`06ClRqc zigHdi(0BLgVhQ}=+9DX-S5R%yKj%{GEIWnX5ZvG1&OI9Pb~|X54*RFiz(?Lb%jS^a zJN*3;<+pAbLrc$TL#!xUZQ+VeSifVlxA6k(shVv=@WFx!GruOQ820kRV*nSQyGGOZ zw68YN+Zq~+G01BH^Fh;XkJpKsPT|^^X!5v#RhQ5k$K$zg7K>T;o$HL3>W4XpSFr=; zXE%sW%txD6^f|5*W#SI^Y|gOXl=k1wABac?B z1PU}9nUKy!$o6EE^3iTb8&-Tg(8IYs`AudXzCDE@VG{)k$mP9FGydTH5fqQ&+MwZS zknE-jpc0V{9c`ffnwV%2ux{CF0Y(PI!6PFI}(hU-7%nMqE(5Q z3=wd({}cdeR~xfL+i>lE>B{wDZm#oISyiSighzG7aSVjwBS zLm~0PHH3}RgDz!W@sMD;$nhxqEN(6~i#~SBeqI~;`zk4tA;E*eeW{F}lp8m2!}5&* z2JE#HnAHmT{--`%4VPJVk0HDBiL5z0|V1mGQc*TP(mb$A` zwMdJvUrl%>jWV#@#%fosdhHTV~VRViT*FNUO#D zh!MttIW}KfLg6=KGA+^!^jz_AvT?G%rrTyVS?d)!H=#_DX-eS;p*Zn~GH?*skDv66 zEvn*SrjGOcL4djdxqjo(ITd&s4;$iI1Mm(U_hjq&kT< zLN7uf0JIz5^O8SWxR~pYu*q4knR}1Y59BL>FO2vYU-Y zkO40g1NJ}h4pxOz(cg2RCGmDn-?@tEL^Hcb=R6Hdns`=6JzTp?YY+EOyoWd6o0OoI z$E>2iGPy>HRDS!4HuOunjh_6fiAOPijjRIj${r-R>5IPFEh--Pw-Q<4quzvNp21ugY~|3A|Hs*3Hv%l30(|)OKkP zU61u1di1i8qQS*gm^||ZZJ!lAWSkI*a#v|!Bj_jLV+~-lE2oc zD>iP!56+NuO)ou}7TWJ7NUIAlF7KBs*`i=#*`OZz7Q{yufu_>JE>-*TfoQ!-3u zq}rW%Ha!j$PN4+pksGAi#fUUvyROUzhjEyHu9%VIS9HIzSyAN173hU(raZN=H-bzk_;ZQ^n5z*YiQqr&m zXBCa+khn&lgcWh`2S_=z^6K4Vauwi$x3q9b=RdUsVH38M2jXROkl%Y$+?tSk;5*k% z4MD&z28Q~SSl-`F?<~10D5>`uMwbjOBxtD91t$U2P2Kj_1ev&buJ3&yEBHNLXHV&n zUDs!4RSiI~wrTk_NpLEe9vrlgAz2+o0KBeTECm3HItz4u<@tuKF0wk88b;Hn<3btv zjV_}zh6pwbeV8)J)<{~|39suxwoiI>{eGCyB?)CMyN~^xC=Otk*@7k1^~KtTN7dC3?( z6(e6Pdn}*&mMuPJD8H6u6GeNNxpIs9d-7Z|I*dR~P(+!M2~lWIMO-KPeKXDR2sR_h zv8&4+ZMwKgSW_@1LY^kkdF|Kt)%C2SdRcg_p(^D~Y+&wxE;^=VbUa6Rg4=lZ(*F)d z$MO@rpF^MCcMK~Cv|)4DWPe20ObwM(sZ=QCL=)VQ}sGt!Kb-9T%w?Fi4 zZPj$CpSj2`j)da{^VHJaH7s%Q@EMpU`E9MEfNm<73@QNGEy^m2GqKO`GH%aOR@R8- zWO>Q$ZR+mrK2ND3MF=PQ@xGSdUn;kmX-`RLf}U)_=msEY6Nd9HWC5oFCbvFSZwi0Sb7%iM z?3DfD2W-|hWD^WEh4Bl^n)CDp7cPNU>8Yms_1%R_7G6eyAiX_s3CZx&eDN+i5sDz_hWLt!2J#D_gmn#nZ zN#;+qqd-|T6PwR#!l8S~4EM0NYeC^E_j0s?BAqMOPc1wkPLoNI{C4fAwh1pk zFT$9QCMZ7mcP}+0xy36gwyI`wRq~|GIVBysttSa>mH2)}dKb8$`wx*S!||jxd4owV zD^uyORW#!Rj2!D}FByF}rxmBV(!wL(Gnt&r+kR@qBnz8Us6(s|btDb|?G zKxhQRSoy6>BhKZzOH~uW!z;>^6Ab~|%gtku&8xI`5bWEmW@^q&LHGeP&85;ic;3U; zCPL`Msy3_H;h)PddD@QWO@57JGl@T)xVJ^-S}dxv1f6rGL+B+yk44E!LH=7|;Y|nA zVh^e-{w{KxCr<>dGz{PSov9emVr+&qGJjPK7$Y|FhWEG2FE7|Xz3R92U4Sh}r0VlY zE_}fFdZsf&HwWhKGik#yae*M!kT0hN9)IPClZ0#nRm);So$|KQ)kPTb+B@~#8^BHU z-v`_T4~Fh^=&02Zr~42GqAygnvL+om&yl|fR2GqQ~(^j z-leP@yj?e8JIkoJ(Y-U&s#KYu!4O(SZVbSCbgAd=_QzdQzvyMCCd9{i^Aba)s0+5N zUb)c;!%8w7i_hh?yD~qKaf-+Hl35<_!<`rGZGMUj2Ese_G;;Ef&Q-jV+^LW=mqNbF zGWY5?8otyD5Z<6=fC$#uksg#e6LWWURz9>B-D^F0as^Q26wmaXG<|mA%;tRD%2uMr zPjpkQa7cKoOe6DZT$b9wdKU9bUY<9>O0Tg=E{%SxiB*+_^d;O28A6W?j9_~-8Xv*5 zYuEMZqtWr)EY3 zoOn2MiROk`?*lEtiwhIV*0UMwH99t}ACSB2TUChOwPEP`3_3-4*Bs5G7{SI$STuPu zuyszi;NT?I!x97lP8}(SxU>zPBfjV<8p;yXKhP~Xdn4!&;%R4hO_i%)>~t=6-n*md z5oq@hoGiTljJeLUOx+r=Wp732?9c$N3-cXfZ1o9jYo&qibDQL-4V1}34_82f_dimD&NX9NqX7MpNrC)D;_MHy7I z=1NNxhrz|^rN55dYf7ywweY-ec*y3 zovHO*oirq?``UNEZ&apCc(k~VRi@~9OG}G$PPk-&7mT}-mY^OWE zjt>?}$G!oTDwR7g%M&fOMKc#DT78LxPT~t*jYQ?d=*Wj?1pYkE+{&F)$=9{=p!8CR zCG((#j|J-$bOc=;P-jH|#6(^~Hk*&pT%pzK-+Bh}JZRVhRs=hi?V+LK zPqKS+Ic!}1{#(QLtyEDsi#^Nj%juKvk9pqi=upQVlrvB4TjH07nOz$>z|;_|Kb;k| z6MKZpC&#!fZ~BaRnT+}`77fc$E=^S%E}VdLA2YnBDy%aio+tLJfJ_@e#tq7Uc`s5q z#228qJ?b}`LETI=;%xkvcNH`v9QJAlKTqA?-R93K@Z2Zg->u@q>1mFJgaGLl9pW^; zyVoZN+SC;?XR7zw35bIrDDLVAJ(#1ImMWpRZkaO;J&)COu9;38-u$(>;C2Qghx;(u z9lWm|#moCfV@2^O5P!HoE8-Tg%;El(VOLQw6g!YM;nAfS8T`6z#H9}7PYZ#^14TcS z@mjR1&S%&}BeOCEftMPj;vq|11<|otH+%;E6TH+HKrhQaj^JbjJrO@~2%0iqEvwY5 zYyF#-IvCwzpOu4)5EUp@TlT!C8-^b9{^9csD*p+{^BrcKa*`zvi4HlWYmm?cz+FS~ zkIxI&E|_>>ZVQt4Dm$c^yAe(T+-qk+JmQE#M2nc}6wGKEz&B{Mt&X(Qv>u^*|7eD0Jnz#4jq!(U*~gJzuMwg>Pf~iFBYCJ z>o;aLbKwBAZ{(?a&#uZ9%v$-2WQMHvlm5y+q>5^$?=PJ7THyg48Z+;X3chiF<|zTi z46>8$PkG-P+-;b--t!k;vR-s5pfEf-(Fp0)J?OAP|RfXN5_U^M~%eBm7 zwd#d9WB22p=T=5$xgBdj13ID^r(nqMm$F zwdrpg=)%~dfjvGd#lxByH7sts&`!Fc5(JP

ZbkjL9#5uv2q!u66{>oRuni+Ap>V$;GV?_)}#kJVA=v{i|^%-@A zEmM3ShB<4`aGb}ae?zJiOCfh^PVIXO-uHv=MFbm5-96Y1hgJG_goU>P>|(qr<8=K zJ6Asf6tY_2FMej9i3}_Ku-bPG>{esn$wdlUI+-OL-x%(d7=pLmhq=I$fUq#LGzba2 z$9fz68zY5&G>U;?0=7|I!P2A`Tzr)yq9op<>n{1-do9?FvaSp+pV1>V_xKT;ypE}= z*>u>ydy|oG%!?ktNvg<)YmU8iJ+CM|j!a?E{EWN0j*W*nq+eMAHvGn^ip0keAS!0 zUv-%a=l`=@s6Cwn0Cx}_h#104<%@th2Vg>@u*S~)e8n3EZ>7tujk|X4@r&aPW(om= zyP( zv*4o^CLzk>4V|3SYDsOD6*m3g32(@UYazDoORqcZ7(ZZv+0(_Q0-D2mv>G+uz~3p$ zPhtu|4LO&iPVsy@j#gXbDw@tbrP)eT&nN5_CJ^8*EJi2KXLO`L~x$7 z2=c-=Y-?;Ru&nMa?*3j@+>YA$B@oFa1a>NS;%I_d)Ndl!JNSV< z=n~5Mn__h+805+t8_uuTuvAwA+isb2Q65{rQ>#8S}( zi{UBzJc~gXDjrwN&{Ysi80DY5zvxKZ^B(hJmKi_1P<}u7SPLYKMxn^^}cqP2;yI^5y&dqh;~)G zVR{ybM)=p4n;A;a#O1Z4kc>Nl?tN-|rUilRl=Twj7}Wy$=%-Zo2*gxXP(f#8GjAbB za$9Q=zHdTllL?1bO=O;#JsH$z$z)1)qFLN?J( zt7m{0J$E6e@1yj7$t-?jJtl&KjhmO=%1_$g#r@tH+4;49^L?OYAO?LF14mboE17*p znW-L*lKQtM*O0XcJiTtq&z&A&-G-ZwU}f-+Y}e|6mvAAr?FuCHszb3?QRN<3Tx);D zCiz1epJ?5UEKFZhh>{5+jDb&24paT^{k+p$eel-EB1xdBvGSwNgpSma>gujO_c?(O zQa0GQMrwRH8WzN|Mg{nmeICY8FBs&=d5-&umQrEBYzBYlErIuDRrQYF?_R|={w|tm z=?`frk#!VeN{*3r%iHN0RLaacmM;OoO}2p(JSg6dca#0iN^N3hU2&s}yFiBOUYqaa z7a(@<^Y~x4PO{*e>4@A}If{{8EF@i%YhVi6d%4&h$Pu6^rZ z#_Ue8xKO=3IoW{2oDe_F#nc6U>`Z5ez0l?|_iCQ9x}-FUNOd|=V_2>l>s(>}p3_GQ%uxY4dfB+0T7`$f%duj}; z4#W(iw!T2)B3M*{s3nUVhVw#hO?1W1&vGY#x^=3uViDf^TZ@ZJSlCFwt0-`Kw8}L& z@L<)?mY}pxoh0zX_Or9+y^c1?yKL(>5%WiB>jnKkPiK!icpQhwohWjuVC%1}k{SPY z2dy2)H(()S4HUMmD(pf~Uy^G&Wxx8Deie%*)Mx3`Hp(^gu!s6U)Hmc^;O(|`&{JhQ z`R4O*#VOse_fWCu9YPXcag&mD5suG)Gs4uPgT&`G-K4jV7~PE(h*TU&blK*XiH!^n z)Nwy?PZ>aTmAamaJ%`Eo(>*q7JUm`pAKxtS6LCE`>)hjn?B!U%YF0Igh#Ka@u)K94 za|NphktM8}P#J3qZfeCOIPV`~90JU5lc25oZ33f$quC$`#cDr)54m z^uaU8{3>#r&EzWU)jNjv7k@H4HPs>WBZ$7g!K})6Yk57AKXeaxI3Pqr4krDhHmKrG+#^Xvw@>gB`n7wCjpd@gk&!01BF zVZc107^JU@5{ff+CT5$XtCYxy0fFv@odFZ&!3WbJO_reLoB}PY zyAX{l{wE|%PhoPBoV3QF5*v{4VaaH3~NKkg|uL3fX@E zf{Paf*C#$f1^CV4p~{f9=gsgxVNqEBLA8e}FoQx8#luZiBiS0yQY}Hvbf01SzlpyP zWk=!@H)8m%>0=JM;1N4#O#e4R!YU0IA~?DDW0d5qmq$?z z+c86kJYaj{SNi=Fr4)2RhunkWRyHae$3Uk;jHeoQMH3;LfL(`Vpgs?GA4)PrG;S7w zu@N;lCQkyzeEjH;bc`GUw6k`w{(H03V3woRfDdL<{3)9#jDc`g9X+4Y&Sw-;h%9MQ zYCX+J5XS`2z66*TR5Bj?r^RPe962ulD`Mli8Rx)QjwW6|_?-A-lnO=>yxEKtP!|_e zq(O({>_cC;j&95CH|d%c;tuu&hAptGC!hs@aQL%=Zkm3^&P?UK${PxQ%W^GDP?=$z z5#BWeg^m2X zYT_&604}^lA&yq7p;AG%mSMR2r!yGbukW?n|FInDO1}ci2C8AJO*qjZ=syelBt)q2 z>iFsWP(7NP3*_+b4RlUSglXxeEOhQ|%qGyOJMV&5f}HEXod5WAn7&0Z{U5-!CbEw! zrV$njQa|c5*e!NN#K1WFf>s(_t^8@M64#Xaosh&*-YdiP)v<{LPwn*HZn;ppGj3zQr`c-ryX;(MY{2oX$RF;OdQ@W$uFYMkMK znLh-l+5UN!AK!mEXXp5C4WmF!|8V!aPr!apEFYu7y*e}KzniI}MXj05l@x<(4i?9W z4IiHN3^uZ^5}?fc%Utfi-t69bM~DDn^=AR8_mLLRx?%uXsITnxb4?Y^`&{f9fI9_~ z-2sV>InDWPmQC}&d&vSH4DBQlp!_k)O4b{5s7GHT;%>VYOR&s!eX19!7InweJ;ii6iJ}Bg1wbh1%e>LnB zx1q$u@%NPgd8)6Z<|@M3IVu1Ez5q&lg^8y+&{3@c`4(5%v@@& zE(2d7Dc|qMd1tT3x&_p}1maa|llk7Z1o6wS?{Vcf^R~84jAph0Uu+`kkEClG-yh#@38gs> zDo~BM%V@RwWdpkS7=^WOK8Dw+2YB3pL}Rz;slO+6iiszkJ5RZ4W6u!{APZ|;W{xpw2uirjUKzv}IfxBKv<*f_LJLMv=&l6d$p-X2;kz$<#P;9jh(j!)J%d}F@ z^(fgU20WB~R*?6=K;pC9FeW8gU>PkZ=@f5uN#hzaGPk0ae`3SRdyAdsYn-wUA1uPL zN;(OeU-&}-GyA^QC)Ss;xv>Jne;3dMHtJ^eL?9q~+F3-}hk7sen^=h$Gp_)hCbFMI zwR%|hH|Aav3^&7s-=I~*VDk$lr}Bl27^DVklfL9%ICgcaHMT3W0H$u}r39lZPCcou z?dS@|(D{`xAb9F~-AHAhj z&wV1nSYU%~J|~=tIaXgPtL0|t17zr4_9Zrh#vul%)!UZ(%Az7S5Z#_w5=O^JmfTzh z#%3e!qHm##U>_l{)? zf-GDH^0VR7^4!lvePxPgnT`i<8`&d$h6DZE){kdi>W9sPxUtkqG0>X7vadwo=+vCZ*ZlX#I=W$%qsMl7aEAH$cpVdsaYEt zE5By3hJrM&K@IX2F*qp4dWB%2k|7&N z@x@dLn}t}Wh+8t5=fz!(H-=Z};e!yOmedU@cgS-VNP5mSws@C1_4>7lN*Tx#Z;#_d z+y(ajlRD71FSK~wKG8stvyM#I%cdVI#zx!5lWxq9OLQqn1c;W`jjfH2a02r*XKKca z$6)5A=D)*<(umv@My!#Ji52(i533JCLnz6{l{>r_hnQRGzloJ(Bwst$Y zlLLsniY=ZiWsfl=hs~}d+xv^Dmrg(I$DGs_G?Y8|jWToXxP#_$joR7m;-6{%UUHl& zCWU$zdGB~*Gciiu!?sE4NJq@yd3QI@k<*4XA!MkOA=dxr)4t`5V3a|6e)kll`xf;p zNbRpxy|2lj-WJQk17&0&*}No55*4($9ZllISmvp z`Dr`)#5gT?aX{W);EcY=@kV2DbB=j6Z9+|9_ZNxf?lW*FpgdKWl{D@-mPPmi(bb}m z)uhN&$Ba1mg3q?_oAl25Ooy;>kyE+kbVX@l&3&<^gC}JXrmhW}5&a_}(t=T`3Vu&2 zUG&IVX*C9r8`?NJL5cxYhq-~~rCg_su!FM*%&zsToddFv1>kgasB*j$|Ki09Yg{!^ zCpF2^A7h%Zez@JF%&74D)3pB*knKQhS`iDpjghDB{UMsQq+-kld`1dW+v z71p%M{PRFrt27nar9K+5bgsCL(8R^u5TIGu6pa7MG&^e~K+~rT63_*hEi7Tpcadg; zx!Q3NMz`jXA2NO>&h{iG$aA?=KPro;1}`F_pX37k59%z&)T0$!=2D>RShK7GYoN4Q zMm%wgYA!3%jJYTXP9s%-QCn%_9g6ozHY7dBdwkEBA^o`yWV2u-1@YHkD)OE-#IR~U zqd8|>zwvM_hC{**Z=kPebP>&M=UADHIF;#3dgXh#J8Sdh`RQSP+%kIhO88^Jzp$22 z5l>uLi$Uo+fd0+kXbSLf&x`wS%sGR484g3k=-y(DwCBBeDRY|TUPf|B&)#47h_(`- z+(HZGZAcSJwzr#(6a)6PQ%gKQ(VV)mwRrp!A-B{4Oo+fyHZe&)-0x))<2!lgo4v5n z2x$SgNgkyy5jI}wL$B#&`H!BW4o1DxMG@8v-7dM4BM24mw?fX0@=K-8W9g39GQXts z>MJXnRk2a+JoCeM1tsOhb)|~lfZ~o7LH^}K7aF6qH)mJy0ruOo-^fG+tK_Ih_m)v< z=V$YbB+aJ?YT`8RkD*@j=&UnF#(6p7W3q&dSK`0qwgiY>r;=9EGT9c`v3G@)V+FVR zhi?o2eXkB@JC%1?C(z~{umUHbV$b_+~61t1meH~)Fk3vK5O6(2b#eSULb;=!$WC79-`mRUylzQMs4wbla-0NuLLxxvLRz=3@97G{g@&(fZCZ==67klMH;e+jH5-mLb${J zEbDxKsl%^tC~)M$6p8z@OY2#&zQ0wep9uf=6W7Ca5P4Pl!GDvwLSlBl>+>x)$TXc) z*{4bpU~ZQ(B>FF+1hS$`or=H+2By%8KjPcN1df}RNWk$5m?)C+QMv4cN5SV*_JP?E zaICM096G!d2jKZ+w%XOf*ZcWxzEwG${fAzL6sVEUpzkoglAX^*{Sb?--XfwNl%M%^ z(xIfb-spZI4dnXdD}l`X!14ej)ksze7LN*wz4dVy@&J^rX8{j zEEK@l81S*`eg;hf7DL!i9M=Pm1@Gcp9SxPYsHf~fLgQqg?QM3rY8=e#?}Af0#*~9A z$E%DpwSWKIkQoJWkaEbv+Rbi@- zB4I?kUu~WY8rbobzdpeFd%?%+@;QYl#QwqMk3U3*Ypyhmc>*U?hN_gLj!nO4gXF|C z`F-SgvEDf$nhFsr1v3Lv*YgTE3fdl%39w|we8g~8jH~d0h81Nu}%J*48F$G;WlF%6SHXC0v4&V;0{D+{U zGXslyiw#Z$Ru^r;=)0NRv)6DR(Aexq(c0@yY-T)y>6jPh2ql=u@y`a?3Kylp(9prU1BcG^t%EPXFCy>$d= zsuo1CN?I*7_DiqQ-WHZq*#G^N$*Pbdtf;57`%AsZK|56{p4gly;N~YtR<>l9b~Xht zfa((}@bTZBPKq>2C9ip_!wmXW3ON;MehAQN&t~zKZ4O{?6|$#Q(!f{+L0;?N*SUj^ z8zcOVV~NM6q#BcR9kU#T;kX3>TB+@ckdR7I8$zyjvykP8CKM1-qA!S%95||E*O^>CqP7njUUu_PmHQ(n`=z)1r-C39xd1 z|0TAa22Pb&vMnCGiFp5kn#sd-YuQ#g}W0+uwRCa== z7zT(ioUkIqxIke=&hR&mg)FNhT$!;=iW~64Chx2v`?Swx+XGH4CfPRHQ$s+p;fvPZ z2fV8EP_~zkA3*z_cHnPTgx0=2_6`^Xvt=WER{|!?3KK=hjmBfPA`Eo;t_2ukY5pz2 zdaVD>%qJ}F^f;ka^$B!k= zrFQ=PK*a@(2H^DsXJERT0q4^+v{+KV*2WG_%D7ilZ&ZT%aI6HdG`_DSGK^cGaWgFw zJpSMaqnmYMm7Qf#MVGXbZ31g|X20=e^s`T11KL^oV4L7n$lzeo_FNk`vLg1qt>Tr% zlkZm_*up$uugk$n+-A@7V z5uD8m@?`6a#Uf+#@GU1m-@1m#^LZ61t=|nUMw^XOS;~Q;HQJFiSBYbgZk=V2I^baG zBV)h#XQ>|uyM`HY%i0sAMg_0mUQj{nWF2Rez2r?q-{2$oj~an z%Ai_C*_8r)6%Kc%#Dn%WmIed50>fc}J0n5c9ER`Rqez3RazN$900h~m3 zyI%te+2k92?zz(vW5Houq2FA8Uje>_o>*2kGgKR3)FeW=AeU0)aHfU|dvij!^dwSX zuPdyk>n6q=3qGcfHtkiryZ-_wsMp_rymfcppKG`8>DQ^zxCypXD+*Uc8xetl^CtQ& z%2^mct88v9RoGiOYvC-|>P*_MI7H+QfW|6xj)c)100-D*L`i8A?OnLl)kQW-_Fmo) z1=ipxt}^cu%bpe25T~uf6srU4yCIX|roRD2)1)0|-F-Dl&D`_;YG*}J8c#C2$(YjR z0gD_TV@!qL*SZMd(gpNc#FytNNx1V=bg#n4gFtAzK8%{Mph1UTG1?AX_Fyh3;Q_9! zUz56Ayj}A1xxVf*?bR+_iaAGL!dKq~tVAyZN+>8~vp{{&-gA-Fgj{XonW3b}SVP$| z^$25l-zpZ&EFS2)8dJzQIJU22?ll5k&3s28-Ki_#;wqVFsy?7Nl>+YBf5B4wE=^j@#obseFf$!g>7?h*@}MMu1$^HJG~j_Ki)(9U^s<;38Z<>0o*=Ufw7b%^=Mb);U-EfSls%E!at6C ztM2(9P83oh5gi>3WNM}sVIWkKhl~@veYs@a9#$5N0O0w$3+nh1xHODeuTv(sl1P-C zfvEFJHx>3a7C?3x<*f;_aJeM29S>fMYyQsi@4_KP)}8g??mbpksJbJmTY9p-zDv@M z9VEI!Ihz)>bWa%d1o;6lyVbBD{QgkUW57=1z=GkN&%L9GpH;3`HTPfN+38{FYN<$Z zyB(dKX@OjwCTc=k?`=#oy@gOc)(}XMV_LLvtW}8n57P##SlMOGSbPUl zBi#Hcka415`JOwI%p*uPU}{urPg&pcgS1g4*Y0adUfsWUTFSVZaohFhCTez4e31(W zB)Wx`9$$qW%p~y+V-b;IbYvF@^v|!gA?L;wfjQxTJ@hJw2}rjn zvTSm}effJ@D}R@6G_S>~vpXxi_30^%gWWEw6%4pTP18?gKL8mEA%bItD=f-;|EHa6 z|A%tj;%~_w`f^{lnt^{n+>UvWfVBlQo<>50|s zqHR6fZ`*ad)=|KZp%bWXF`_4&P1VvuPC!K-8r`$~#!gR6O6!5JgQp>!748Pj?W(Dx z?A~D*I2g^!Jg__B)5JH914RG7>fp63%TUSUa{Berw_5VQHa(C^jAyt+L3QO8HQRfZ z$`7s46PYxdAEZn#4oJT|{li30A61*B%FZt^X}8S{r}oc76&NI1w!QMNT**6O$lq!? z^^);wZDTLaW|%TSC#6))9v+- z4Jp*^9ilGx@PT(J*^PIOzD#s^{U^>Q6(~;t(M{iw21y4p_3)9kD#JJ-$fDLOIgGRZ zAHE(ZYX_?i0;bmqA6(3mvqP<*%<@=Kyx?qGoi1@v(%2AME};4zDJc>ITE>*C2X_vh zD}uU2f38Dfz%S+oZ%q03|GF>OaO<8=Ie?NM7i*)sEC9Gjtzrd$^~is=LiL)PEVXv8`129aKY9?A1XLbybm-DJPD(74NaQ-8x+XTQ7zR5uZpr%4b6L z2j>BBdercz-hXzc6sNl`5a*I(6nul%=VS3;W>LSbi!=ZByfsqHUt7^wPcym6r(L&H z*)jf#Mc-jNSDmHdk(IPG)-w2^CaPGqzs=+dcXGvD5wWX0^(cPy=r~hexU@0ai+N^D z1ksSx<^;?Ix(!R?o=;b$(YXV$FRnqGy`;Ly3`WQdY?8&e8HFlO^gjtX>CqjVS&Pz6 z;nmKcj<&fgU_o&?1`;0{(!T5n+;JS|+-m?Q<7%6Q+6B{uJal+UGjXj9{E3u3 zqXga3`BFb@fzm6*C=|Xpr>r3uS*4p}P24&!w*t+_Feh>LeP3NrOYxrH4!M<@@8qhp zJy4xb#$B{N<-Z~=6v{3WIylpGCsJENj#cdVgV9Sj3N6x-QBFzrs{m?fz2(fqk1-$T zMzeSKK0p!17L^`Z@}@)$k@E;PcD4EVkbP%iA)78mY5kBL9mzgqm8MU<> zn3eW5dyX|Mx4s>n-Dsok7m^wqr+e?n*h-rq$M)>enV{jupFbCPdoV~4q?6~SuC!y> z2C}U+L3V7@F~{|MxP=l=J=|erx`=%QstTTi63vsE-a`D62#`2-hgZOERT|0`{?5!?afJ;g0qtciu zMQ1GeM6R#-)?cA7a-!PkpiZ+BeZ4R3IgVcIdK=Kt%@$+_g8)hUiX+kN-^83|RBJa{cnDQzCbE+Bj9^!RY` z?4XV9-H~P9)k5Q~YuN@eS)VNWk)L)=*c$jJhCyuZk2@G@*e;sNb{aUoZSPhV59#Camjw6Bk zP`UzyP3g~YbTv?GKXh*Y=~D&JPR_%1b(R|i;0k~r!#ZSAmr5b-36lH%J)1e~z!nFq zW)xyE?WFzU1ebz00sc2GDiQx^dns?tJ33cMxb|4k!o+qxDBL|HxAav01Sq!wMAtsn5+ zkdK4JfIf!x(|m#H5;-B)li_$J{&{Kh^E_N~U7@}TJefz$=MDy4lZ?LPpMm-<;6wVO zpc2nQ&4QCxwWXQ)I>V8{Rzj*2L4>s9#ekRbH=FqwMbgDo)NsUjkmQ@XVbmfX#R39p w+EsKbKj?^mur~i-sD{w@|6$|4k+r&U&w1_jd7Ce6L!HrezlY;(`_SM22dkNlaR2}S literal 0 HcmV?d00001 From b62a51b96462e2934786e65d09518aab7fafa685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Tue, 16 Nov 2021 16:22:10 +0100 Subject: [PATCH 2/6] bathe cantilever source files --- .../source/Bathe_cantilever.mdpa | 97 +++++++++++++ .../source/MainKratos.py | 68 ++++++++++ .../source/ProjectParameters.json | 128 ++++++++++++++++++ .../source/StructuralMaterials.json | 21 +++ 4 files changed, 314 insertions(+) create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/Bathe_cantilever.mdpa create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/ProjectParameters.json create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/StructuralMaterials.json diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/Bathe_cantilever.mdpa b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/Bathe_cantilever.mdpa new file mode 100644 index 00000000..677b755f --- /dev/null +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/Bathe_cantilever.mdpa @@ -0,0 +1,97 @@ +Begin ModelPartData +// VARIABLE_NAME value +End ModelPartData + +Begin Properties 0 +End Properties +Begin Nodes + 1 29.2893218813 70.7106781187 0.0000000000 + 2 22.6989546637 63.4393284164 0.0000000000 + 3 16.8530387697 55.5570233020 0.0000000000 + 4 11.8078735652 47.1396736826 0.0000000000 + 5 7.6120467489 38.2683432365 0.0000000000 + 6 4.3059664268 29.0284677254 0.0000000000 + 7 1.9214719597 19.5090322016 0.0000000000 + 8 0.4815273328 9.8017140330 0.0000000000 + 9 0.0000000000 0.0000000000 0.0000000000 +End Nodes + + +Begin Elements CrBeamElement3D2N// GUI group identifier: Cantilever + 1 0 9 8 + 2 0 8 7 + 3 0 7 6 + 4 0 6 5 + 5 0 5 4 + 6 0 4 3 + 7 0 3 2 + 8 0 2 1 +End Elements + +Begin ElementalData LOCAL_AXIS_2 // Groups: Cantilever + 1 [3]( -0.9987954592, 0.0490676131, -0.0000000000) + 2 [3]( -0.9891765692, 0.1467300751, -0.0000000000) + 3 [3]( -0.9700312575, 0.2429801629, -0.0000000000) + 4 [3]( -0.9415439701, 0.3368901193, -0.0000000000) + 5 [3]( -0.9039894139, 0.4275548382, -0.0000000000) + 6 [3]( -0.8577286010, 0.5141027592, -0.0000000000) + 7 [3]( -0.8032072910, 0.5956996287, -0.0000000000) + 8 [3]( -0.7409510842, 0.6715590003, -0.0000000000) +End ElementalData + +Begin Conditions PointLoadCondition3D1N// GUI group identifier: End + 1 0 1 +End Conditions + +Begin SubModelPart Parts_Beam_Cantilever // Group Cantilever // Subtree Parts_Beam + Begin SubModelPartNodes + 1 + 2 + 3 + 4 + 6 + 7 + 8 + 9 + End SubModelPartNodes + Begin SubModelPartElements + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + End SubModelPartElements + Begin SubModelPartConditions + End SubModelPartConditions +End SubModelPart +Begin SubModelPart DISPLACEMENT_Support // Group Support // Subtree DISPLACEMENT + Begin SubModelPartNodes + 9 + End SubModelPartNodes + Begin SubModelPartElements + End SubModelPartElements + Begin SubModelPartConditions + End SubModelPartConditions +End SubModelPart +Begin SubModelPart ROTATION_Support // Group Support // Subtree ROTATION + Begin SubModelPartNodes + 9 + End SubModelPartNodes + Begin SubModelPartElements + End SubModelPartElements + Begin SubModelPartConditions + End SubModelPartConditions +End SubModelPart +Begin SubModelPart PointLoad3D_End // Group End // Subtree PointLoad3D + Begin SubModelPartNodes + 1 + End SubModelPartNodes + Begin SubModelPartElements + End SubModelPartElements + Begin SubModelPartConditions + 1 + End SubModelPartConditions +End SubModelPart diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py new file mode 100644 index 00000000..74c379e6 --- /dev/null +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py @@ -0,0 +1,68 @@ +import sys +import time + +import KratosMultiphysics +from KratosMultiphysics.StructuralMechanicsApplication.structural_mechanics_analysis import StructuralMechanicsAnalysis + +""" +For user-scripting it is intended that a new class is derived +from StructuralMechanicsAnalysis to do modifications +""" + +class StructuralMechanicsAnalysisWithFlush(StructuralMechanicsAnalysis): + + def __init__(self, model, project_parameters, flush_frequency=10.0): + super().__init__(model, project_parameters) + self.flush_frequency = flush_frequency + self.last_flush = time.time() + sys.stdout.flush() + + ### Output options ### + ###################### + + # Printing displacements + self.output_displacements_flag = True + self.output_displacement_model_part_names = ["Structure.PointLoad3D_End"] + + def Initialize(self): + super().Initialize() + sys.stdout.flush() + + def FinalizeSolutionStep(self): + super().FinalizeSolutionStep() + + if self.parallel_type == "OpenMP": + now = time.time() + if now - self.last_flush > self.flush_frequency: + sys.stdout.flush() + self.last_flush = now + + def Finalize(self): + super().Finalize() + + # Printing nodal displacements + if self.output_displacements_flag: + print('') + print('*********************') + for sub_model_part_name in self.output_displacement_model_part_names: + print("MODEL PART: {0}".format(sub_model_part_name)) + print('NODAL DISPLACEMENTS') + for node in self.model[sub_model_part_name].Nodes: + displacement = node.GetSolutionStepValue(KratosMultiphysics.DISPLACEMENT) + DX = displacement[0] + DY = displacement[1] + DZ = displacement[2] + print ("Node {0}: DX = {1:.4f} DY = {2:.4f} DZ = {3:.4f}".format(node.Id, DX, DY, DZ)) + print('*********************') + else: + pass + + +if __name__ == "__main__": + + with open("ProjectParameters.json", 'r') as parameter_file: + parameters = KratosMultiphysics.Parameters(parameter_file.read()) + + global_model = KratosMultiphysics.Model() + simulation = StructuralMechanicsAnalysisWithFlush(global_model, parameters) + simulation.Run() diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/ProjectParameters.json b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/ProjectParameters.json new file mode 100644 index 00000000..445a4b6b --- /dev/null +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/ProjectParameters.json @@ -0,0 +1,128 @@ +{ + "problem_data" : { + "problem_name" : "Bathe_cantilever", + "parallel_type" : "OpenMP", + "echo_level" : 1, + "start_time" : 0.0, + "end_time" : 1.0 + }, + "solver_settings" : { + "solver_type" : "Static", + "model_part_name" : "Structure", + "domain_size" : 3, + "echo_level" : 0, + "analysis_type" : "non_linear", + "model_import_settings" : { + "input_type" : "mdpa", + "input_filename" : "Bathe_cantilever" + }, + "material_import_settings" : { + "materials_filename" : "StructuralMaterials.json" + }, + "time_stepping" : { + "time_step" : 0.0166666667 + }, + "line_search" : false, + "convergence_criterion" : "residual_criterion", + "displacement_relative_tolerance" : 0.0001, + "displacement_absolute_tolerance" : 1e-6, + "residual_relative_tolerance" : 0.0001, + "residual_absolute_tolerance" : 1e-6, + "max_iteration" : 10, + "rotation_dofs" : true, + "volumetric_strain_dofs" : false + }, + "processes" : { + "constraints_process_list" : [{ + "python_module" : "assign_vector_variable_process", + "kratos_module" : "KratosMultiphysics", + "process_name" : "AssignVectorVariableProcess", + "Parameters" : { + "model_part_name" : "Structure.DISPLACEMENT_Support", + "variable_name" : "DISPLACEMENT", + "interval" : [0.0,"End"], + "constrained" : [true,true,true], + "value" : [0.0,0.0,0.0] + } + },{ + "python_module" : "assign_vector_variable_process", + "kratos_module" : "KratosMultiphysics", + "process_name" : "AssignVectorVariableProcess", + "Parameters" : { + "model_part_name" : "Structure.ROTATION_Support", + "variable_name" : "ROTATION", + "interval" : [0.0,"End"], + "constrained" : [true,true,true], + "value" : [0.0,0.0,0.0] + } + }], + "loads_process_list" : [{ + "python_module" : "assign_vector_by_direction_to_condition_process", + "kratos_module" : "KratosMultiphysics", + "check" : "DirectorVectorNonZero direction", + "process_name" : "AssignVectorByDirectionToConditionProcess", + "Parameters" : { + "model_part_name" : "Structure.PointLoad3D_End", + "variable_name" : "POINT_LOAD", + "interval" : [0.0,"End"], + "modulus" : "600*t", + "direction" : [0.0,0.0,1.0] + } + }], + "list_other_processes" : [] + }, + "output_processes" : { + "gid_output" : [{ + "python_module" : "gid_output_process", + "kratos_module" : "KratosMultiphysics", + "process_name" : "GiDOutputProcess", + "help" : "This process writes postprocessing files for GiD", + "Parameters" : { + "model_part_name" : "Structure", + "output_name" : "Bathe_cantilever", + "postprocess_parameters" : { + "result_file_configuration" : { + "gidpost_flags" : { + "GiDPostMode" : "GiD_PostBinary", + "WriteDeformedMeshFlag" : "WriteDeformed", + "WriteConditionsFlag" : "WriteConditions", + "MultiFileFlag" : "SingleFile" + }, + "file_label" : "step", + "output_control_type" : "step", + "output_interval" : 1, + "body_output" : true, + "node_output" : false, + "skin_output" : false, + "plane_output" : [], + "nodal_results" : ["DISPLACEMENT","REACTION","ROTATION","REACTION_MOMENT"], + "gauss_point_results" : ["FORCE","MOMENT"], + "nodal_nonhistorical_results" : [] + }, + "point_data_configuration" : [] + } + } + }], + "vtk_output" : [{ + "python_module" : "vtk_output_process", + "kratos_module" : "KratosMultiphysics", + "process_name" : "VtkOutputProcess", + "help" : "This process writes postprocessing files for Paraview", + "Parameters" : { + "model_part_name" : "Structure", + "output_control_type" : "step", + "output_interval" : 1, + "file_format" : "ascii", + "output_precision" : 7, + "output_sub_model_parts" : false, + "output_path" : "vtk_output", + "save_output_files_in_folder" : true, + "nodal_solution_step_data_variables" : ["DISPLACEMENT","REACTION","ROTATION","REACTION_MOMENT"], + "nodal_data_value_variables" : [], + "element_data_value_variables" : [], + "condition_data_value_variables" : [], + "gauss_point_variables_extrapolated_to_nodes" : ["FORCE","MOMENT"] + } + }] + } +} diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/StructuralMaterials.json b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/StructuralMaterials.json new file mode 100644 index 00000000..3f913195 --- /dev/null +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/StructuralMaterials.json @@ -0,0 +1,21 @@ +{ + "properties" : [{ + "model_part_name" : "Structure.Parts_Beam_Cantilever", + "properties_id" : 1, + "Material" : { + "constitutive_law" : { + "name" : "BeamConstitutiveLaw" + }, + "Variables" : { + "DENSITY" : 7850.0, + "YOUNG_MODULUS" : 10000000.0, + "POISSON_RATIO" : 0.0, + "CROSS_AREA" : 1.0, + "TORSIONAL_INERTIA" : 0.1666666666666667, + "I22" : 0.0833333333333333, + "I33" : 0.0833333333333333 + }, + "Tables" : {} + } + }] +} From 3865ee2508bc8a550bed91a8f503c04613f8f047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Tue, 16 Nov 2021 16:22:58 +0100 Subject: [PATCH 3/6] bathe cantilever text --- .../README.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md new file mode 100644 index 00000000..96f137be --- /dev/null +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md @@ -0,0 +1,46 @@ +# Non-Linear cantilever beam (Bathe & Bolourchi) + +**Author:** Carlos Lázaro + +**Kratos version:** 9.0 + +**Source files:** [Beam Non-Linear Cantilever 3D Bathe](https://github.com/KratosMultiphysics/Examples/tree/master/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source) + +## Problem definition + +This is a classical test for coupled 3D bending, torsion and traction of a curved cantilever subjected to a transverse load. The cantilever has circular shape of radius 100 and spans 45 deg. The cross section is square (1 x 1). +The transverse end load _F_ increases up to a magnitude of 600. The load has fixed direction throughout the whole process. + + + +_Bathe & Bolourchi cantilever: static system_ + +According to [1], _E_ = 1.0 E+07, _ν_ = 0 and _A_ = 1.0 +_Iy_ = _Iz_ = 0.0833333 +The value of _It_ is not given in the original article. The best approximation to the results of the article is achieved taking _It_ = _I0_ = 0.1666667 + +## Results + +The 8-element discretization follows the original example in reference [1]. The load is applied in 60 steps with a load-control strategy. The following figure shows the (non-scaled) final configuration corresponding to the load of magnitude 600. + + + +_Bathe & Bolourchi cantilever: Non-scaled deformed shape for the total load (8 elements, tip load F = 600 applied in 60 steps)_ + +The equilibrium paths corresponding to the tip displacements are plotted following the style of [1]: + + + +_Bathe & Bolourchi cantilever: Equilibrium paths for each component of the tip displacement in non-dimensional coordinates_ + +The comparison between the computed displacements of the tip and those given in [1] is: + +| | Computed | Reference [1] +|--|----------|--------------- +|u | -13.4890 | -13.4 +|v | -23.5318 | -23.5 +|w | 53.4998 | 53.4 + +## References + +[1] K.-J. Bathe, S. Bolourchi. Large displacement analysis of three-dimensional beam structures. _International Journal for Numerical Methods in Engineering_, 1979, vol. 14, pp. 961-986. From 9b1f5abb924ff6a12cafb85d2ffd86a4c48eda7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Tue, 16 Nov 2021 16:54:47 +0100 Subject: [PATCH 4/6] correction of Kratos version number --- .../validation/beam_nonlinear_cantilever3D_bathe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md index 96f137be..95c45b8d 100644 --- a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/README.md @@ -2,7 +2,7 @@ **Author:** Carlos Lázaro -**Kratos version:** 9.0 +**Kratos version:** 8.1 **Source files:** [Beam Non-Linear Cantilever 3D Bathe](https://github.com/KratosMultiphysics/Examples/tree/master/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source) From 87105078890bf5c4cd225496ac2ddf69a5a89249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Tue, 16 Nov 2021 19:09:52 +0100 Subject: [PATCH 5/6] Update structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py Co-authored-by: Philipp Bucher --- .../beam_nonlinear_cantilever3D_bathe/source/MainKratos.py | 1 + 1 file changed, 1 insertion(+) diff --git a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py index 74c379e6..dcb8f3e6 100644 --- a/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py +++ b/structural_mechanics/validation/beam_nonlinear_cantilever3D_bathe/source/MainKratos.py @@ -27,6 +27,7 @@ def __init__(self, model, project_parameters, flush_frequency=10.0): def Initialize(self): super().Initialize() sys.stdout.flush() + KratosMultiphysics.Logger.Flush() def FinalizeSolutionStep(self): super().FinalizeSolutionStep() From 390120f13020bccca624d063adcdc3ce93cd2720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20L=C3=A1zaro?= Date: Wed, 17 Nov 2021 12:49:17 +0100 Subject: [PATCH 6/6] added entry in validation examples list --- structural_mechanics/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/structural_mechanics/README.md b/structural_mechanics/README.md index 89e5b5bd..3bba9a8c 100644 --- a/structural_mechanics/README.md +++ b/structural_mechanics/README.md @@ -9,6 +9,7 @@ The Examples are continously updated and extended ## Validation - [Beam Eigenvalue Analysis](validation/beam_eigenvalue_analysis/README.md) - [Beam Non-Linear Cantilever](validation/beam_nonlinear_cantilever/README.md) +- [Beam Non-Linear 3D Cantilever (Bathe & Bolourchi)](validation/beam_nonlinear_cantilever3D_bathe/README.md) - [Beam Shallow-angled Structure](validation/beam_shallow_angled_structure/README.md) - [Beam Roll Up](validation/beam_roll_up/README.md) - [Truss Two-Bar-Truss Snapthrough](validation/truss_snap_through/README.md)