/BATCH /CONFIG,nproc,3 /filnam,global_ab_weld_mov_pucks_2 /prep7 shpp,off /input,3_COILS_test_ab_3_21_08,cdb /prep7 allsel lsclear,all cedel,all /com /com Global model of NCSX MCs from ORNL with weld on BC interface /com Model welded flanges one at a time /com /com /com Number of bolts at each interface (comes from nodal components in cdb file) n1_bolts=20 ! AA bolts n2_bolts=26 ! A & B bolts n3_bolts=29 ! BB & C bolts n4_bolts=32 ! C bolts /com /com Misc Parameters /com itm=0.0254 ! in. to m *afun,rad pi=acos(-1) *afun,deg /pnum,mat,1 /num,1 /edge,1,1 /com /com Add a vertical constraint at the bottom ~theta=30 /com esel,s,type,,10 nsle csys,1 nsel,r,loc,y,28,32 nsel,r,loc,z,-.05,.05 *get,zmn_grnd,node,,mnloc,x nsel,r,loc,x,zmn_grnd *get,n_grnd,node,,num,min d,n_grnd,uz /com /com Material Properties /com alpha_struc=13e-6 ! Thermal expansion coefficient of Structure (should be 13e-6 for SS at 85K) TREF,300 TUNIF,300 /com Shell Structures A,B,C as well as shims *do,i,10,17 mp,murx,i,1 mp, ex,i,(22/0.145)*1e9 mp,alpx,i,0 *enddo /com weld properties *do,i,17,20 mp,murx,i,1 mp,ex,i,(22/.145)*1e9 mp,alpx,i,0 mp,alpx,i,18e-6 *enddo !puck properties mp,murx,21,1 mp,ex,21,(22/.145)*1e9 mp,alpx,21,0 mp,alpx,21,18e-6 !*get,w_mod,ex,17,temp,300 !*get,w_alpha,alpx,17,temp,300 !w_yield = 30/.145*1e6 !DT = w_yield/w_mod/w_alpha ! Wing shims properties *do,i,7,9 mp,murx,i,1 mp, ex,i,(1/0.145)*1e9 !weak = .0001, strong = 1 mp,alpx,i,0 *enddo *do,j,1,6 mp,ex,j,(8.5/0.145)*1e9 ! mp,alpx,j,(400e-6/40) mp,alpx,j,0 *enddo /com /com Reflect the shims about Z=0 and numm, shims should be last two element types /com allsel *get,nmx,node,,num,max esel,s,type,,15 nsle *get,nmnshms15,node,,num,min *get,nmxshms15,node,,num,max csys nsym,z,nmx-nmnshms15+1,all esym, ,nmx-nmnshms15+1,all numm,node allsel *get,nmx,node,,num,max esel,s,type,,16 nsle *get,nmnshms16,node,,num,min *get,nmxshms16,node,,num,max csys nsym,z,nmx-nmnshms16+1,all esym, ,nmx-nmnshms16+1,all numm,node /com /com Add Bonded Target & Contact Elements between Shims and Shell Flanges /com esel,s,type,,16 nsle csys nsel,r,loc,y,0.006349,0.006351 cm,nshim_th0,node esel,s,type,,11 nsle nsel,r,loc,y,0.006349,0.006351 cm,nshell_th0,node local,11,,,,,60 esel,s,type,,15 nsle nsel,r,loc,y,-0.006351,-0.006349 cm,nshim_th60,node esel,s,type,,12 nsle nsel,r,loc,y,-0.006351,-0.006349 cm,nshell_th60,node ! /COM, CONTACT PAIR CREATION - START /com begin contact pair creation CM,_NODECM,NODE CM,_ELEMCM,ELEM CM,_KPCM,KP CM,_LINECM,LINE CM,_AREACM,AREA CM,_VOLUCM,VOLU /GSAV,cwz,gsav,,temp MP,MU,78,0 MAT,78 R,78 REAL,78 ET,78,170 ET,79,174 R,78,,,1.0,0,0, R,78,,,0.1,0,0, !R,78,,,1.0,0.1,0, RMORE,,,1.0E20,0.0,1.0,-5e11 ! define shear stiffness since default too soft !RMORE,0.0,0,1.0,,1.0,0.5 !RMORE,0,1.0,1.0,0.0,,1.0 KEYOPT,79,4,0 KEYOPT,79,5,0 KEYOPT,79,7,0 KEYOPT,79,8,0 KEYOPT,79,9,1 ! Exclude both initial geometrical penetration or gap and offset KEYOPT,79,10,5 !1 KEYOPT,79,11,0 KEYOPT,79,12,5 KEYOPT,79,2,0 KEYOPT,78,5,0 ! Generate the target surface NSEL,S,,,NSHELL_TH0 CM,_TARGET,NODE TYPE,78 ESLN,S,0 ESURF CMSEL,S,_ELEMCM ! Generate the contact surface NSEL,S,,,NSHIM_TH0 CM,_CONTACT,NODE TYPE,79 ESLN,S,0 ESURF ALLSEL ESEL,ALL ESEL,S,TYPE,,78 ESEL,A,TYPE,,79 ESEL,R,REAL,,78 /PSYMB,ESYS,1 /PNUM,TYPE,1 /NUM,1 ! EPLOT ESEL,ALL ESEL,S,TYPE,,78 ESEL,A,TYPE,,79 ESEL,R,REAL,,78 CMSEL,A,_NODECM CMDEL,_NODECM CMSEL,A,_ELEMCM CMDEL,_ELEMCM CMSEL,S,_KPCM CMDEL,_KPCM CMSEL,S,_LINECM CMDEL,_LINECM CMSEL,S,_AREACM CMDEL,_AREACM CMSEL,S,_VOLUCM CMDEL,_VOLUCM /GRES,cwz,gsav CMDEL,_TARGET CMDEL,_CONTACT ! /COM, CONTACT PAIR CREATION - END /com CC ! /COM, CONTACT PAIR CREATION - START CM,_NODECM,NODE CM,_ELEMCM,ELEM CM,_KPCM,KP CM,_LINECM,LINE CM,_AREACM,AREA CM,_VOLUCM,VOLU /GSAV,cwz,gsav,,temp MP,MU,79,0 MAT,79 R,79 REAL,79 ET,80,170 ET,81,174 R,79,,,1.0,0,0, R,79,,,0.1,0,0, RMORE,,,1.0E20,0.0,1.0,-5e11 ! define shear stiffness since default too soft !RMORE,0.0,0,1.0,,1.0,0.5 !RMORE,0,1.0,1.0,0.0,,1.0 KEYOPT,81,4,0 KEYOPT,81,5,0 KEYOPT,81,7,0 KEYOPT,81,8,0 KEYOPT,81,9,1 ! Exclude both initial geometrical penetration or gap and offset KEYOPT,81,10,5 !1 KEYOPT,81,11,0 KEYOPT,81,12,5 KEYOPT,81,2,0 KEYOPT,80,5,0 ! Generate the target surface NSEL,S,,,NSHELL_TH60 CM,_TARGET,NODE TYPE,80 ESLN,S,0 ESURF CMSEL,S,_ELEMCM ! Generate the contact surface NSEL,S,,,NSHIM_TH60 CM,_CONTACT,NODE TYPE,81 ESLN,S,0 ESURF ALLSEL ESEL,ALL ESEL,S,TYPE,,80 ESEL,A,TYPE,,81 ESEL,R,REAL,,79 /PSYMB,ESYS,1 /PNUM,TYPE,1 /NUM,1 ! EPLOT ESEL,ALL ESEL,S,TYPE,,80 ESEL,A,TYPE,,81 ESEL,R,REAL,,79 CMSEL,A,_NODECM CMDEL,_NODECM CMSEL,A,_ELEMCM CMDEL,_ELEMCM CMSEL,S,_KPCM CMDEL,_KPCM CMSEL,S,_LINECM CMDEL,_LINECM CMSEL,S,_AREACM CMDEL,_AREACM CMSEL,S,_VOLUCM CMDEL,_VOLUCM /GRES,cwz,gsav CMDEL,_TARGET CMDEL,_CONTACT ! /COM, CONTACT PAIR CREATION - END /PSYMB,ESYS,0 /PSYMB,cs,0 /com /com A-to-A CEs for Three-Coil Structural Model /com tol=0.0001 ! tolerance for pairing nodes for up-down CEs esel,s,mat,,16 nsle csys nsel,r,loc,y,-tol,tol cm,n_asym,node nsel,r,loc,z,0.0001,12 cm,npz_asym,node *get,n_strt,node,,num,min *get,n_stop,node,,num,max *do,j,n_strt,n_stop,1 !5 cmsel,s,npz_asym *if,nsel(j),ne,1,cycle cmsel,s,n_asym nsel,r,loc,x,nx(j)-tol,nx(j)+tol nsel,r,loc,z,-nz(j)-tol,-nz(j)+tol *get,any,node,,count *if,any,eq,0,cycle *get,j_asym,node,,num,min ce,next,,j,ux,1,j_asym,ux,-1 ! Asymmetric nodes move in X together ce,next,,j,uy,1,j_asym,uy,+1 ! Asymmetric nodes move in opposite Y ce,next,,j,uz,1,j_asym,uz,+1 ! Asymmetric nodes move in opposite Z *enddo /com /com C-to-C CEs for Three-Coil Structural Model /com esel,s,mat,,15 nsle local,11,,,,,60 nsel,r,loc,y,-tol,tol cm,n_asym,node nrotate,all nsel,r,loc,z,.0001,12 cm,npz_asym,node *get,n_strt,node,,num,min *get,n_stop,node,,num,max cmsel,s,n_asym *do,j,n_strt,n_stop,1 cmsel,s,npz_asym *if,nsel(j),ne,1,cycle cmsel,s,n_asym nsel,r,loc,x,nx(j)-tol,nx(j)+tol nsel,r,loc,z,-nz(j)-tol,-nz(j)+tol *get,any,node,,count *if,any,eq,0,cycle *get,j_asym,node,,num,min ce,next,,j,ux,1,j_asym,ux,-1 ! Asymmetric nodes move in X together ce,next,,j,uy,1,j_asym,uy,+1 ! Asymmetric nodes move in opposite Y ce,next,,j,uz,1,j_asym,uz,+1 ! Asymmetric nodes move in opposite Z *enddo csys allsel !!!!select out wings if applicable !esel,u,type,,7,9 ! wing ele's !esel,u,type,,35,48 ! contact ele's for wings /com Nix types 58 & 59 (bottom of CC)...seem to be redundant to 65/78 esel,s,type,,58,59 edele,all /com Nix types 56 & 57 (bottom of AA)...seem to be redundant to 63/64 esel,s,type,,56,57 edele,all /com shim and weld contact elements set up in WB. !/com attach the weld to the shim !esel,s,type,,14,15 !esel,a,type,,18,19 !nsle !numm,node !merge nodes /com element types 68,69 / 70,71 are ab /com element types 62,65 are for the BC weld /com selects out the inner leg element of which to let slide. keyopt,68,12,5 keyopt,70,12,5 et,100,conta174 keyopt,100,12,0 esel,s,type,,68,69 nsle angle = 20 csys,0 wpcs wpoffs,1.5 wprota,angle,90 /view,,wp cswpla,1000,1 nsel,r,loc,y,128,239 esln esel,r,type,,68,69 edele,all esel,s,type,,70,71 nsle nsel,r,loc,y,128,239 esln esel,r,type,,70,71 edele,all /com set pcuks to slide on one face keyopt,62,12,5 keyopt,60,12,0 !/com APPLY TEMPERATURES (not neeeded for now.) !esel,s,type,,17 !bfe,all,temp,,300-DT !allsel /com this is what Len used for keyopts and real constants. /com Set Proper contact element keyoptions !keyopt,55,2,0 ! 0 default 1 Penalty Function !KEYOPT,55,9,1 ! Exclude both initial geometrical penetration or gap and offset !keyopt,55,10,5 ! Update contact stiffness for each element after each iteration !keyopt,55,12,k_cont ! 0 (normal) 4 (sliding), 5 (bonded) !mp,mu,55,mu_cont !/com Change B-C Shear stiffness !R,55,,,.1,,, !RMORE,,,,,,-5e11 ! effective shear stiffness of interface !R,56,,,.1,,, !RMORE,,,,,,-5e11 ! effective shear stiffness of interface !*endif allsel save fini :1000 /SOLU !antyp !EQSLV,pcg,1e-6 !EQSLV,sparse !autots,on !nsubst,5,10,2 !cnvtol,f,1000,0.1 !allsel !SOLVE allsel !:2000 !/solu !ANTYPE,,REST, , ,0 ! pulls in mod coil em forces solved by seperate em model provided by Len /input,fxyz_cn1_lc3,out /input,fxyz_cn2_lc3,out /input,fxyz_cn3_lc3,out /com Distribute TF Loads according to node location xl1=1.8194 $yl1=0.79397 $zl1=-1.2319 $fl1= 3700.00000 !b outboard bottom xl2=1.847 $yl2=0.77363 $zl2=1.2319 $fl2= -3700.00000 !b outboard top xl3=0.92238 $yl3=0.25725 $zl3=1.3767 $fl3= -17000.0000 !A inboard top left xl4=0.96987 $yl4=0.19198 $zl4=-1.3767 $fl4= 17000.0000 !A inboard bottom left xl5=1.9958 $yl5=0.13282 $zl5=-1.2319 $fl5= 2100.00000 !a outboard bottom left xl6=1.9216 $yl6=0.55548 $zl6=-1.2319 $fl6= 4800.00000 !a outboard bottom right xl7=1.9958 $yl7=0.1328 $zl7=1.2319 $fl7= -2100.00000 !A outboard top left xl8=1.9216 $yl8=0.55548 $zl8=1.2319 $fl8= -4800.00000 !A outboard top right xl9=0.6203 $yl9=0.75607 $zl9=1.1986 $fl9= -17000.0000 !c inboard top xl10=1.4484 $yl10=1.3887 $zl10=-1.1986 $fl10= 7300.00000 !C outboard bottom left xl11=1.1155 $yl11=1.6664 $zl11=-1.1986 $fl11= 3900.00000 !C outboard bottom right xl12=1.4482 $yl12=1.3886 $zl12=1.1986 $fl12=-7300.00000 !C outboard top left xl13=1.1691 $yl13=1.6298 $zl13=1.1986 $fl13=-3900.00000 !C outboard top right xl14=0.61696 $yl14=0.75987 $zl14=-1.1986 $fl14= 17000.0000 !C inboard bottom allsel csys *do,i,1,14 fn=node(xl%i%,yl%i%,zl%i%) f,fn,FZ,fl%i% *enddo allsel !nsubst,10,20,2 !outres,all,1 SOLVE FINI /post1 set,last /com Contact Interface !esel,s,type,,49 ! A-B !esel,r,real,,49 ! A-B !esel,s,type,,55 ! BB-C !esel,r,real,,55 ! BB-C !esel,s,type,,66 ! A-A !esel,r,real,,66 ! A-A !esel,s,type,,64 ! C-C !esel,r,real,,64 ! C-C !nsle !etab,cpres,smisc,13 !plet,cpres,avg !etab,aasri,nmisc,50 !etab,aasrj,nmisc,51 !etab,aasrk,nmisc,52 !etab,aasrl,nmisc,53 !sadd,aasr1,aasri,aasrj !sadd,aasr2,aasrk,aasrl !sadd,aasr,aasr1,aasr2,0.25,0.25 !etab,aassi,nmisc,54 !etab,aassj,nmisc,55 !etab,aassk,nmisc,56 !etab,aassl,nmisc,57 !sadd,aass1,aassi,aassj !sadd,aass2,aassk,aassl !sadd,aass,aass1,aass2,0.25,0.25 !smult,aasr2,aasr,aasr !smult,aass2,aass,aass !sadd,aa2,aasr2,aass2 !sexp,aa,aa2,,0.5 !sadd,slip_mil,aa,,1000/0.0254 !pret,aasri,aasrj,aasrk,aasrl,aasr !pret,aassi,aassj,aassk,aassk,aass !pret,aasr,aass,aa !plet,slip_mil,avg fini /EXIT,ALL /EOF !!!!post processing !!! produces stress images along the path of the winding normal to the tee. /prep7 !!!! plots stresses near clamps on coil c cl_num = 35 !A coil = B Coil = 9 through 114 C coil = 15 through 920 *do,i,889,890 ! A coil = 829-876, B coil = 68-116, C Coil = 879-926 csys,i wpcsys wprota,,90,90 !exclude for coil 2, ,,-90,90 for coil A /cplane,1 /type,,1 /view,,wp /dist,,.25 !.4 for far view, .1 for near /replot cswpla,5000 nsel,s,loc,z,-.0254,.0254 !select one inch deep nsel,r,loc,x,-.5,.5 !select out IN X (.5 FOR FAR, .1 FOR NEAR) nsel,r,loc,y,-.5,.5 !select out IN Y (.5 FOR FAR, .1 FOR NEAR) esln /post1 jpeg,qual,100 esel,s,type,,7 !esel,u,name,,badclamp !esel,a,name,,clamp3 rsys,5000 /plopts,info,auto /plopts,leg2,off /plopts,date,off /plopts,wp,on !!!plots three x, y, z stresses !/Title,Von_Mises Stress near clamp %cl_num% on coil A !/dscale,,off !plnsol,s,eqv,0,1 !/image,save,Clamp_%cl_num%_Von_Mises_stress,bmp !/ui,copy,save,jpeg,full,color,norm,portrait,no,100 !/rename,non_linear000,jpg,,Hole_%Cl_num%_Stres_Intensity,jpg /Title,Y Stress near clamp %cl_num% on coil A /dscale,,off /contour,,18,-.14e9,,.14e9 plnsol,s,Y,0,1 /ui,copy,save,jpeg,full,color,norm,portrait,no,100 /rename,non_linear000,jpg,,Y_stress_Hole_%Cl_num%,jpg /Title,Z Stress near clamp %cl_num% on coil A /dscale,,off /contour,,18,-.14e9,,.14e9 plnsol,s,Z,0,1 /ui,copy,save,jpeg,full,color,norm,portrait,no,test /rename,non_linear000,jpg,,Z_stress_Hole_%Cl_num%,jpg /Title,x Stress near clamp %cl_num% on coil A /dscale,,off /contour,,18,-.14e9,,.14e9 plnsol,s,x,0,1 /ui,copy,save,jpeg,full,color,norm,portrait,yes,100 /rename,non_linear000,jpg,,X_stress_Hole_%Cl_num%,jpg !!!! plot deformations !/Title,X deflection near clamp %cl_num% !/dscale,,5 !plnsol,u,X,2 !/image,save,X_deflection_near_clamp_%cl_num%,bmp !/Title,Y deflection near clamp %cl_num% !/dscale,,5 !plnsol,u,Y,2 !/image,save,Y_deflection_near_clamp_%cl_num%,bmp !/Title,Z deflection near clamp %cl_num% !/dscale,,5 !plnsol,u,Z,2 !/image,save,Z_deflection_near_clamp_%cl_num%,bmp cl_num = cl_num + 2 *enddo /com /com /com Select all nodes on A-side holes nsel,none *do,j,1,26 cmsel,a,holea%j% *enddo /com Select all nodes on A-side holes nsel,none *do,j,1,26 cmsel,a,holeb%j% *enddo /eshap,1,1 plet,si_ij,avg