From 2accf5234d65f600bbfa830e7eefba8c437b974d Mon Sep 17 00:00:00 2001 From: Klaus <klaus.boehnlein@tu-dresden.de> Date: Tue, 10 Oct 2023 10:26:10 +0200 Subject: [PATCH] remove more deprecated files --- experiment/homogeneous.py | 104 ++++++++++++++++++ {inputs => experiment}/material_neukamm.py | 0 .../material_orthotropic.py | 0 .../parametrized_laminate.py | 0 .../python_matrix_operations.py | 0 materials/__pycache__/material.cpython-38.pyc | Bin 1172 -> 0 bytes .../material_neukamm.cpython-38.pyc | Bin 1179 -> 0 bytes .../__pycache__/material_test.cpython-38.pyc | Bin 1176 -> 0 bytes .../python_matrix_operations.cpython-38.pyc | Bin 1332 -> 0 bytes .../two_phase_material.cpython-38.pyc | Bin 329 -> 0 bytes .../two_phase_material_1.cpython-38.pyc | Bin 788 -> 0 bytes .../two_phase_material_2.cpython-38.pyc | Bin 783 -> 0 bytes .../two_phase_material_3.cpython-38.pyc | Bin 336 -> 0 bytes materials/homogeneous.py | 35 ------ materials/material_neukamm.py | 76 ------------- materials/material_neukamm_old.py | 50 --------- materials/material_orthotropic.py | 83 -------------- materials/material_test.py | 85 -------------- materials/parametrized_laminate.py | 68 ------------ materials/two_phase_material_1.py | 44 -------- materials/two_phase_material_2.py | 44 -------- materials/two_phase_material_3.py | 44 -------- 22 files changed, 104 insertions(+), 529 deletions(-) create mode 100644 experiment/homogeneous.py rename {inputs => experiment}/material_neukamm.py (100%) rename {inputs => experiment}/material_orthotropic.py (100%) rename {inputs => experiment}/parametrized_laminate.py (100%) rename {materials => experiment}/python_matrix_operations.py (100%) delete mode 100644 materials/__pycache__/material.cpython-38.pyc delete mode 100644 materials/__pycache__/material_neukamm.cpython-38.pyc delete mode 100644 materials/__pycache__/material_test.cpython-38.pyc delete mode 100644 materials/__pycache__/python_matrix_operations.cpython-38.pyc delete mode 100644 materials/__pycache__/two_phase_material.cpython-38.pyc delete mode 100644 materials/__pycache__/two_phase_material_1.cpython-38.pyc delete mode 100644 materials/__pycache__/two_phase_material_2.cpython-38.pyc delete mode 100644 materials/__pycache__/two_phase_material_3.cpython-38.pyc delete mode 100644 materials/homogeneous.py delete mode 100644 materials/material_neukamm.py delete mode 100644 materials/material_neukamm_old.py delete mode 100644 materials/material_orthotropic.py delete mode 100644 materials/material_test.py delete mode 100644 materials/parametrized_laminate.py delete mode 100644 materials/two_phase_material_1.py delete mode 100644 materials/two_phase_material_2.py delete mode 100644 materials/two_phase_material_3.py diff --git a/experiment/homogeneous.py b/experiment/homogeneous.py new file mode 100644 index 00000000..538862a5 --- /dev/null +++ b/experiment/homogeneous.py @@ -0,0 +1,104 @@ +import math + +class ParameterSet(dict): + def __init__(self, *args, **kwargs): + super(ParameterSet, self).__init__(*args, **kwargs) + self.__dict__ = self + +parameterSet = ParameterSet() + +############################################# +# Paths +############################################# +parameterSet.outputPath = '/home/klaus/Desktop/Dune_release/dune-microstructure/outputs' +parameterSet.baseName= 'homogeneous' #(needed for Output-Filename) + +#Indicator function that determines both phases +# x[0] : x-component +# x[1] : y-component +# x[2] : z-component +def indicatorFunction(x): + # --- replace with your definition of indicatorFunction: + return 1 #Phase1 + + + +########### Options for material phases: ################################# +# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" +######################################################################### +## Notation - Parameter input : +# isotropic (Lame parameters) : [mu , lambda] +# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] +# transversely_isotropic : [E1,E2,G12,nu12,nu23] +# general_anisotropic : full compliance matrix C +###################################################################### +# --- Number of material phases +Phases=1 +#--- Define different material phases: +#- PHASE 1 +phase1_type="isotropic" +materialParameters_phase1 = [80, 80] + + + +#--- define prestrain function for each phase +# (also works with non-constant values) +def prestrain_phase1(x): + return [[1, 0, 0], [0,1,0], [0,0,1]] + + + + +############################################# +# Grid parameters +############################################# +## numLevels : Number of Levels on which solution is computed. starting with a 2x2x2 cube mesh. +## {start,finish} computes on all grid from 2^(start) to 2^finish refinement +#---------------------------------------------------- +parameterSet.numLevels= '3 3' # computes all levels from first to second entry + +############################################# +# Assembly options +############################################# +parameterSet.set_IntegralZero = 1 #(default = false) +parameterSet.set_oneBasisFunction_Zero = 1 #(default = false) +#parameterSet.arbitraryLocalIndex = 7 #(default = 0) +#parameterSet.arbitraryElementNumber = 3 #(default = 0) + +############################################# +# Solver Options, Type: #1: CG - SOLVER , #2: GMRES - SOLVER, #3: QR - SOLVER (default), #4: UMFPACK - SOLVER +############################################# +parameterSet.Solvertype = 3 # recommended to use iterative solver (e.g GMRES) for finer grid-levels +parameterSet.Solver_verbosity = 0 #(default = 2) degree of information for solver output + + +############################################# +# Write/Output options #(default=false) +############################################# +# --- (Optional output) write Material / prestrain / Corrector functions to .vtk-Files: +parameterSet.write_materialFunctions = 1 # VTK indicator function for material/prestrain definition +#parameterSet.write_prestrainFunctions = 1 # VTK norm of B (currently not implemented) + +# --- (Additional debug output) +parameterSet.print_debug = 0 #(default=false) + +# --- Write Correctos to VTK-File: +parameterSet.write_VTK = 1 + +# --- (Optional output) L2Error, integral mean: +#parameterSet.write_L2Error = 1 +#parameterSet.write_IntegralMean = 1 + +# --- check orthogonality (75) from paper: +parameterSet.write_checkOrthogonality = 1 + +# --- Write corrector-coefficients to log-File: +#parameterSet.write_corrector_phi1 = 1 +#parameterSet.write_corrector_phi2 = 1 +#parameterSet.write_corrector_phi3 = 1 + +# --- Print Condition number of matrix (can be expensive): +#parameterSet.print_conditionNumber= 1 #(default=false) + +# --- write effective quantities to Matlab-folder for symbolic minimization: +#parameterSet.write_toMATLAB = 0 # writes effective quantities to .txt-files QMatrix.txt and BMatrix.txt diff --git a/inputs/material_neukamm.py b/experiment/material_neukamm.py similarity index 100% rename from inputs/material_neukamm.py rename to experiment/material_neukamm.py diff --git a/inputs/material_orthotropic.py b/experiment/material_orthotropic.py similarity index 100% rename from inputs/material_orthotropic.py rename to experiment/material_orthotropic.py diff --git a/inputs/parametrized_laminate.py b/experiment/parametrized_laminate.py similarity index 100% rename from inputs/parametrized_laminate.py rename to experiment/parametrized_laminate.py diff --git a/materials/python_matrix_operations.py b/experiment/python_matrix_operations.py similarity index 100% rename from materials/python_matrix_operations.py rename to experiment/python_matrix_operations.py diff --git a/materials/__pycache__/material.cpython-38.pyc b/materials/__pycache__/material.cpython-38.pyc deleted file mode 100644 index 444b2c133dc12c1e9e08d2a9c3bb855756d7c47c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 zcmbVK&1%~~5Z;w!MYiMEX`xM^lwMuhiYC|46q=Soz!;K3*^3dHtt@OyVs;HNB)1;> zB6*6uLeDxCdh#pu)EQYx94I7om-%IOznyRPOQ+Kkw61=1V<hi42kXnB;5~`4q(Fe2 z3dPo$%F|WsD5uK1%B`%YJaEDLE>r^=$_HO<0PVz40r}0^Z;{`I0GgEFgch`^z5|=k zA-e@z&?Vaic_R9~B_WGJUzYM^EZMJ@OP1vWiTO$j<b?$1!Z{b<?h5eE<x?>c_=@7j zdJN8qpq#Uo8`d@cx!e&G4~Nh=p<74<Jz-;z(Dk%_9xnL>$f{2Lx>_<v*U{mn=)0vn zD;svKZB+W-qS)q$4L-)|&v7`;XF8lrqqzx>w3*nv2#@BOetoKqO|v8f4rXbLxv@Bp z?HqNOXgXvu)h3)pR%04X-xP~-JIx@CBSQEz&tjYAS(`A-7AYY;+Amh(@NmVF=~B(q z<QDTHjh91C9<bUab%$MUk>6Xf`-~hQZox@h(&SZ^yu?k2rAv2!e0N1m)#jx{pA$EI zW0S(NS0FWsQJRg4ab)z{kCZh`ppdvt`v2d6T{^zP>)m)2{6CTRK2y;(@}q|!OYW9> zzhk-kzB9OO93KL{f4m0%nEZaP^k}YQwNotYIL}5DV0t#n3yl$v)hIu<i$a^y$xZ2+ zg{da0{2|k5RC`6|h-=jD^%ogN7}2-UXllCay1jeq_UgL*d+PS9nIY4M+{W6tZ<!Ac gW;x8K`W=5M^PE&5>+J_mJl~T+i^L=81a9E|1#TVsLjV8( diff --git a/materials/__pycache__/material_neukamm.cpython-38.pyc b/materials/__pycache__/material_neukamm.cpython-38.pyc deleted file mode 100644 index 9d7421aeea4ce841358b2a6f70980f04d0e1084f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1179 zcmbVKJ8u&~5Z=e#<??Xs(2z(7L1_e7ByB{Hh(MySED|KNjdi+N?2~;D?e0mj<aGQK zD*p=p0u9YoNL2m{RLq>u!Ko6lt9fd6XTNXuQ>(SZaQ*z&j%CQ$ZwfY-z~Bvvb*O*= zpE5;OO!?(17E084sbp<E<$(n6D^ouBDu6(30q&7dA^O{mzk~iRgs_eIJ=lR=tZ%^{ zw9xLuKD5!cfnTt0XNjFzzsoEBEav1lOQI!ti()^c0)EXwT#GpadBnh*^M`E0%yW$W z%^1W5!<^X24Vs!@&JWqdGXwB1@D>z?PuS{@@OoT7&X)87L#j#r`o1KN*3sF5b!Ek` zl<&scMJo6b#V$9-r(>l4eC&<$RQD#+sI<LvZ6_`-dgo=PUtDVIl5Eri3eqGtxpk(D zU1@YLjhr?~G_^P0Fw^BEO4FCctU5?CNa6?^y(_cWC3*G$TiJb7jC;7BtV9@`F<TOA zYCEyHGkKB3%K;@%NgbiOMKU3!XV)Y@LI;py5F?2iz1pHTk|QK*A^V2zuKB6aF1QIO zaRc9MVOVtvgIG<JWW!<{S^er9vzB;d+_X{u{~JsTkFWX>{JT0IzsI6==gxgPb3%*Q zZ&^a$75#s}&3&4meAsAyfPS}Ac{u5@IxJ>xoM%G}Oma2M3vD7At5relW`(wu$ZaL< z%+?cC!GLJAYIjBFkZRP?`qK;|6QvqIkZtI0>W=TIJ8tSu?x;JdXJ&{#LohZ-uLobx fJUmTvD5v^0eJT4GRmhv&3ZHt?<KbHTP=@j^!y@~} diff --git a/materials/__pycache__/material_test.cpython-38.pyc b/materials/__pycache__/material_test.cpython-38.pyc deleted file mode 100644 index 5185825128d19bce06d794b7260599da858ed7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 zcmbVK&59F25bmGJWRh%t_M#gQ@fuOXCfCIkTtyIKAS*~;!Z0-^Lz0=Hy8|1@-aPma zp1kELd<D;Q5<KM<JXtlFtl85pc2i&dP~Fw_Re!A4s|?rI@6F&FTEEFTTmqd}D8?cH z13qVpw3zeDoiCKg<5J07JIVnG&KIUiP*N_qstmX%LV0Lc3cHGS4Lqn|{0OR0!~8lN zK^=7i8qh@D1U_P&))p(XL5FAjX~4-YmPAeR8pV7<0DjFuT#GdW*=FFZ`9n5i`WgDA zLm$M5VN4vvhDDCM<|l0C=pmFwcnb={CzJ;hydKxj^DVtV6BMCeKeoit-aFs0j?DO# zD%ojhedT`k1Dj}FqGJSqK6IzaBJ9rQ{?c?WLNl{T+PzrD;q%MT*eITKft*DY=)_pP z4D3>e-Gy&M9r<%}V~s7QzercvaTG%o_*mubG7fB%#5JsA8VHO#xS#AqXb&S>qD)mH zlUSXkQLr6S@Qk31aEoDTlir*&{0I#|enCtmB3ijdYa%De)J6_8-JO$@x4PllrNB+^ zx{PktN;SS*`%yejr@jeK-(b`biHz$e;{U%v*YWtS9<_g0<=#6?+E;Gfr!uE*vG-e= zy6=d=zsB`_iud0i6hB70)5;ti^HiOrD?3f%F*-WB8YgL}eHyD#ZeUkwXflzQOq!L+ zC#u{b(P&g{N9UMwRD1tphQ9U}A^sjy&|T#9?#SyEdHp-``uWT>(Wj}61Jd)s=QH=t f76~lp;Y<2b<}rfDi|u+39M|Dq6-A;nJn6~5i1GU0 diff --git a/materials/__pycache__/python_matrix_operations.cpython-38.pyc b/materials/__pycache__/python_matrix_operations.cpython-38.pyc deleted file mode 100644 index 9aaa3d38b1a8b5256d89828869ca69253aec7e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmZWozi-n(6u$G>soN$+Kp<4=f|Ml^)QANMML=l>Sh5tBP*g=e%XJ(7=$$PQ$(dl_ z&uGW~OP-LJx-m2Hy{pqW<*fJad*}1J``-KfxzpKT7=MmBe&1&7HwDdMA$SMVLpaGK zpRzHRmJ~nO*pjw%Fbmm|YnW~6%5}_++>o1?Te2-XnAapfWP`11WMCto(^L<_4s0K$ zci<$?*#$4zCBLvP*#h@immz~S3b6&_*V}=ptRx#d6Qw4z@p`T%iOy0TT=9zUT`@&T z|9<gK(m3$WrjtT@2Z27z)66?4lHmELK<7~sdXj=T@>QyHRrq<K0xt~kQLdsud)X{M zNt5Gvg7DjMngwc-M`@yWvsoqdEJneYrV25x*5Lo+Ca`F@^#Mw-+cpMd0l|8-Du7`< zaJ;fdii&b=9Hll?6eYSr#7wo|DhI6nzy(~~VH4Pgt&H0{P@}1$l3!9ktkE^S8d!>s z8M~1Tl03?1jboN)Ssx`OUmVl{_6>0W8g!v`*gi}vIEiB<55?U%6mu&F_3!+Eef=;O zxA^tkzQxbxPHB}WNohL_o*C=_@shl~4MDtOf(_aE@chMjzqC*~aZ@_g#_`aB15Jd% zprxow6@OoeJkBZ}Rs6K#XAPF7n08!D^DVkPea`rf)uxB<a`hPT3Rx-(nIU@waF^sF zULpIkLAF1)Yf_*BQiiHgLrojRYFdgerS8EE979Fjr-cXP9+K;lGo4ztOYBLxjdg8) zZob3Yc=}xRu(m>ldPvGORDJ^BTIk!2OuNenQf)-IZkL6^>?I*%fBm+Wbt7u-1#ax6 zXqlIydT%HWnIc^qS`g?X!qmpQJRMDKdx|#;Wj+BOxML?N;%sJ=ZT?I}>Qy9L(@s+e eMSB|=m*sPZaVm>x@P__EBM4WxHcYsiuKN$#=-&kZ diff --git a/materials/__pycache__/two_phase_material.cpython-38.pyc b/materials/__pycache__/two_phase_material.cpython-38.pyc deleted file mode 100644 index e7624af2ace8ebb1cb9aa0900aead6aba77a25ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmYjNyH3L}6uq_sjgTrabV1?=GJt=e0wl^vma0pa%8lJ7N<tz(1W0V~GyDf1z?>Bc zslU*P<BFk2I_KWw`>^H3czi~H5?||I#Gh!6!C~$|H-Tu<tf3`ouEhr}nPzj!k{v3P z7c7Q<#9V;)pu2>4dc*7my)(`0#7?xB!-Etz<Teg$LE!s#7hT2%q1Fz8y?l~A!O{Lv zmR)OP-KgN?%(&Wjy__xb2dTr8xoWGzcFx;S_+X9P8Z>)b87KX7x9Usf%&Jx1*h)3m u{p-LsDYm*(2(fdPa63Yl@gYH1c`%22k0kaE>9p;1Xv|G~r;9(7j{X2@_(P5W diff --git a/materials/__pycache__/two_phase_material_1.cpython-38.pyc b/materials/__pycache__/two_phase_material_1.cpython-38.pyc deleted file mode 100644 index 78b1dd2bd3091a8f4709ecd09742ae4c3d6ac0a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmbVKL95e15Z=wEY5HohikAoe0E=j7PaZ@CA0A8LsfS$3npx7NO*YJK&<Ec1zexX$ z=N$Fazu?K4yq5RCgW|x<ezVN%%=ablCX+Kk_T$^#;@LompPbybh>}<2o&yMwJCO^B zKz$XtggB32kSj<aDWg0lJUHS6hLBRt5JqrDXA1IC%*F?LMJx-+$I%!o^4H}4A%!45 z)0}hhMMAWV@d2ny0WrCt7Y0k@hLW7@`^y7o2i|ffJEcGPz3k+ty}%(|{d%8mTxGKD zPPab0Fn$|clU=m6dGglyVCymiPAXfV^8wo;v}m$Q2ZL7cd=@^sb+ggltWS6A`P1gA zyJu^#g$@qiv~>}zt5X{16AB`l$~eLiA!J(l$a)vhHMTgcDF1^yseZ#9h%-c`qDZJe z36-iO4fbk@OtcrE=ZD;TjhHU-65X^x;)dGR*Q?JT(XHo3A@L5y|K9+|)c)_27mum@ zG<iaJHtJ#$a?`7mCo5Lg=i^@C`8r%RCO<z3z0#;FLm$E)X&mbof2mva9FfP}QszdU b^m*l=-I*8s<M=6sbeP_cRV-8XBvrowzu=~f diff --git a/materials/__pycache__/two_phase_material_2.cpython-38.pyc b/materials/__pycache__/two_phase_material_2.cpython-38.pyc deleted file mode 100644 index 86b1c59d67e8cc248fd7ae49f0d16bdafe0fc4fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmbVJ&59F25bmCyOePzHQM@ep00z-vbMhc6xOfZ!e-3jA?Nl>ql9?W=dsr8|?VfxR z^ERI6>M5__$*S3eUGSh-P}N^GRbBOc{c$om5oF)K-!EPag!swHU5hArL+&|%0J#;p zfC$vJ$R)&i1cO{b0!bO=G2y`hCoqJRYKAa^6FO6n@5OAqr&q+HkbE4Bu_Av<?jKVK z;w#NL6;~3XO^lDY6BN0i7vja98%lDrAFubk;7oQ(fA%}s$uB#BL%RC)DO<bBWSgyS zeRgjACb%X$Z)@}HgYm)EWd@v7wm|0twnb>sWR(sEt={@9T)0)U*50g+cdPmH=CXTW zYp{h54&SwP5v;3I8s`%VBAUuL!Vw{4M)}Bk7tl4f*e@yngEk3%OB;wTM5Urgs6Ppn zswC<=wLm6{%)RG_+<SwVF7guHv_ayA+SWI#pFN>l&y7OjJ&OOo0gkEt-zU$XQu%T6 zgz#+C#U$jqS0_)FtgO$+y~1a!aM_sr^eFUFqpl2ngg?+Y)Xo1=H}5$jkGrGHtvu<= Y%0as|uUJJtrH~HOhp~!f%ATa^Hyv)JzW@LL diff --git a/materials/__pycache__/two_phase_material_3.cpython-38.pyc b/materials/__pycache__/two_phase_material_3.cpython-38.pyc deleted file mode 100644 index 82d3ba4f63541c8c5816860928b1a814eaa272ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmYjMu};G<5IsAFMo5(yx*##JWdIMX2#_di7^*H^A~!ZolmtgUTNH^6eun?x1DLaR z$}cc+?tuEF_v~lCyR(<m=?M_F&G-6(0qmkV1SfM(#2JYO&01K2<~sR=71L}1nHcE? z@{+3m5%&r4fr#fM9^R?;3_h6Vjc_xaEI<n)P=}*@jAJ%L!q43p%UzU=4T)MKEo}P* z?wF2#pJZh_Bb!zQlyifPx4oP%^GB(}i@EIT(pmH_ls-5kH-^IA)dr=1wMAbkG)1Sp zakXlT>#P24V9zP_#n>G9DHGg9pYcIZuG*XZ<O7*dU`TH|t3zvU<4ZCAAf5aH%v(g& diff --git a/materials/homogeneous.py b/materials/homogeneous.py deleted file mode 100644 index 7369270d..00000000 --- a/materials/homogeneous.py +++ /dev/null @@ -1,35 +0,0 @@ -import math - - -#Indicator function that determines both phases -# x[0] : x-component -# x[1] : y-component -# x[2] : z-component -def indicatorFunction(x): - # --- replace with your definition of indicatorFunction: - return 1 #Phase1 - - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### -# --- Number of material phases -Phases=1 -#--- Define different material phases: -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [80, 80] - - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] diff --git a/materials/material_neukamm.py b/materials/material_neukamm.py deleted file mode 100644 index c654bd8b..00000000 --- a/materials/material_neukamm.py +++ /dev/null @@ -1,76 +0,0 @@ -import math -from python_matrix_operations import * -import ctypes -import os -import sys -#--------------------------------------------------------------- - - - -#--- define indicator function for material phases -# x[0] : y1-component -# x[1] : y2-component -# x[2] : x3-component -#To indicate phases return either : 1 / 2 / 3 -############### -# Cross -############### -def indicatorFunction(x): - theta=0.25 - factor=1 - if (x[0] <-0.5+theta and x[2]<-0.5+theta): - return 1 #Phase1 - elif (x[1]<-0.5+theta and x[2]>0.5-theta): - return 2 #Phase2 - else : - return 3 #Phase3 - -############### -# Wood -############### -# def indicatorFunction(x): -# theta=0.25 - # if ((abs(x[0]) < theta/2) and x[2]<0.25): - # return 1 #latewood - # elif ((abs(x[0]) > theta/2) and x[2]<0.25): - # return 2 #earlywood - # else : - # return 0 #Phase3 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] # see https://en.wikipedia.org/wiki/Poisson%27s_ratio with x=1,y=2,z=3 -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### -# --- Number of material phases -Phases=3 -#--- Define different material phases: -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [80, 80] - -#- PHASE 2 -phase2_type="isotropic" -materialParameters_phase2 = [80, 80] - -#- PHASE 3 -phase3_type="isotropic" -materialParameters_phase3 = [60, 25] - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase3(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] - # return [[x[0],0 ,0 ], [0,0,x[1]], [0,0,x[2]]] diff --git a/materials/material_neukamm_old.py b/materials/material_neukamm_old.py deleted file mode 100644 index 790e3a43..00000000 --- a/materials/material_neukamm_old.py +++ /dev/null @@ -1,50 +0,0 @@ -import math - -# DEPRECATED!!!! just for reference - -#Indicator function that determines both phases -# x[0] : y1-component -# x[1] : y2-component -# x[2] : x3-component -# --- replace with your definition of indicatorFunction: -############### -# Wood -############### -# def f(x): -# theta=0.25 - # if ((abs(x[0]) < theta/2) and x[2]<0.25): - # return 1 #latewood - # elif ((abs(x[0]) > theta/2) and x[2]<0.25): - # return 2 #earlywood - # else : - # return 0 #Phase3 - -# def b1(x): -# return [[.5, 0, 0], [0,1,0], [0,0,0]] - -# def b2(x): -# return [[.4, 0, 0], [0,.4,0], [0,0,0]] - -# def b3(x): -# return [[0, 0, 0], [0,0,0], [0,0,0]] -############### -# Cross -############### -def f(x): - theta=0.25 - factor=1 - if (x[0] <-1/2+theta and x[2]<-1/2+theta): - return 1 #Phase1 - elif (x[1]< -1/2+theta and x[2]>1/2-theta): - return 2 #Phase2 - else : - return 0 #Phase3 - -def b1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def b2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def b3(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] diff --git a/materials/material_orthotropic.py b/materials/material_orthotropic.py deleted file mode 100644 index 3f9ab71e..00000000 --- a/materials/material_orthotropic.py +++ /dev/null @@ -1,83 +0,0 @@ -import math -from python_matrix_operations import * -import ctypes -import os -import sys -#--------------------------------------------------------------- - - - -#--- define indicator function -def indicatorFunction(x): - theta=0.25 - factor=1 - if (x[0] <-0.5+theta and x[2]<-0.5+theta): - return 1 #Phase1 - elif (x[1]<-0.5+theta and x[2]>0.5-theta): - return 2 #Phase2 - else : - return 3 #Phase3 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] # see https://en.wikipedia.org/wiki/Poisson%27s_ratio with x=1,y=2,z=3 -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### - -# --- Number of material phases -Phases=3 - - -#--- Define different material phases: - -#- PHASE 1 -phase1_type="orthotropic" -materialParameters_phase1 = [11.2e3,630,1190,700,230,960,0.63 ,0.49,0.37] # walnut parameters (values for compliance matrix) see [Dimwoodie; Timber its nature and behavior p.109] - -#- PHASE 2 -phase2_type="orthotropic" -# materialParameters_phase2 = [10.7e3,430,710,620,23,500, 0.51 ,0.38,0.31] # Norway spruce parameters (values for compliance matrix) see [Dimwoodie; Timber its nature and behavior p.109] -materialParameters_phase2 = [11.2e3,630,1190,700,230,960,0.63 ,0.49,0.37] - -# Pass a set of FrameVectors to transform material properties to this Frame -# phase2_FrameVector1 = [1, 0 ,0] -# phase2_FrameVector2 = [0, 5, 0] -# phase2_FrameVector3 = [0, 0, 1] - -phase2_axis = 2 -phase2_angle = np.pi/2.0 -# phase2_angle = 2*np.pi/12 - - - -#- PHASE 3 -phase3_type="isotropic" -materialParameters_phase3 = [60, 25] - - -#--- for general anisotopic material the compliance matrix is required: -# phase3_type="general_anisotropic" -# materialParameters_phase3 = np.array([[1.0, 0.0, 0.0, 0.0 , 0.0, 0.0], -# [0.0, 1.0, 0.0, 0.0 , 0.0, 0.0], -# [0.0, 0.0, 1.0, 0.0 , 0.0, 0.0], -# [0.0, 0.0, 0.0, math.sqrt(2), 0.0, 0.0], -# [0.0, 0.0, 0.0, 0.0 , 1.0, 0.0], -# [0.0, 0.0, 0.0, 0.0 , 0.0, 1.0]]) - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase3(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] - # return [[x[0],0 ,0 ], [0,0,x[1]], [0,0,x[2]]] diff --git a/materials/material_test.py b/materials/material_test.py deleted file mode 100644 index b3f0737d..00000000 --- a/materials/material_test.py +++ /dev/null @@ -1,85 +0,0 @@ -import math -from python_matrix_operations import * -import ctypes -import os -import sys -#--------------------------------------------------------------- - -#To indicate phases return either : 1 / 2 / 3 - -#--- define indicator function -def indicatorFunction(x): - theta=0.25 - factor=1 - if (x[0] <-0.5+theta and x[2]<-0.5+theta): - return 1 #Phase1 - elif (x[1]<-0.5+theta and x[2]>0.5-theta): - return 2 #Phase2 - else : - return 3 #Phase3 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] # see https://en.wikipedia.org/wiki/Poisson%27s_ratio with x=1,y=2,z=3 -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### - -# --- Number of material phases -Phases=3 - - -#--- Define different material phases: - -#- PHASE 1 -# phase1_type="isotropic" -# materialParameters_phase1 = [80, 80] - -# phase1_type="orthotropic" -# materialParameters_phase1 = [11.2e3,630,1190,700,230,960,0.63 ,0.49,0.37] # walnut parameters (values for compliance matrix) -# # materialParameters_phase1 = [10.7e3,430,710,620,23,500, 0.51 ,0.38,0.31] # Norway spruce parameters (values for compliance matrix) - -phase1_type="general_anisotropic" -materialParameters_phase1 = np.array([[1.0, 8.0, 16.0, 16.0 , 8.0, 8.0], - [8.0, 1.0, 16.0, 16.0 , 8.0, 8.0], - [8.0, 8.0, 1.0, 16.0 , 8.0, 8.0], - [8.0, 8.0, 16.0, math.sqrt(2), 8.0, 8.0], - [8.0, 8.0, 16.0, 16.0 , 8.0, 8.0], - [8.0, 8.0, 16.0, 16.0 , 8.0, 1.0]]) - -#- PHASE 2 -phase2_type="transversely_isotropic" -materialParameters_phase2 = [11.2e3,1190,960,0.63 ,0.37] - -# phase2_type="isotropic" -# materialParameters_phase2 = [80, 80] - -#- PHASE 3 -# phase3_type="isotropic" -# materialParameters_phase3 = [60, 25] - -#--- for general anisotopic material the compliance matrix is required: -phase3_type="general_anisotropic" -materialParameters_phase3 = np.array([[1.0, 0.0, 0.0, 0.0 , 0.0, 0.0], - [0.0, 1.0, 0.0, 0.0 , 0.0, 0.0], - [0.0, 0.0, 1.0, 0.0 , 0.0, 0.0], - [0.0, 0.0, 0.0, math.sqrt(2), 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0 , 1.0, 0.0], - [0.0, 0.0, 0.0, 0.0 , 0.0, 1.0]]) - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase3(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] - # return [[x[0],0 ,0 ], [0,0,x[1]], [0,0,x[2]]] diff --git a/materials/parametrized_laminate.py b/materials/parametrized_laminate.py deleted file mode 100644 index c05161f3..00000000 --- a/materials/parametrized_laminate.py +++ /dev/null @@ -1,68 +0,0 @@ -import math -from python_matrix_operations import * -import ctypes -import os -import sys -#--------------------------------------------------------------- - - -#--- define indicator function -def indicatorFunction(x): - theta=0.25 - factor=1 - if (abs(x[0]) < (theta/2) and x[2] < 0 ): - return 1 #Phase1 - elif (abs(x[0]) > (theta/2) and x[2] > 0 ): - return 2 #Phase2 - elif (abs(x[0]) < (theta/2) and x[2] > 0 ): - return 3 #Phase3 - else : - return 4 #Phase4 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] # see https://en.wikipedia.org/wiki/Poisson%27s_ratio with x=1,y=2,z=3 -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### - -# --- Number of material phases -Phases=4 - -#--- Define different material phases: - -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [2.0, 0] - -#- PHASE 2 -phase2_type="isotropic" -materialParameters_phase2 = [1.0, 0] - -#- PHASE 3 -phase3_type="isotropic" -materialParameters_phase3 = [2.0, 0] - -#- PHASE 4 -phase4_type="isotropic" -materialParameters_phase4 = [1.0, 0] - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[2, 0, 0], [0,2,0], [0,0,2]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase3(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] - -def prestrain_phase4(x): - return [[0, 0, 0], [0,0,0], [0,0,0]] - diff --git a/materials/two_phase_material_1.py b/materials/two_phase_material_1.py deleted file mode 100644 index b09bf3c9..00000000 --- a/materials/two_phase_material_1.py +++ /dev/null @@ -1,44 +0,0 @@ -import math - - -#Indicator function that determines both phases -# x[0] : x-component -# x[1] : y-component -# x[2] : z-component -def indicatorFunction(x): - # --- replace with your definition of indicatorFunction: - if (abs(x[0]) > 0.25): - return 1 #Phase1 - else : - return 2 #Phase2 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### -# --- Number of material phases -Phases=2 -#--- Define different material phases: -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [80, 80] - -#- PHASE 2 -phase2_type="isotropic" -materialParameters_phase2 = [80, 80] - - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] diff --git a/materials/two_phase_material_2.py b/materials/two_phase_material_2.py deleted file mode 100644 index b26dd94b..00000000 --- a/materials/two_phase_material_2.py +++ /dev/null @@ -1,44 +0,0 @@ -import math - - -#Indicator function that determines both phases -# x[0] : x-component -# x[1] : y-component -# x[2] : z-component -def indicatorFunction(x): - # --- replace with your definition of indicatorFunction: - if (abs(x[1]) > 0.25): - return 1 #Phase1 - else : - return 2 #Phase2 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### -# --- Number of material phases -Phases=2 -#--- Define different material phases: -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [80, 80] - -#- PHASE 2 -phase2_type="isotropic" -materialParameters_phase2 = [80, 80] - - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] diff --git a/materials/two_phase_material_3.py b/materials/two_phase_material_3.py deleted file mode 100644 index f087f5d4..00000000 --- a/materials/two_phase_material_3.py +++ /dev/null @@ -1,44 +0,0 @@ -import math - - -#Indicator function that determines both phases -# x[0] : x-component -# x[1] : y-component -# x[2] : z-component -def f(x): - # --- replace with your definition of indicatorFunction: - if (abs(x[2]) > 0.25): - return 1 #Phase1 - else : - return 0 #Phase2 - - -########### Options for material phases: ################################# -# 1. "isotropic" 2. "orthotropic" 3. "transversely_isotropic" 4. "general_anisotropic" -######################################################################### -## Notation - Parameter input : -# isotropic (Lame parameters) : [mu , lambda] -# orthotropic : [E1,E2,E3,G12,G23,G31,nu12,nu13,nu23] -# transversely_isotropic : [E1,E2,G12,nu12,nu23] -# general_anisotropic : full compliance matrix C -###################################################################### -# --- Number of material phases -Phases=2 -#--- Define different material phases: -#- PHASE 1 -phase1_type="isotropic" -materialParameters_phase1 = [80, 80] - -#- PHASE 2 -phase2_type="isotropic" -materialParameters_phase2 = [80, 80] - - - -#--- define prestrain function for each phase -# (also works with non-constant values) -def prestrain_phase1(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] - -def prestrain_phase2(x): - return [[1, 0, 0], [0,1,0], [0,0,1]] -- GitLab