restart;with(plots): setoptions3d(title=`Woven Unit Cell`,style=PATCH, axes=BOXED); H:=0.00635: L:=0.015: W:=0.015: NH:=12: NL:=16: NW:=16: a:=0.0028: b:=0.0009: c:=0.001: f1p:=[L/4+a*sin(t),y,H/2+c*sin(2*Pi*y/W)+b*cos(t)]: f2p:=[3*L/4+a*sin(t),y,H/2+c*sin(2*Pi*y/W+Pi)+b*cos(t)]: f3p:=[x,3*W/4+a*sin(t),H/2+c*sin(2*Pi*x/L)+b*cos(t)]: f4p:=[x,W/4+a*sin(t),H/2+c*sin(2*Pi*x/L+Pi)+b*cos(t)]: fiber1:=plot3d([f1p[1],f1p[2],f1p[3]],y=0..W,t=0..2*Pi,color=green): fiber2:=plot3d([f2p[1],f2p[2],f2p[3]],y=0..W,t=0..2*Pi,color=green): fiber3:=plot3d([f3p[1],f3p[2],f3p[3]],x=0..L,t=0..2*Pi,color=yellow): fiber4:=plot3d([f4p[1],f4p[2],f4p[3]],x=0..L,t=0..2*Pi,color=yellow): display(fiber1,fiber2,fiber3,fiber4); f1ineq:=((x-L/4)/a)^2+((z-(H/2+c*sin(2*Pi*y/W)))/b)^2-1: f2ineq:=((x-3*L/4)/a)^2+((z-(H/2+c*sin(2*Pi*y/W+Pi)))/b)^2-1: f3ineq:=((y-3*W/4)/a)^2+((z-(H/2+c*sin(2*Pi*x/L)))/b)^2-1: f4ineq:=((y-W/4)/a)^2+((z-(H/2+c*sin(2*Pi*x/L+Pi)))/b)^2-1: elements:=array(1..NL*NW*NH): for E from 1 to NL*NW*NH do elements[E]:=0 od: ELEMENT:=array(1..NL,1..NW,1..NH): for i from 1 to NL do for j from 1 to NW do for k from 1 to NH do ELEMENT[i,j,k]:=0 od:od:od: nodes:=array(1..NL*NW*NH): X:=array(1..(NL+1),1..(NW+1),1..(NH+1)): for i from 1 to NL+1 do for j from 1 to NW+1 do for k from 1 to NH+1 do X[i,j,k]:=(i-1)*L/NL: od:od:od: Y:=array(1..(NL+1),1..(NW+1),1..(NH+1)): for i from 1 to NL+1 do for j from 1 to NW+1 do for k from 1 to NH+1 do Y[i,j,k]:=(j-1)*W/NW: od:od:od: Z:=array(1..(NL+1),1..(NW+1),1..(NH+1)): for i from 1 to NL+1 do for j from 1 to NW+1 do for k from 1 to NH+1 do Z[i,j,k]:=(k-1)*H/NH: od:od:od: for i from 1 to NL do for j from 1 to NW do for k from 1 to NH do EL_NUM:=i+(j-1)*NL+(k-1)*NW*NL; nodes[EL_NUM]:=[i+(j-1)*(NL+1)+(k-1)*(NW+1)*(NL+1), (i+1)+(j-1)*(NL+1)+(k-1)*(NW+1)*(NL+1), (i+1)+j*(NL+1)+(k-1)*(NW+1)*(NL+1), i+j*(NL+1)+(k-1)*(NW+1)*(NL+1), i+(j-1)*(NL+1)+k*(NW+1)*(NL+1), (i+1)+(j-1)*(NL+1)+k*(NW+1)*(NL+1), (i+1)+j*(NL+1)+k*(NW+1)*(NL+1), i+j*(NL+1)+k*(NW+1)*(NL+1)]; XCEN:=(i-1/2)*L/NL; YCEN:=(j-1/2)*W/NW; ZCEN:=(k-1/2)*H/NH; TOL:=((L*H*W)^(1/3))/(NL*NW*NH); if(evalf(subs(x=XCEN,y=YCEN,z=ZCEN,f1ineq))