path macro: !Macro to retreive axial strain along a path thru center of diaphragm !WITH FIXED boundary conditions /prep7 R,1,arg2 !Real constant, thickness of shell finish *if,arg4,eq,1,and,arg5,eq,1,then /prep7 et,1,shell181 !Use element Shell 63, includes bending and !membrane/large-disp capibilities MP,EX,1,193e9 !Material properties for linear elastic stainless steel MP,PRXY,1,0.25 *dim,p_,array,arg3 !ppx1 vector of possible pressure loadings *vfill,p_,ramp,2.41e6,1.034e5 !fill pressure array *elseif,arg5,gt,1,then *go,:solveSol *else *go,:body *endif :body !Length is only changing, end radius is fixed r=1/16 !quater model /prep7 K, ,0,0,, K, ,0,0.0015875,, K, ,arg1/2,0.0015875,, K, ,arg1/2,0,, K, ,0.0015875+arg1/2,0,, larc,3,5,4,0.0015875 l,1,5 l,2,3 l,1,2 al,all !creates diaphragm area smrtsize,2 amesh,1 !mesh area /auto /user !EREFINE,ALL,3 !refine all elements FINISH !FINISHES preproccessor /sol dl,1,1,all !fixed bc dl,3,1,all dl,2,1,symm dl,4,1,symm sfa,1,1,pres,-p_(1) :solveSol /sol *if,arg5,gt,1,then sfdele,all,pres !reset to first pressure loading sfa,1,1,pres,-p_(1) *endif SOLVE ! 1st pressure case /post1 shell,bot finish *get,nnum(1),kp,1,attr,node !gets node # for center deflection *get,disp_F(arg4,arg5,1),node,nnum(1),U,z /post1 *get,strainx_F(arg4,arg5,1),node,nnum(1),epto,x *get,strainy_F(arg4,arg5,1),node,nnum(1),epto,y !Path along x-direction path,c,2 ppath,1,,0,0,0 ppath,2,,0.0015875+arg1/2,0,0 pdef,c,U,z,avg paget,ccc(arg5),table finish /sol *if,disp_F(arg4,arg5,1),gt,arg2/2,then finish /sol nlgeom,on autots,on nsubst,5,1000,1 lnsrch,on neqit,1000 solve /post1 shell,bot finish *get,disp_F(arg4,arg5,1),node,nnum(1),U,z /post1 *get,strainx_F(arg4,arg5,1),node,nnum(1),epto,x *get,strainy_F(arg4,arg5,1),node,nnum(1),epto,y !Path along x-direction path,c,2 ppath,1,,0,0,0 ppath,2,,0.0015875+arg1/2,0,0 pdef,c,U,Z,avg paget,ccc(arg5),table finish finish /sol nlgeom,off finish *endif *do,k,2,arg3 /sol sfdele,all,pres sfa,1,1,pres,-p_(k) solve /post1 shell,bot finish *get,nnum(k),kp,1,attr,node *get,disp_F(arg4,arg5,k),node,nnum(k),U,z /post1 *get,strainx_F(arg4,arg5,k),node,nnum(k),epto,x *get,strainy_F(arg4,arg5,k),node,nnum(k),epto,y !Path along x-direction path,c,2 ppath,1,,0,0,0 ppath,2,,0.0015875+arg1/2,0,0 pdef,c,U,Z,avg paget,ccc(arg5),table finish finish /sol *if,disp_F(arg4,arg5,k),gt,arg2/2,then finish /sol nlgeom,on autots,on nsubst,5,1000,1 lnsrch,on neqit,1000 solve /post1 shell,bot finish *get,disp_F(arg4,arg5,k),node,nnum(k),U,z /post1 *get,strainx_F(arg4,arg5,k),node,nnum(k),epto,x *get,strainy_F(arg4,arg5,k),node,nnum(k),epto,y !Path along x-direction path,c,2 ppath,1,,0,0,0 ppath,2,,0.0015875+arg1/2,0,0 pdef,c,U,Z,avg paget,ccc(arg5),table finish finish /sol nlgeom,off *endif *enddo FINISH