This example CMS analysis presents a modal analysis of a 2D tuning fork.
The model is an unconstrained stainless steel tuning fork. After dividing the fork into three CMS superelements, determine the vibration characteristics (natural frequencies and mode shapes) of the entire model. The first 10 eigenfrequencies are extracted, and the fourth mode shape (the first nonrigid body mode) is expanded.
The geometric properties for this analysis follow.
The fork is divided into three CMS superelements:
The three interfaces are as follows:
The material properties for this analysis are as follows:
Young's modulus (E) = 190 x 109 |
Poisson's ratio (υ) = 0.3 |
Density = 7.7 x 103 |
Copy the following commands that define the full model and save them in an input file named full_model.inp.
/filnam,full /units,si blen=0.035 radi=0.025 tlen=0.1 tthk=0.005 /plopts,minm,0 /plopts,date,0 /pnum,real,1 /number,1 /prep7 k,1,-tthk/2 k,2,tthk/2 k,3,-tthk/2,blen k,4,tthk/2,blen local,11,1,,blen+tthk+radi k,5,radi+tthk,-180 k,6,radi,-180 kgen,2,3,4,1,-tthk k,9,radi k,10,radi+tthk a,5,6,7,3 a,3,7,8,4 a,4,8,9,10 csys,0 a,1,2,4,3 k,11,-radi-tthk,blen+tthk+radi+tlen k,12,-radi,blen+tthk+radi+tlen k,13,radi,blen+tthk+radi+tlen k,14,radi+tthk,blen+tthk+radi+tlen a,5,6,12,11 a,9,10,14,13 mshkey,1 esize,tthk/3.5 et,1,plane182,,,3 r,1,tthk amesh,all mp,ex,1,190e9 mp,dens,1,7.7e3 mp,nuxy,1,0.3 nsel,s,,,38 nsel,a,,,174,176 nsel,a,,,170 cm,interface1,node nsel,s,,,175 nsel,a,,,168 nsel,a,,,180,182 nsel,a,,,38,176,138 cm,interface2,node nsel,s,,,175 nsel,a,,,168 nsel,a,,,180,182 nsel,a,,,170,174,4 cm,interface3,node esel,s,,,273,372 cm,part1,elem esel,s,,,373,652 esel,a,,,1,129 esel,a,,,130 esel,a,,,133,134 esel,a,,,137,138 esel,a,,,141,142 cm,part2,elem cmsel,s,part1 cmsel,a,part2 esel,inve cm,part3,elem allsel,all save finish
The following sections describe the fixed-interface method of CMS analysis.
The following table describes the input listing and the steps involved in the example fixed-interface CMS analysis in more detail.
Step | Description | Command(s) |
---|---|---|
1. |
Start an interactive session. | |
2. |
Read the input file: full_model.inp |
/INPUT,full_model,inp |
3. |
Perform the generation pass. | |
a. Change the Jobname to PART1. |
/FILNAME,PART1 | |
b. Specify the analysis type as substructuring. |
ANTYPE,SUBSTR | |
c. Assign a name to the superelement matrix file. |
SEOPT,PART1,2 | |
d. Specify CMS options. |
CMSOPT,FIX,10 | |
e. Select element component PART1. | ||
f. Select node component INTERFACE1. |
CMSEL,S,INTERFACE1 | |
g. Set all active DOFs as masters. |
M,ALL,ALL | |
h. Select all nodes attached to the selected elements. | ||
i. Solve the current analysis. | ||
j. Save the database. ---- As coded in the input file, generation passes for the remaining parts PART2 and PART3 occur here. Steps a through j are repeated for PART2 and again for PART3. (The Jobname and superelement matrix file name change accordingly.) Also, for passes 2 and 3, the node component is INTERFACE2 and INTERFACE3, respectively. | ||
4. |
Perform the use pass. | |
a. Clear the database. |
/CLEAR,NOSTART | |
b. Change the Jobname to USE. |
/FILNAME,USE | |
c. Define the element type. | ||
d. Define the element type attribute pointer. |
TYPE,1 | |
e. Define the three superelements to use in the model (PART1, PART2 and PART3). |
SE,PART1 SE,PART2 SE,PART3 | |
f. Specify the analysis type as modal. |
ANTYPE,MODAL | |
g. Specify modal analysis options. |
MODOPT,LANB,10 | |
h. Expand 10 modes. |
MXPAND,10 | |
i. Solve the current analysis. | ||
5. |
Perform the expansion pass. | |
a. Clear the database. |
/CLEAR,NOSTART | |
b. Change the Jobname to PART1. |
/FILNAME,PART1 | |
c. Resume the database. | ||
d. Perform the expansion. |
EXPASS,ON | |
e. Name the superelement and use pass. |
SEEXP,PART1,USE | |
f. Specify the loadstep and substep to expand. |
EXPSOL,1,4 | |
g. Solve the current analysis. ---- As coded in the input file, expansion passes for the remaining parts PART2 and PART3 occur here. Steps a through g are repeated for PART2 and again for PART3. (The Jobname and superlement name change accordingly.) | ||
6. |
Read the results. | |
a. Specify the superelement matrix file containing the results. |
/CLEAR,NOSTART CMSFILE,ADD,PART1,RST CMSFILE,ADD,PART2,RST CMSFILE,ADD,PART3,RST | |
b. Read the first data set. |
SET,FIRST | |
c. Plot the displacement contour in the X direction. ---- This step completes the sample fixed-interface CMS analysis. Your results should match those shown in Figure 5.1: Fixed-Interface Method Results. |
PLNSOL,U,X |
Use this input file to perform the example CMS analysis via the fixed-interface method. The file contains the complete geometry, material properties, and components (nodes and elements).
/batch,list
/title, 2D Tuning Fork
! Component Mode Synthesis - 2D example
! The Structure is divided into 3 CMS Superelements
! STEP #1
! Start an interactive session
finish
/clear
!STEP #2
!Define full model
/input,full_model,inp
! STEP #3 (a. through j.)
! Generation pass
! Generation pass 1
! a.
! Change the active jobname which will become the superelement name
/filnam,part1
! b.
! Specify the analysis type as substructuring
/solu
antype,substr
! c.
! Specifies the name to be assigned to superelement matrix file
! Strongly suggested to be the same as the active jobname
seopt,part1,2
! d.
! Specifies CMS options
cmsopt,fix,10
! e.
! Selects element component named "part1"
cmsel,s,part1
! f.
! Selects node component named "interface1"
cmsel,s,interface1
! g.
! All the active DOFs (that is, on the nodes which belong to "interface1")
! are set as masters
m,all,all
! h.
! Selects all the nodes attached to the selected elements
! (that is, elements which belong to "part1")
nsle
! i.
! solve the first CMS generation pass
solve
finish
! j.
! Save the generation pass 1 database
save
! Repeat the generation pass for "part2"
! Generation pass 2
/filnam,part2
/solu
antype,substr
seopt,part2,2
cmsopt,fix,10
cmsel,s,part2
cmsel,s,interface2
m,all,all
nsle
solve
finish
save
! Repeat the generation pass for "part3"
! Generation pass 3
/filnam,part3
/solu
antype,substr
seopt,part3,2
cmsopt,fix,10
cmsel,s,part3
cmsel,s,interface3
m,all,all
nsle
solve
finish
save
! STEP #4 (a. through i.)
! Use pass
! a.
! Clears the database
/clear,nostart
! b.
! Change the active jobname which will become the use pass name
/filnam,use
! c.
! A superelement element type is created
/prep7
et,1,matrix50
! d.
! Element type attribute pointer set to 1
type,1
! e.
! Brings in the three superelements created above
se,part1
se,part2
se,part3
finish
! f.
! A modal analysis is performed
/solu
antype,modal
! g.
! Specifies modal analysis options
modopt,lanb,10
! h.
! Expands 10 modes
mxpand,10
! i.
! Solve the modal analysis
solve
finish
! STEP #5 (a. through g.)
! Expansion pass
! Expansion pass 1
! a.
! Clears the database
/clear,nostart
! b.
! Changes the jobname to superelement 1 name
/filnam,part1
! c.
! resume the database
resume
! d.
! Specifies the expansion pass
/solu
expass,on
! e.
! Specifies superelement name and use pass name
seexp,part1,use
! f.
! Specifies the loadstep and substep to be expanded
expsol,1,4
! g.
! Solve the first expansion pass
solve
finish
! Repeat the expansion pass for "part2"
! Expansion pass 2
/clear,nostart
/filnam,part2
resume
/solu
expass,on
seexp,part2,use
expsol,1,4
solve
finish
! Repeat the expansion pass for "part3"
! Expansion pass 3
/clear,nostart
/filnam,part3
resume
/solu
expass,on
seexp,part3,use
expsol,1,4
solve
finish
! STEP #6 (a. through d.)
! Reads results for "load step 1 - substep 4"
! a.
! Clears the database
/clear,nostart
! b.
! Specifies the data file where results are to be found
/post1
cmsfile,add,part1,rst
cmsfile,add,part2,rst
cmsfile,add,part3,rst
! c.
! Reads the first data set
set,first
! d.
! Plots the displacement contour in the x direction
plnsol,u,x
The results of your fixed-interface CMS analysis should match those shown here:
This section explains how the transformation matrix of a CMS part can be read
and manipulated with APDL Math commands. First, IOkey
must be set to CMS on the CMSOPT command so that the static
constraint modes are written to the .cms file (for more
information on component modes storage in the .cms file,
see Component Modes Storage). To write static constraint modes to
the .cms file, the following replacement should be made in
Input Listing.
In generation pass 1, the command
cmsopt,fix,10
should be replaced with
cmsopt,fix,10,,,,,CMS
When this substitution is made, the file part1.cms will contain the static constraint nodes (CST) and the fixed-interface normal modes (NOR) with DOFs in solver ordering. The following input shows how to reduce the stiffness matrix of the component named part1 using APDL Math commands:
! GET THE STATIC CONSTRAINT MODES DATA FROM THE .cms FILE *DMAT,CSTmode,D,IMPORT,CMS,part1.cms,CST ! GET THE NORMAL MODES DATA FROM THE .cms FILE *DMAT,NORmode,D,IMPORT,CMS,part1.cms,NOR ! CREATE THE TRANSFORMATION MATRIX ! PUT THE CST MODES FIRST *DMAT,Tmat,D,COPY,CSTmode ! APPEND THE NOR MODES TO FINALIZE THE TRANSFORMATION MATRIX *MERGE,Tmat,NORmode,CSTmode_colDim+1 ! GET THE STIFFNESS MATRIX FROM THE .FULL FILE *DMAT,K,D,IMPORT,FULL,part1.full,STIFF ! REDUCE THE STIFFNESS MATRIX AND PRINT *MULT,Tmat,TRAN,K,,TmatTK *MULT,TmatTK,,Tmat,,TmatTKTmat *PRINT,TmatTKTmat,TmatTKTmat.txt ! GET THE REDUCED STIFFNESS MATRIX FROM THE .SUB FILE AND PRINT *DMAT,Ksub,D,IMPORT,SUB,part1.sub,STIFF *PRINT,Ksub,Ksub.txt
The two matrices can be verified as equal by comparing TmatTKTmat.txt and Ksub.txt. The only difference is that small terms of TmatTKTmat.txt are zeroed out in Ksub.txt.
The following sections describe the free-interface method of CMS analysis.
The following table describes the input code fragment for the generation pass used in a free-interface CMS analysis. (All other analysis steps remain the same, as shown in Analysis Steps.)
Step | Description | Command(s) |
---|---|---|
1. | ... | |
2. | ... | |
3. |
Perform the generation pass. | |
a. Change the Jobname to PART1. |
/FILNAME,PART1 | |
b. Specify the analysis type as substructuring. |
ANTYPE,SUBSTR | |
c. Assign a name to the superelement matrix file. |
SEOPT,PART1,2 | |
d. Specify CMS options. |
CMSOPT,FREE,10,,,FNUM,3 | |
e. Select element component PART1. | ||
f. Select node component INTERFACE1. |
CMSEL,S,INTERFACE1 | |
g. Set all active DOFs as masters. |
M,ALL,ALL | |
h. Select all nodes attached to the selected elements. | ||
i. Solve the current analysis. | ||
j. Save the database. ---- As coded in the input file, generation passes for the remaining parts PART2 and PART3 occur here. Steps a through j are repeated for PART2 and again for PART3. (The Jobname and superelement matrix file name change accordingly.) Also, for passes 2 and 3, the node component is INTERFACE2 and INTERFACE3, respectively. | ||
4. | ... | |
5. | ... | |
6. | ... |
This input file fragment shows how to set up the generation pass to perform the example CMS analysis via the free-interface method. (All other input remains the same, as shown in Input Listing.)
. . . ! STEP #3 (a. through j.) ! Generation pass ! Generation pass 1 ! a. ! Change the active jobname which will become the superelement name /filnam,part1 ! b. ! Specify the analysis type as substructuring /solu antype,substr ! c. ! Specifies the name to be assigned to superelement matrix file ! Strongly suggested to be the same as the active jobname seopt,part1,2 ! d. ! Specifies CMS options cmsopt,FREE,10,,,FNUM,3 ! If not otherwise specified, the CMSOPT command default behavior ! is to automatically determine rigid body modes in the calculation ! e. ! Selects element component named "part1" cmsel,s,part1 ! f. ! Selects node component named "interface1" cmsel,s,interface1 ! g. ! All the active DOFs (that is, on the nodes which belong to "interface1") ! are set as masters m,all,all ! h. ! Selects all the nodes attached to the selected elements ! (that is, elements which belong to "part1") nsle ! i. ! solve the first CMS generation pass solve finish ! j. ! Save the generation pass 1 database save ! Repeat the generation pass for "part2" ! Generation pass 2 /filnam,part2 /solu antype,substr seopt,part2,2 cmsopt,free,10,,,FNUM,3 cmsel,s,part2 cmsel,s,interface2 m,all,all nsle solve finish save ! Repeat the generation pass for "part3" ! Generation pass 3 /filnam,part3 /solu antype,substr seopt,part3,2 cmsopt,free,10,,,FNUM,3 cmsel,s,part3 cmsel,s,interface3 m,all,all nsle solve finish save . . .
As for the fixed-interface method, this section explains how to reduce the stiffness matrix with APDL Math commands for the free-interface method.
In order to perform this procedure, IOkey
must be
set to CMS on the CMSOPT command. The following modification
should be made to the input listing in Input Listing.
In generation pass 1, the command
cmsopt,free,10,,,FNUM,3
should be replaced with
cmsopt,free,10,,,FNUM,3,CMS
The APDL Math commands to reduce the stiffness matrix of the component named part1 is as follows:
! GET THE STATIC CONSTRAINT MODES DATA FROM THE .cms FILE *DMAT,CSTmode,D,IMPORT,CMS,part1.cms,CST ! GET THE INERTIA RELIEF MODES DATA FROM THE .cms FILE ! THIS STEP SHOULD BE SKIPPED IF THERE IS NO IRF MODES *DMAT,IRFmode,D,IMPORT,CMS,part1.cms,IRF ! GET THE NORMAL MODES DATA FROM THE .cms FILE *DMAT,NORmode,D,IMPORT,CMS,part1.cms,NOR ! CREATE THE TRANSFORMATION MATRIX ! PUT THE CST MODES FIRST *DMAT,Tmat,D,COPY,CSTmode ! IF THERE ARE IRF MODES: ! APPEND THE IRF MODES *MERGE,Tmat,IRFmode,CSTmode_colDim+1 ! APPEND THE NOR MODES TO FINALIZE THE TRANSFORMATION MATRIX *MERGE,Tmat,NORmode,CSTmode_colDim+IRFmode_colDim+1 ! IF THERE IS NO IRF MODES: ! APPEND THE NOR MODES TO FINALIZE THE TRANSFORMATION MATRIX *MERGE,Tmat,NORmode,CSTmode_colDim+1 ! GET THE STIFFNESS MATRIX FROM THE .FULL FILE *DMAT,K,D,IMPORT,FULL,part1.full,STIFF ! REDUCE THE STIFFNESS MATRIX AND PRINT *MULT,Tmat,TRAN,K,,TmatTK *MULT,TmatTK,,Tmat,,TmatTKTmat *PRINT,TmatTKTmat,TmatTKTmat.txt ! GET THE REDUCED STIFFNESS MATRIX FROM THE .SUB FILE AND PRINT *DMAT,Ksub,D,IMPORT,SUB,part1.sub,STIFF *PRINT,Ksub,Ksub.txt
The stiffness matrices can be verified as equal by comparing TmatTKTMat.txt and Ksub.txt.
The following sections describe the residual-flexible free-interface method of CMS analysis.
The following table describes the input code fragment for the generation pass used in a residual-flexible free-interface CMS analysis. (All other analysis steps remain the same, as shown in Analysis Steps.)
Step | Description | Command(s) |
---|---|---|
1. | ... | |
2. | ... | |
3. |
Perform the generation pass. | |
a. Change the Jobname to PART1. |
/FILNAME,PART1 | |
b. Specify the analysis type as substructuring. |
ANTYPE,SUBSTR | |
c. Assign a name to the superelement matrix file. |
SEOPT,PART1,2 | |
d. Specify CMS options. |
CMSOPT,RFFB,10 | |
e. Select element component PART1. | ||
f. Select node component INTERFACE1. |
CMSEL,S,INTERFACE1 | |
g. Set all active DOFs as masters. |
M,ALL,ALL | |
h. Select all nodes attached to the selected elements. | ||
i. Specify pseudo-constraints. ---- Specify only the minimum number of displacement constraints necessary to prevent rigid body motion: three constraints (or fewer, depending on the element type) for 2D models and six (or fewer) for 3D models. | D,,,SUPPORT | |
j. Solve the current analysis. | ||
k. Save the database. ---- As coded in the input file, generation passes for the remaining parts PART2 and PART3 occur here. Steps a through j are repeated for PART2 and again for PART3. (The Jobname and superelement matrix file name change accordingly.) Also, for passes 2 and 3, the node component is INTERFACE2 and INTERFACE3, respectively. | ||
4. | ... | |
5. | ... | |
6. | ... |
This input file fragment shows how to set up the generation pass to perform the example CMS analysis via the residual-flexible free-interface method. (All other input remains the same, as shown in Input Listing.)
. . . ! STEP #3 (a. through j.) ! Generation pass ! Generation pass 1 ! a. ! Change the active jobname which will become the superelement name /filnam,part1 ! b. ! Specify the analysis type as substructuring /solu antype,substr ! c. ! Specifies the name to be assigned to superelement matrix file ! Strongly suggested to be the same as the active jobname seopt,part1,2 ! d. ! Specifies CMS options cmsopt,rffb,10 ! e. ! Selects element component named "part1" cmsel,s,part1 ! f. ! Selects node component named "interface1" cmsel,s,interface1 ! g. ! All the active DOFs (that is, on the nodes which belong to "interface1") ! are set as masters m,all,all ! h. ! Selects all the nodes attached to the selected elements ! (that is, elements which belong to "part1") nsle ! i. ! Specify only the minimum number of displacement constraints necessary ! to prevent rigid body motion: three constraints (or fewer, depending ! on the element type) for 2D models and six (or fewer) for 3D models. d,430,all,support d,440,ux,support ! j. ! solve the first CMS generation pass solve finish ! k. ! Save the generation pass 1 database save ! Repeat the generation pass for "part2" ! Generation pass 2 /filnam,part2 /solu antype,substr seopt,part2,2 cmsopt,rffb,10 cmsel,s,part2 cmsel,s,interface2 m,all,all nsle d,705,all,support d,715,ux,support solve finish save ! Repeat the generation pass for "part3" ! Generation pass 3 /filnam,part3 /solu antype,substr seopt,part3,2 cmsopt,rffb,10 cmsel,s,part3 cmsel,s,interface3 m,all,all nsle d,1050,all,support d,1060,ux,support solve finish save . . .
As for the fixed-interface
method, this section explains how to reduce the stiffness matrix with
APDL Math commands for the RFFB method. For the RFFB method, the
IOkey
setting on the CMSOPT
command is not relevant, as all component modes are stored on the
.cms file by default. Calculating the reduced stiffness
matrix is more complicated for the RFFB method as component modes are stored in
the .cms file with internal ordering.
The APDL Math input to calculate the reduced stiffness matrix for the RFFB method is as follows:
! GET THE RESIDUAL ATTACHMENT MODES DATA FROM THE .cms FILE *DMAT,RSDmode,D,IMPORT,CMS,part1.cms,RSD ! GET THE NORMAL MODES DATA FROM THE .cms FILE *DMAT,NORmode,D,IMPORT,CMS,part1.cms,NOR ! RSD MODES SHOULD BE REORDERED WITH AN INDEX VECTOR THAT SHOULD BE READ IN THE .SUB FILE *XPL,OPEN,part1.sub *XPL,READ,POS,VecPOS *XPL,CLOSE,part1.sub ! CREATE THE TRANSFORMATION MATRIX ! PUT THE RSD MODES MODES FIRST, WHOSE COLUMNS ARE REORDERED ! WITH THE RSDmode_colDim FIRST COMPONENTS OF VecPOS *VEC,VecPOS,I,RESIZE,RSDmode_colDim *DMAT,Tmat,D,COPY,RSDmode,EXTRACT,,VecPOS ! APPEND NOR MODES TO FINALIZE THE TRANSFORMATION MATRIX *MERGE,Tmat,NORmode,RSDmode_colDim+1 ! AS FOR RFFB METHOD MODES ARE STORED IN THE .cms FILE IN INTERNAL ORDERING ! Tmat ROWS SHOULD BE CONVERTED FROM INTERNAL ORDERING TO BCS ORDERING ! BEFORE THE MATRIX REDUCTION *SMAT,Nod2Bcs,D,IMPORT,FULL,part1.full,NOD2BCS ! import the mapping vector *MULT,Nod2Bcs,,Tmat,,TmatB ! convert to the BCS set ! GET THE STIFFNESS MATRIX FROM THE .FULL FILE *DMAT,K,D,IMPORT,FULL,part1.full,STIFF ! REDUCE THE STIFFNESS MATRIX AND PRINT *MULT,TmatB,TRAN,K,,TmatBTK *MULT,TmatBTK,,TmatB,,TmatBTKTmatB *PRINT,TmatBTKTmatB,TmatBTKTmatB.txt ! GET THE REDUCED STIFFNESS MATRIX FROM THE .SUB FILE AND PRINT *DMAT,Ksub,D,IMPORT,SUB,part1.sub,STIFF *PRINT,Ksub,Ksub.txt
The two matrices can be verified as equal by comparing TmatTBKTmatB.txt and Ksub.txt.
The following sections describe how to create a superelement from an existing superelement, apply offsets to the note and element IDs, and expand it in the transformed locations.
The following table describes the input code fragments used to create a superelement from an existing superelement, apply offsets to the node and element IDs, and then expand it in the transformed location. All other analysis steps remain the same, as shown in Analysis Steps.)
Step | Description | Command(s) |
---|---|---|
1. | ... | |
2. | ... | |
3. |
Perform the generation pass. | |
As coded in the input file, generation passes for PART1 and PART2 occur here. (The Jobname and superelement matrix file names change accordingly.) Also, for passes 1 and 2, the node component is INTERFACE1 and INTERFACE2, respectively. A third generation pass to generate PART3 is unnecessary. Instead, the third component of the model (named PART2SYM) will be created from the existing superelement PART2. | ||
4. |
Perform the use pass. | |
... | ||
Define the three superelements to use in the model (PART1, PART2 and PART2SYM). ---- The PART2SYM superelement is created from the existing PART2 superelement. |
SE,PART1 SE,PART2 *GET,NMAX,NODE,,NUM,MAX SESYMM,PART2,X,NMAX,PART2SYM,SUB SE,PART2SYM CPINTF,ALL,0.001 | |
... | ||
5. |
Perform the expansion pass. | |
As coded in the input file, expansion passes for parts PART1 and PART2 occur here. (The Jobname and superelement name change accordingly.) | ||
Obtain the third component of the model (named PART2SYM) from PART2. |
/ASSIGN,RST,PART2SYM,RST EXPASS,ON SEEXP,PART2SYM,USE,,ON | |
Offset node and element IDs. |
RSTOFF,NODE,10000 RSTOFF,ELEM,10000 | |
Expand and solve. |
EXPSOL,1,4 | |
6. |
Read the results. | |
Specify the superelement matrix file containing the results. |
/CLEAR,NOSTART CMSFILE,ADD,PART1,RST CMSFILE,ADD,PART2,RST CMSFILE,ADD,PART2SYM,RST | |
... | ||
... |
This input file fragment shows how to create a superelement from an existing superelement, apply offsets to the node and element IDs, and then expand it in the transformed location. (All other input remains the same, as shown in Input Listing.)
. . . ! STEP #3 ! Generation pass ! Generation pass 1 /filnam,part1 /solu antype,substr seopt,part1,2 cmsopt,fix,10 cmsel,s,part1 cmsel,s,interface1 m,all,all nsle solve finish save ! Generation pass 2 /filnam,part2 /solu antype,substr seopt,part2,2 cmsopt,fix,10 cmsel,s,part2 cmsel,s,interface2 m,all,all nsle solve finish save ! No generation pass is necessary for PART3. We will ! create the third component of the model from the existing ! superelement PART2 and name it PART2SYM ! STEP #4 ! Use pass /clear,nostart /filnam,use /prep7 et,1,matrix50 type,1 ! Define the three superelements to use in the model se,part1 se,part2 *get,nmax,node,,num,max sesymm,part2,x,nmax,part2sym,sub se,part2sym cpintf,all,0.001 finish /solu antype,modal modopt,lanb,10 mxpand,10 solve finish ! STEP #5 ! Expansion pass ! Expansion pass 1 /clear,nostart /filnam,part1 resume /solu expass,on seexp,part1,use expsol,1,4 solve finish ! Expansion pass 2 /clear,nostart /filnam,part2 resume /solu expass,on seexp,part2,use expsol,1,4 solve finish ! Obtain the third part of the model from PART2 ! Expand the solution in the transformed location /assign,rst,part2sym,rst /solu expass,on seexp,part2sym,use,,on ! Offset node and element IDs in the new superelement rstoff,node,10000 rstoff,elem,10000 expsol,1,4 solve finish ! STEP #6 ! Reads results for "load step 1 - substep 4" ! Specify the data file where results are to be found /clear,nostart /post1 cmsfile,add,part1,rst cmsfile,add,part2,rst cmsfile,add,part2sym,rst
This section demonstrates how to introduce damping in the tuning fork model described in Modal Analysis of a 2D Tuning Fork. RSTMAC is then used to compare complex results obtained by the full and CMS models. The procedure is as follows:
The modal analysis is performed for the full model with nodes located at y=0 fixed. Damping is introduced in one zone of part 2 and one zone of part 3 using a material mass matrix multiplier (MP,ALPD) and a material stiffness matrix multiplier (MP,BETD):
/batch,list /title, 2D Tuning Fork with damping ! Include the geometry, material properties /input,full_model,inp /filname,fork_full /prep7 ! Fix base nsel,s,loc,y,0,0 d,all,all allsel,all ! Damping elements et,2,plane182,,,3 r,1,tthk mp,ex,2,190e9 mp,dens,2,7.7e3 mp,nuxy,2,0.3 mp,alpd,2,.1 ! Mass matrix multiplier mp,betd,2,1e-6 ! Stiffness matrix multiplier type,2 mat,2 esel,s,,,501,652 ! Damped material applied on a zone of part 2 emodif,all et,3,plane182,,,3 r,1,tthk mp,ex,3,190e9 mp,dens,3,7.7e3 mp,nuxy,3,0.3 mp,alpd,3,.1 mp,betd,3,2e-6 type,3 mat,3 esel,s,,,781,932 ! Damped material applied on a zone of part 3 emodif,all allsel,all fini save /sol antype,modal modopt,qrdamp,8,,,on ! QRDAMP solver is used to extract the complex eigenmodes mxpand,all solve fini ! Print real and imaginary parts of some modes for nodes 1 to 20 /post1 nsel,s,node,,1,20 set,list ! Print a summary of load step and substeps set,1,1 ! Real part prdi set,1,1,,2 ! Imaginary part prdi set,1,4 ! Real part prdi set,1,4,,2 ! Imaginary part prdi fini
The analysis is performed using a CMS analysis with fixed-interface method:
/clear,nostart /input,full_model,inp /filname,fork_cms_fixed /prep7 ! Fix base nsel,s,loc,y,0,0 d,all,all allsel,all ! Damping element et,2,plane182,,,3 r,1,tthk mp,ex,2,190e9 mp,dens,2,7.7e3 mp,nuxy,2,0.3 mp,alpd,2,.1 mp,betd,2,1e-6 type,2 mat,2 esel,s,,,501,652 emodif,all et,3,plane182,,,3 r,1,tthk mp,ex,3,190e9 mp,dens,3,7.7e3 mp,nuxy,3,0.3 mp,alpd,3,.1 mp,betd,3,2e-6 type,3 mat,3 esel,s,,,781,932 emodif,all allsel,all save fini ! Generation pass 1 /filname,part1 /solu antype,substr seopt,part1,2,1 ! No damping, only stiffness and mass matrices are reduced cmsopt,fix,10 cmsel,s,part1 cmsel,s,interface1 m,all,all nsle solve fini save ! Generation pass 2 /filname,part2 /solu antype,substr seopt,part2,3,1 ! Stiffness, mass and damping matrices are reduced cmsopt,fix,10 cmsel,s,part2 cmsel,s,interface2 m,all,all nsle solve fini save ! Generation pass 3 /filname,part3 /solu antype,substr seopt,part3,3,1 ! Stiffness, mass and damping matrices are reduced cmsopt,fix,10 cmsel,s,part3 cmsel,s,interface3 m,all,all nsle solve fini save ! Use pass /clear,nostart /filnam,use /prep7 et,1,matrix50 type,1 se,part1 se,part2 se,part3 fini /solu antype,modal modopt,qrdamp,8,,,on ! QRDAMP solver is used to extract the complex eigenmodes mxpand,all solve fini /post1 set,list ! Print a summary of load step and substeps after use pass fini ! Expansion pass 1 /clear,nostart /filname,part1 resume /solu expass,on seexp,part1,use numexp,all ! All solutions are expanded solve fini ! Expansion pass 2 /clear,nostart /filnam,part2 resume /solu expass,on seexp,part2,use numexp,all solve fini ! Expansion pass 3 /clear,nostart /filnam,part3 resume /solu expass,on seexp,part3,use numexp,all solve fini ! Print real and imaginary parts of some modes for nodes 1 to 20 /clear,nostart /post1 cmsfile,add,part1,rst set,list ! Print a summary of load step and substeps after expansion pass cmsfile,add,part2,rst cmsfile,add,part3,rst set,1,1 ! Real part nsel,s,node,,1,20 prdi set,1,1,,2 ! Imaginary part prdi set,1,4 ! Real part prdi set,1,4,,2 ! Imaginary part prdi cmsfile,clear fini
Real and imaginary parts of the eight modes are appended and written in file fork_cms_fixed.rst:
/clear,nostart /filname,fork_cms_fixed resume,,, fini /post1 *do,j,1,8 ! Append the real part of the 3 substructures file,part1 append,1,j,, file,part2 append,1,j,, file,part3 append,1,j,, ! Write the appended real part in the result file ! "1" indicates that complex results are written reswrite,fork_cms_fixed,,,,1 ! Append the imaginary parts of the 3 substructures file,part1 append,1,j,,1 file,part2 append,1,j,,1 file,part3 append,1,j,,1 ! Write the appended imaginary part in the result file ! "1" indicates that complex results are written reswrite,fork_cms_fixed,,,,1 *enddo
Finally, eigenmodes of the full model (fork_full.rst) and eigenmodes of the CMS model after expansion (fork_cms_fixed.rst) are compared using the RSTMAC command:
rstmac,fork_full,1,all,fork_cms_fixed,1,all,,,,2 fini
The results show good agreement:
****** Modal Assurance Criterion (MAC) VALUES ****** Solutions are complex Rows: 8 substeps in load step 1 from file fork_full.rst Columns: 8 substeps in load step 1 from file fork_cms_fixed.rst 1 2 3 4 5 6 7 8 1 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 2 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 3 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 4 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 5 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 6 0.000 0.000 0.000 0.000 0.000 1.000 0.001 0.000 7 0.000 0.000 0.000 0.000 0.000 0.001 1.000 0.000 8 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 *** NOTE *** CP = 0.000 TIME= 00:00:00 Solutions matching in RSTMAC command succeeded. 8 pairs of solutions have a Modal Assurance Criterion (MAC) value greater than the smallest acceptable value (.9). ********************************** MATCHED SOLUTIONS ********************************** Substep in Substep in MAC value Frequency Frequency fork_full.rst fork_cms_fixed.rst difference (Hz) error (%) 1 1 1.000 -0.49E-06 0.0 2 2 1.000 0.15E-06 0.0 3 3 1.000 -0.17E-02 0.0 4 4 1.000 -0.23E-05 0.0 5 5 1.000 -0.13E+00 0.0 6 6 1.000 -0.13E+00 0.0 7 7 1.000 -0.36E-03 0.0 8 8 1.000 -0.14E-01 0.0
Note: If you repeat the whole process, you must delete previous .rst files to avoid appending results of the new analysis to the previous file. The following commands can be used in this case:
/inquire,test,exist,fork_full,rst *if,test,eq,1,then /delete,fork_full,rst *endif /inquire,test,exist,fork_cms_fixed,rst *if,test,eq,1,then /delete,fork_cms_fixed,rst *endif