Skip to main content

Reuse CMS Superelement in Ansys Workbench with Expansion

Figure 1: CMS Reuse Project Schematic

In the previous two posts (here and here), the workflow requires another generation pass when reusing the model. This diminishes the advantage of using a component mode synthesis (CMS) superelement model. The difficulty is that when the model changes, the superelement node numbering no longer matches the new workbench (WB) model. Everything gets shuffled around.

To reuse a superelement body, we need the  nodes to persist in the final Analysis for expansion.

We start out with an original modal analysis (Analysis A) that would have worked on it's own. Next, the original modal analysis is duplicated (becoming Analysis B). Analysis A will be modified to only have the superelement body while Analysis B will be modified to have the geometry and mesh of non-superelement body. When both analysis are assembled into a new modal Analysis C, Analysis B's element and nodes are automatically offset so that the ordering is correct. The trick is to maintain the node and element numbering the same as Analysis A.

Figure 2: Initial Schematic

Analysis A 
This is named 'cms part' which is noted for named selection later. All geometrical bodies are deleted except the superelement part. It has two named selection:
1. 'body1' for the superelement body
2. 'interA' for interfaces

The solution command snippet is then added to compute myse.sub superelement matrix. Link to Command Snippet here. Note the natural frequency and mode shapes displayed are with superelement method FIX.

Analysis A Command Snippet
/filnam, myse          ! **myse** is the SuperElement name

antype, subst          ! substructure analysis type
seopt, myse, 2         ! substructure and option for stiffness and mass
cmsopt, fix, 15        ! cms options and **number of modes**

cmsel, s, interA       ! interface **component** 
m, all, all



! as a pretty picture
/sys, copy myse.rst file.rst 

Figure 3: Analysis A for CMS Superelement Part

Analysis B
This is named 'non cms' for everything else. Delete the superelement element. A solution isn't needed in this Analysis. We are only after the mesh created by the geometry. Again, this mesh is malleable for future iterations as long as contact points are maintained.

Figure 4: Analysis B for Non-CMS Parts

Setting up Analysis C by Assembling A & B
The sequence for the following tap dance may be critical to get the sequencing just right:
1. In WB, create a new Modal Analysis in which will be Analysis C
2. Drag the Model from Analysis A3 to Analysis C4 as in Figure 2
3. Right click on Analysis C's Model to 'Update Upstream Components'
4. Double-click on Analysis C's Model to open up Mechanical
5. Drag the Model from Analysis B to Model in Analysis C
6. Right click on Analysis C's Model to 'Update Upstream Components'
7. Right click on Analysis C's Model to 'Update'

The prior flamingo dance should do the trick but it is wise to verify the nodes on the CMS body has lower numbers than those of the non-CMS body in Analysis C before proceeding.

Copying myse* Superelement Files to Analysis C
The purpose of this step is to have Analysis C be given access to the CMS superelement created previously in Analysis A. The quick and dirty way of doing so would be to ...
1. Open up Analysis A in Mechanical
2. Right click on Solution to 'Open Solver File Directory'
3. Copy all files that begins with myse.* (about 9 files)
4. Open Analysis C in Mechanical
5. Right click on Solution to 'Open Solver File Directory'
6. Paste all the myse.* files in this directory

Figure 5: Analysis C with Expanded Results

Analysis C
Both the CMS and non-CMS body should already be assembled here. The contacts are bonded in this example to the master nodes. Beside contacts, the command snippet similar to the previous post was created. Link to command snippet here. Being a assembled analysis, the named selection has the Analysis name with underscores '_' in place of spaces and wrapped-around the analysis name. For example, the named selection for the body for this instance is BODY1_CMS_PART_.

!!!!! Save full model
/filnam, full

!!!!! perform use pass solution
/filnam, use
! Deletes full body that will be replaced by CMS body
cmsel, s, BODY1_CMS_PART_  ! ** part named selection for deletion **     
cmsel,u, interA_CMS_PART_  ! ** don't delete interface nodes **
edele, all
ndele, all

*get, etmax, etyp, 0, num, max
et, etmax+1, 50         ! define substructure element type 
type, etmax+1
mat, 1
se, myse                ! define substructure element

antype, modal

!!!!! expand the solution
/clear, nostart
/filnam, myse

expass, on
seexp, myse, use     ! substructure name and the use pass jobname 
numexp, all,,, yes   ! Expand all modes

!!!!! merge results file
/clear, nostart
/filnam, full

nsubsteps=12         ! **number of modes**
*do,ct, 1, nsubsteps
   file, use
   set, 1, ct
   file, myse
   append, 1, ct
   reswrite, file      ! file name for results file

Now that everything is all set, one can go into Analysis B and change the model. As long as the interface is similar for the contacts to work, the original superelemnt could be reused thus saving computation time. The results are comparable (see archived file).

This is a rather tedious way to get CMS superelement to work in Workbench. There is a rumor Ansys will have it all integrated in the next release a year from now. Until then, hopefully this is helpful.

Resources to Replicate Above Analysis
Analysis A command snippet: Link
Analysis C command snippet: Link
Archived Ansys Workbench V18.0 with results: Link 

All posts on Superelement 
CMS Superelement Harmonic Analysis Link
Reuse CMS Superelement in Ansys Workbench with Expansion Link
Component Mode Synthesis (CMS) with Results Expansion in Ansys Workbench Link
Craig Bampton Method Overview Link
Component Mode Synthesis(CMS) Substructure in ANSYS Workbench Link

In more recent version of Ansys Workbench, distributed file combinations defaults were changed to OFF. This needs to be corrected with appending the following commands to the Analysis A command snippet (Generation Pass).
    dmpopt, esav, no
    dmpopt, emat, no
    dmpopt, full, no

New Post
A new post using Ansys 2019r3 was posted here.


  1. I'd like to request a version of this method for a static structural analysis with multiple load steps and variable numbers of substeps as I can't get it to work.

    P.S. I think the dmpopt commands above should have yes rather than no on the end.

    1. Static only has stiffness matrix so CMS isn't needed. The DMOPT option may be "yes" in more recently versions but I've not checked it myself.


Post a Comment