This section contains input listings for the following linear perturbation analysis examples:
Example 9.1: Linear Perturbation Static Analysis
/prep7 et,1,solid185 mp,ex,1,11.5e8 mp,nuxy,1,.3 mp,dens,1,1000 ! ********** Creating geometry *********** block,0,1,0,-0.1,-1,1 esize,0.2 type,1 vmesh,1 block,1,2,0,-0.1,-1,1 esize,0.2 type,1 vmesh,2 allsel,all ! ********** Creating Bonded Contact Pair ********** *set,tid,4 *set,cid,3 et,cid,conta175 et,tid,targe170 keyo,cid,12,5 ! Bonded Contact vsel,s,volu,,1 allsel,below,volu type,3 real,3 nsel,r,loc,x,1 esurf allsel vsel,s,volu,,2 allsel,below,volu type,4 real,3 nsel,r,loc,x,1 esurf allsel ! ********** Displacement Load in Base Static Solve *********** *dim,disp_x,table,2,1,1 disp_x(1,0)=1 disp_x(1,1)=-1e-03 disp_x(2,0)=2 disp_x(2,1)=-1.5e-03 ! ********** Force Load in Linear Perturbation Static Solve ************ *dim,force_y,table,1,1,1 force_y(1,0)=3 force_y(1,1)=1e+02 nsel,s,loc,x,0 d,all,all allsel,all nsel,s,loc,x,2 nsel,r,loc,y,0 cm,comp1,node nsel,all finish /solution antype,static nlgeom,on ! Enable nonlinear effects nsubst,10,100,10 autots,on outres,all,all rescontrol,define,all,all, ! write restart files nsel,s,loc,x,2 d,all,ux,%disp_x% allsel,all,all time,2 solve ! 2nd load step save fini /solution antype,static,restart,,,perturb perturb,static,,current,nokeep ! Discard any BCs from the base static solution solve,elform nsel,s,loc,x,0 d,all,all,0 ! Redefine BC nsel,all f,comp1,fy,%force_y% time,3 allsel,all,all solve fini /post1 file,,rstp set,last nsel,s,,,200,264,2 prnsol,u,sum prnsol,s nsel,all prrfor finish
Example 9.2: Simple Example of a Linear Perturbation Modal Analysis
/prep7
mp,ex,1,10 ! Simple material
mp,nuxy,1,0.3
mp,dense,1,0.5
n,1,
n,2,1
n,3,1,1
n,4,0,1
n,5,2,0
n,6,2,1
n,7,3,0
n,8,3,1
et,1,182,,,1
e,1,2,3,4
e,2,5,6,3,
e,7,8,6,5
allsel,all
d,1,all
d,4,ux
f,8,fy,-2.0 ! Apply a lateral point load at node 8
dlist
finish
/solution
antype,static ! Static analysis
nlgeom,on ! Large deformation and large strain
rescontrol,,all,1 ! Get restart files for all substeps
nsub,5,5,5 ! Use fixed time steps
solve
finish
!! Begin modal linear perturbation analysis
/solu
/com FIRST PHASE OF LINEAR PERTURBATION
antype,,restart,1,3,perturb ! Restart at 1st loadstep, 3rd substep,
! from the base nonlinear static analysis
perturb,modal
solve,elform ! Execute 1st phase of linear perturbation, recovering Kt of NLGEOM,on
!!
/com SECOND PHASE OF LINEAR PERTURBATION
dlist,all ! Displacement boundary conditions are not deleted
flist,all ! Lateral point load at node 8 has been deleted internally at SOLVE,elform
f,8,fy,-4.0 ! Apply new load for downstream analysis,
f,8,fx,-2.0 ! (downstream analysis is not shown in this simple example)
! This newly applied point load does not affect modal solution
flist
modopt,lanb,3 ! Solve for lowest 3 modes by using block Lanczos
mxpand,3,,,yes ! Expand mode the same time
outres,esol,all
solve ! Execute 2nd phase of linear perturbation: modal analysis
dlist ! Verify perturbation loads again
flist
fini
/post1
file,,rstp ! Use *.rstp file to review results from linear perturbation
set,list ! It should list 3 eigen-modes
set,last ! List stresses of the 3rd mode
esel,s,elem,,1
etable,seqv,s,eqv
allsel,all
etable,seqv,s,eqv
pretab,seqv
finish
Example 9.3: Linear Perturbation Modal Analysis with Large Rotation Effects
*afun,deg /prep7 /triad,lbot /view,1,1,0,0 /angl,1,-90 /graph,full rotxy=0 rotyz=0 rotzx=-90 et,1,185 n,1,0,0,0 ! Define nodes n,2,.5,0,0 n,3,.5,1,0 n,4,0,1,0 ngen,11,10,1,4,1,0,0,1 en,1,1,2,3,4,11,12,13,14 ! Define elements egen,10,10,1 mp,ex,1,1.0e6 ! define material mp,ey,1,1.0e7 mp,ez,1,1.0e8 mp,nuxy,1,1.0e-8 mp,nuxz,1,1.0e-8 mp,nuyz,1,1.0e-8 mp,gxy,1,1e5 mp,gxz,1,1e5 mp,gyz,1,1e5 mp,dens,1,0.3/386.4 local,11,0,0,0,0,rotxy,rotyz,rotzx csys,0 /psymb,cs,1 emodif,all,esys,11 tref,0 tunif,0 nsel,s,node,,1,4 d,all,ux,0 d,all,uy,0 d,all,uz,0 allsel,all finish !! Rigid rotation of 90 degrees /solu antype,static nlgeom,on ! large deflection nsubst,1,1,1 save,case1,db,,model nstep=9 dstep=90/nstep *do,istep,1,nstep theta=dstep*istep nsel,s,node,,3,4 d,all,uz,-sin(theta) d,all,uy,cos(theta)-1 allsel solve *enddo finish !! Linear perturbed modal analysis /solu /com First phase of linear perturbation antype,static,restart,,,perturb ! Restart from the last substep of the rigid rotation perturb,modal ! Set linear perturbed modal analysis solve,elform ! Execute 1st phase of linear perturbation, recovering Kt of NLGEOM,on /com Second phase of linear perturbation outres,all,all modopt,lanb,2 ! Solve for first 2 modes by using block lanczos mxpand,2,,,yes ! Expand mode at the same time solve ! Execute 2nd phase of linear perturbation: modal analysis finish /post1 file,,rstp ! Use *.rstp file to review results from linear perturbation set,list ! List 2 eigenmodes set,1,1 ! List strains and stresses of element 1 in the first mode esel,s,elem,,1 rsys,0 ! List results in global coordinates presol,s presol,epto rsys,solu ! List results in element coordinates presol,s presol,epto finish
Example 9.4: Contact Status Control in a Linear Perturbation Modal Analysis
/filname,test1
!********** CASE 1 **********
/prep7
et,1,182
r,1,0.1
mp,ex,1,30e6
mp,dens,1,7.324
mp,prxy,,0.3
csys,1
pcirc,10,5,0,90
pcirc,10,15,40,50
allsel,all
esize,0.7
cyclic ! A cyclic symmetric static problem
mshkey,1
amesh,all
allsel,all
!********** Original contact definition **********
et,2,172
mat,2
mp,mu,2,0.000001
keyopt,2,4,2
keyopt,2,2,0 ! Penalty function
keyopt,2,12,2 ! No-Separation contact (sliding allowed)
keyopt,2,5,1
type,2
real,2
lsel,s,line,,7
lmesh,all
allsel,all
et,3,169
lsel,s,line,,1
type,3
real,2
esurf,,reverse
lmesh,all
allsel,all
!********** Boundary Condition **********
nsel,s,loc,x,5
d,all,all,0
nsel,all
allsel,all
nsel,s,loc,x,15
esln,s
cm,load,elem
allsel,all
nsel,s,loc,x,13,14
nsel,r,loc,y,40
cm,comp1,node
nsel,all
nrotate,all
finish
/SOLU ! Enter the base nonlinear static analysis
antype,static
rescontrol,define,all,1
outres,all,all
nlgeom,on
nsubs,20,20,20
kbc,0
nsel,s,loc,x,15
f,all,fx,-3e4
allsel,all
solve ! 1st loadstep
time,2.0
nsubs,20,20,20
kbc,0
f,comp1,fy,10
allsel,all
solve ! 2nd loadstep
finish
/post1
set,last
/cycexpand,,on
esel,s,type,,2
!********** Contact status after Base static analysis: sliding **********
presol,cont,stat
esel,all
allsel,all
/cycexpand,,off
finish
/solu
antype,static,restart,,,perturb ! Enter linear perturbed modal analysis
! by using last loadstep and substep.
perturb,modal,,current,allkeep ! Keep all the loads as in Base static run.
solve,elform ! First phase of linear perturbation
modopt,lanb,6
mxpand,6,,,yes
solve ! Second phase of linear perturbation
finish ! Completion of linear perturbation
/post1
file,,rstp
set,list
/cycexpand,,on
set,1,5 ! Use the 5th mode, Harmonic Index = 0 to see solution
esel,s,type,,2
/com, ************************************************************
/com, * CASE 1 *
/com, * Using CURRENT as contact status key on PERTURB command *
/com, ************************************************************
presol,cont,stat ! Expected contact status: sliding (same as Base static analysis)
esel,all
/cycexpand,,off
/delete,test1,rstp
finish
/clear,nostart
/filname,test1
!********** CASE 2 **********
/solu
antype,static,restart,1,10,perturb ! Restart from loadstep 1, substep 10 (uy=2)
perturb,modal,,sticking,allkeep ! Modify the contact from sliding to sticking
solve,elform
modopt,lanb,6
mxpand,6,,,yes
solve
finish
/post1
file,,rstp
set,list
/cycexpand,,on
set,1,5
esel,s,type,,2
/com, ************************************************************
/com, * CASE 2 *
/com, * Use sticking as contact status key on PERTURB command *
/com, ************************************************************
presol,cont,stat ! Expected contact status: sticking
esel,all
/cycexpand,,off
/delete,test1,rstp
finish
/clear,nostart
/filname,test1
!********** CASE 3 **********
/solu
antype,static,restart,1,10,perturb ! Restart from load step 1, substep 10 (uy=2)
cnkmod,2,12,3 ! Change from Keyopt(12)=2 to Keyopt(12)=3 (bonded)
perturb,modal,,current,allkeep ! Retain the contact status same as in Base static analysis
solve,elform
modopt,lanb,6
mxpand,6,,,yes
solve
finish
/post1
file,,rstp
set,list
/cycexpand,,on
set,1,5
esel,s,type,,2
/com, ************************************************************
/com, * CASE 3 *
/com, * Use CNKMOD command to modify individual contact pairs *
/com, ************************************************************
presol,cont,stat ! Expected contact status: Sticking
esel,all
/cycexpand,,off
finish
Example 9.5: Prestressed QRDAMP Linear Perturbation MODAL Analysis
/filname,modal
pres1 = 500
k1 = 1.e+4
k2 = 1.e+2
/prep7
et,1,185,,2
mp,ex,1,3.0e5
mp,nuxy,1,.3
mp,dens,1,.05
mp,mu,1,.3 ! Make friction large
lp = 0.5
hp = 0.5
block,-lp,lp,-lp,lp, ,hp
block,-lp,lp,-lp,lp,hp,2*hp
esize,1.0
vmesh,1,2
!********** Allow sliding contact between blocks **********
et,2,174
et,3,170
keyopt,2,9,1
keyopt,2,10,1
r,3
type,2
real,3
vsel,s,,,1,,,1
nsel,r,loc,z,hp
esurf
type,3
vsel,s,,,2,,,1
nsel,r,loc,z,hp
esurf
alls
!********** Put springs on UX ***********
et,4,14
keyopt,4,2,1
r,4,k1
et,5,14
keyopt,5,2,1
r,5,k2
lsp = -hp/2
n,1000,-lp, lp,lsp
n,1001,-lp,-lp,lsp
n,1002, lp, lp,lsp
n,1003, lp,-lp,lsp
type,4
real,4
e,1000,node(-lp,lp,0)
e,1001,node(-lp,-lp,0)
e,1002,node(lp,lp,0)
type,5
real,5
e,1003,node(lp,-lp,0)
!*********** Put springs on UY **********
et,6,14
keyopt,6,2,2
r,6,k1
et,7,14
keyopt,7,2,2
r,7,k2
type,6
real,6
e,1000,node(-lp,lp,0)
e,1001,node(-lp,-lp,0)
e,1002,node(lp,lp,0)
type,7
real,7
e,1003,node(lp,-lp,0)
!*********** Put springs on UZ ***********
et,8,14
keyopt,8,2,3
r,8,k1
et,9,14
keyopt,9,2,3
r,9,k2
type,8
real,8
e,1000,node(-lp,lp,0)
e,1001,node(-lp,-lp,0)
e,1002,node(lp,lp,0)
type,9
real,9
e,1003,node(lp,-lp,0)
finish
/solution
antype,static
nsel,,loc,z,lsp
d,all,all,0 ! Apply zero displacement on second node of springs
allsel
vsel,s,,,1,,,1
nsel,r,loc,x,-lp
d,all,ux,0 ! Apply zero UX displacement on constrained plate
vsel,s,,,2,,,1
nsel,r,loc,x,-lp
d,all,ux,.01 ! Force UX displacement on free plate
vsel,s,,,2,,,1
nsel,r,loc,y,-lp
d,all,uy,0 ! Apply zero UY displacement on free plate
allsel
nsel,s,loc,z,2*hp
sf,all,pres, pres1 ! Apply pressure on free plate
nsel,all
esel,,type,,2
cm,contact2,elem ! Make a contact component
allsel
outres,all,last
nlgeom,on
nropt,unsym ! Use unsymmetric option for frictional contact
! so that QRDAMP or UNSYM eigensolver can be used
solve
finish
/solution
antype,,restart,,,perturbation
perturb,modal
qrdopt,yes ! Allow reuse of QRDAMP Lanczos modes later
cmrot,contact2,0.0,0.0,1.9 ! Apply rotational velocity along rotZ
solve,elform ! 1st phase of perturbation
! Free blocks to see rigid body modes, if any.
! This is an example of modifying loads or B.C. in the 2nd
! phase of linear perturbation.
vsel,s,,,1,2,,1
ddele,all,all
allsel
modopt,qrdamp,20,50,,on ! Try QRDAMP eigensolver
!modopt,unsym,20,50 ! Alternatively use UNSYM eigensolver j
15-0.31718E-02 1183.7 j 1
solve ! 2nd phase of perturbation
finish
/post1
file,modal,rstp
*get,FREQ_IMAG1,mode,1,freq,imag
*get,FREQ_IMAG2,mode,5,freq,imag
*get,FREQ_IMAG3,mode,10,freq,imag
*get,FREQ_IMAG4,mode,15,freq,imag
*get,FREQ_IMAG5,mode,20,freq,imag
*stat,FREQ_IMAG1
*stat,FREQ_IMAG2
*stat,FREQ_IMAG3
*stat,FREQ_IMAG4
*stat,FREQ_IMAG5
finish
Example 9.6: Using Linear Perturbation to Predict a Buckling Load
!********** CASE 1 **********
!********** Base analysis ***********
/prep7 ! Build the model
et,1,188
sectype,1,beam,rect ! Define beam section
secdata,0.2,0.4
mp,ex,1,1.0e8 ! Define material
mp,dens,1,1000
mp,nuxy,1,0.3
local,11,0,0,0,0,45,0,0 ! Create model and mesh it
csys,11
k,1,0,0,0
k,2,10,0,0
l,1,2
lesize,1,,,10
lmesh,1
allsel,all
d,1,all,0 ! Fix end of beam
allsel,all
nrotate,all
finish
save,model1,db ! Save model as model1.db for use in cases 2 and 3
/solu
antype,static
outres,all,all
f,2,fx,-1000.0 ! Buckling load prediction is independent of
! this load level because base analysis is linear
rescontrol,linear,all,1 ! Needed to generate restart file
solve
finish
!********** Linear perturbation buckling analysis - first phase **********
/solu
antype,static,restart,,,perturb ! Restart the linear base analysis
perturb,buckle,,,allkeep ! This is a LP eigen-buckling analysis
solve,elform
!********** Linear perturbation buckling analysis - second phase **********
f,2,fx,-10.0
bucopt,lanb,2,,,range
mxpand,2,,,yes
solve
finish
/post1
file,,rstp
set,1,1
*get,loadfactor,active,0,set,freq
/com,*******************************************************************
/com, Case 1: Linear base analysis, Eigenvalue buckling analysis
/com, Buckling load is: Fbuckling = 0 + Lambda *(Fperturbed)
/com,
/com, Expected load factor = 66.0258
/com, predicted Fbuckling = 0-66.0258*10 = -660.258
/com,
/com,*******************************************************************
*stat,loadfactor
finish
/delete,,rstp
/clear,nostart
!********** CASE 2 **********
resume,model1,db
!********** Base analysis **********
/solu
antype,static
outres,all,all
nlgeom,on ! Base analysis is nonlinear
rescontrol,define,all,1
nsubs,2,10,2
time,1
f,2,fx,-100.0 ! Buckling load prediction is dependent on
! this load level because base analysis is nonlinear
solve
finish
!********** Linear perturbation buckling analysis - first phase **********
/solu
antype,static,restart,,,perturb ! Restart at the end of loadstep
perturb,buckle,,,allkeep
solve,elform
!********** Linear perturbation buckling analysis - second phase **********
outres,all,all
f,2,fx,300
bucopt,lanb,2,,,center ! Use CENTER option (default), we don't know if load factor
! is negative or positive
mxpand,2,,,yes
solve
finish
/post1
file,,rstp
set,1,2
*get,loadfactor2,active,0,set,freq
/com,********************************************************************
/com, Case 2: Nonlinear base analysis, Eigenvalue buckling analysis
/com, Buckling load is: Fbuckling = Frestart + Lambda *(Fperturbed),
/com, The CENTER option is used
/com,
/com, Expected load factor = -1.868
/com, predicted Fbuckling = -100-1.868*300 = -660.4
/com,
/com,********************************************************************
*stat,loadfactor2
finish
/delete,,rstp
/clear,nostart
!********** CASE 3 **********
resume,model1,db
!********** Base analysis **********
/solu
antype,static
outres,all,all
nlgeom,on ! Base analysis is nonlinear
rescontrol,define,all,1
nsubs,10,10,10
time,1
f,2,fx,-400.0 ! Buckling load prediction is dependent on
! this load level because base analysis is nonlinear
solve
finish
!********** Linear perturbation buckling analysis - first phase **********
/solu
antype,static,restart,1,5,perturb ! Restart in the middle of loadstep
perturb,buckle,,,allkeep
solve,elform
!********** Linear perturbation buckling analysis - second phase **********
outres,all,all
f,2,fx,-500
bucopt,lanb,2,,,range ! Expected load factor is greater than zero; no need to use CENTER
mxpand,2,,,yes
solve
finish
/post1
file,,rstp
set,1,1
*get,loadfactor3,active,0,set,freq
/com,********************************************************************
/com, Case 3: Nonlinear base analysis, Eigenvalue buckling analysis
/com, Buckling load is: Fbuckling = Frestart + Lamda *(Fperturbed)
/com, No CENTER Option is used and restarting from middle.
/com,
/com, Expected load factor = 0.9205
/com, predicted Fbuckling=-400*0.5-0.9205*500=-660.25
/com,
/com,********************************************************************
*stat,loadfactor3
finish
Example 9.7: Linear Perturbation (Prestressed) Harmonic Analysis
/prep7 ! Build the model et,1,188 sectype,1,beam,rect ! Define beam section secdata,0.2,0.4 mp,ex,1,2.0e11 ! Define material mp,dens,1,7800 mp,nuxy,1,0.3 k,1,0,0,0 ! Create model and mesh it k,2,4,0,0 l,1,2 lesize,1,,,4 lmesh,all allsel,all nsel,s,loc,x,0 d,all,all,0 ! Fix end of beam nsel,all finish /solu antype,static nsubs,10,10,10 time,1.0 nlgeom,on nsel,s,loc,x,4 f,all,fx,1e5 f,all,fy,-1e6 nsel,all rescontrol,define,all,1 ! Needed to generate restart file cnvtol,f,,1e-3 ! Tighter tolerance than default for better accuracy cnvtol,m,,1e-4 solve finish ! Completion of nonlinear base analysis ! ! CASE 1 ! ! Linear perturbation modal analysis starts here /solu ! First phase of linear perturbation antype,static,restart,1,5,perturb ! Restart in the middle perturb,modal,,,allkeep solve,elform nsel,s,loc,x,4 ! Second phase of linear perturbation ddele,all,ux nsel,all modopt,lanb,24 ! Compute all the modes possible mxpand,24,,,yes solve finish ! ! Linear perturbation ends here ! ! MSUP harmonic analysis starts here, uses modes from linear perturbation ! ! MSUP is a downstream analysis /solu antype,harmonic hropt,msup,24 outres,all,all harfrq,23.5,24.5 nsubs,10,10,10 kbc,1 nsel,s,loc,x,4 f,all,fy,-1e7,2000 nsel,all solve finish ! ! Expansion pass /solu expass,on outres,all,all numexp,all,,,yes solve finish ! ! End of linear perturbation based MSUP harmonic /post26 n1=node(4,0,0) nsol,2,n1,u,y rforce,3,1,f,y,fy1 prcplx,1 /com,******************************************************************* /com, Case 1 : Perturbed MSUP harmonic analysis (extracting all the /com, modes for best accuracy) /com,******************************************************************* prvar,2,3 finish /clear,nostart ! ! CASE 2 ! ! Linear perturbation full harmonic analysis starts here /solu ! First phase of linear perturbation antype,static,restart,1,5,perturb ! Restart in the middle perturb,harmonic,,,allkeep solve,elform nsel,s,loc,x,4 ! Second phase of linear perturbation ddele,all,ux nsel,all hropt,full harfrq,23.5,24.5 nsubs,10,10,10 kbc,1 nsel,s,loc,x,4 f,all,fy,-1e7,2000 nsel,all solve finish /post26 file,,rstp n1=node(4,0,0) nsol,2,n1,u,y rforce,3,1,f,y,fy1 prcplx,1 /com,******************************************************************* /com, Case 2: Perturbed FULL harmonic analysis, repeating /com, the same restart point from base analysis /com,******************************************************************* prvar,2,3 finish
Example 9.8: Linear Perturbation Substructure Generation Pass Followed by Use and Expansion Passes
/title, An example of LP substructure (CMS) generation, use, and expansion pass /prep7 et,1,185 mp,ex,1,2.0e11 ! Define material mp,dens,1,7800 mp,nuxy,1,0.3 block,0,4,0,2,0,0.50 ! Create model and mesh it esize,0.5 vmesh,1 allsel,all nsel,s,loc,x,4 cm,interface,node nsel,all nsel,s,loc,x,0 d,all,all,0 nsel,all finish /filname,gen1 /solu antype,static nlgeom,on rescontrol,define,all,1 time,1.0 kbc,0 nsubs,10,100,10 autots,on nsel,s,loc,x,2 nsel,r,loc,y,2 d,all,uy,-0.1 ! Displacement load allsel,all solve save finish /com, LP procedure to create the prestressed CMS /solu antype,static,restart,,,perturb perturb,substructure,,, solve,elform seopt,gen1,2 cmsopt,fix,10 cmsel,s,interface,node m,all,all allsel,all solve save finish /clear,nostart /com, use this prestressed CMS element /filnam,use /prep7 et,1,50 se,gen1 finish /solu antype,modal modopt,lanb,10 mxpand,10,,,yes outres,all,all solve save finish /clear,nostart /com,expand this CMS to get result from original structure /filnam,gen1 resume,,db /solu expass,on seexp,gen1,use outres,all,all numexp,all,,,yes solve finish /post1 file,gen1,rst set,list set,1,1 prnsol,u,sum ! Print displacements prrfor ! Print total reaction forces /show,jpeg plnsol,u,sum ! Plot displacements finish
Example 9.9: Linear Perturbation Substructure with Two Generation Passes, Use Pass, and Two Expansion Passes
/title, An example of Linear Perturbation Substructure (CMS) - 2-generation passes, use pass, 2-expansion passes
/filnam,model
/prep7
et,1,182
mp,ex,1,2.0e11
mp,dens,1,7800
mp,nuxy,1,0.3
mp,betd,1,1.0e-5
rect,0,4,0,2
esize,0.25
amesh,1
allsel,all
nsel,s,loc,x,0
cm,comp1,node
nsel,all
nsel,s,loc,x,2
cm,comp2,node
nsel,all
nsel,s,loc,x,4
cm,comp3,node
nsel,all
nsel,s,loc,x,0,2
cm,nodese1,node
nsel,all
nsel,s,loc,x,2,4
cm,nodese2,node
nsel,all
nsel,s,loc,x,4
nsel,r,loc,y,2
cm,load,node
nsel,all
nsel,s,loc,x,0
d,all,all,0
nsel,all
finish
/com, Nonlinear static solution
/solu
antype,static
nlgeom,on
rescontrol,define,all,1
time,1.0
kbc,0
nsubs,10,10,10
nsel,s,loc,x,4
nsel,r,loc,y,2
d,all,uy,-0.001
allsel,all
solve
save
finish
/com, LP procedure to create the prestressed CMS - Generation pass 1
/solu
antype,static,restart,1,5,perturb ! Restart from the middle
perturb,substructure,,,nokeep ! Perform perturbed substructure analysis
solve,elform
seopt,gen1,3 ! Generate superelement gen1, K, M and C
cmsopt,free,10 ! Free interface method
cmsel,s,comp1,node ! Define master nodes
cmsel,a,comp2,node
m,all,all
allsel,all
cmsel,s,nodese1,node
esln,s,1
nsle,s
solve ! Solve a portion of the model
save,gen1,db ! Save .db as gen1.db
allsel,all
finish
/com, Manually rename the files to generate the necessary files for expansion pass
!This can be replaced by issuing LPnameKey = ON on SEOPT command. See second generation pass.
/copy,model,esav,,gen1,esav
/copy,model,emat,,gen1,emat
/copy,model,seld,,gen1,seld
/copy,model,cms,,gen1,cms
/copy,model,full,,gen1,full
/copy,model,LN22,,gen1,LN22
/clear,nostart
/com, LP procedure to create the prestressed CMS - Generation pass 2
/filname,model
resume,,db
finish
/solu
antype,static,restart,1,5,perturb
perturb,substructure,,,nokeep
solve,elform
seopt,gen2,3,2,,,,,on ! LPnameKey = ON to avoid copying manually
! esav, emat, seld, cms, full, LN22 files
! Jobname in expansion pass must be 'gen2'
cmsopt,free,10 ! Free interface method
cmsel,s,comp2,node ! Define master nodes
cmsel,a,comp3,node
m,all,all
allsel,all
cmsel,s,nodese2,node
esln,s,1
nsle,s
solve ! Solve a portion of the model
save,gen2,db
allsel,all
finish
/clear,nostart
/com, Use this prestressed CMS element
/filnam,use
/prep7
et,1,50
se,gen1
se,gen2
nsel,s,loc,x,0
d,all,all,0
allsel,all
save
finish
/solu
antype,modal
modopt,qrdamp,10,,,off
mxpand,10,,,yes
solve
save
finish
/clear,nostart
/com, Expand this CMS to get result from original structure - Gen1
/filnam,gen1
resume,,db
finish
/solu
expass,on
seexp,gen1,use
outres,all,all
numexp,all,,,yes
solve
save
finish
/clear,nostart
/com, Expand this CMS to get result from original structure - Gen2
/filnam,gen2
resume,,db
finish
/solu
expass,on
seexp,gen2,use
outres,all,all
numexp,all,,,yes
solve
save
finish
/clear,nostart
/com, For combination, results of the different portions should be extracted
/com, from the entire model
/com, Write the results of Gen1 nodes in final_gen1.rst
/post1
resume,gen1,db
file,gen1,rst
cmsel,s,nodese1,node
esln,s,1
*do,i,1,10
append,1,i
reswrite,final_gen1
*enddo
finish
/com, Write the results of Gen2 nodes in final_gen2.rst
/clear,nostart
/post1
resume,gen2,db
file,gen2,rst
cmsel,s,nodese2,node
esln,s,1
*do,i,1,10
append,1,i
reswrite,final_gen2
*enddo
finish
/com, Combine the results of Gen1 and Gen2
/clear,nostart
/filnam,final_gen1_gen2
/post1
cmsfile,add,final_gen1,rst,off
cmsfile,add,final_gen2,rst,off
set,list
set,first
prnsol,u,sum ! Print displacements
/show,jpeg
plnsol,u,sum ! Plot displacements
fini
/exit,nosave