Skip to main content

Defining Ansys Superelement SUB File Manually

Photo by  James Owen  on  Unsplash A surprisingly popular blog-post written here is Exporting Stiffness Matrix from Ansys . A sensible follow up question is what can one do with the exported stiffness matrix? In a recent Xansys Forum post, a question was raised on how we can edit the stiffness matrix of a superelement and use it for our model.  An approach presented below is to first create a superelement that has the same number of DOF and nodal location that will serve as a template. An APDL script can then be written to edit the stiffness matrix entries as desired before exporting to a new superelement *.SUB file for use in future models. The self-contained script below demonstrates this.  /prep7 et ,1, 185 mp , ex, 1, 200e3 mp , prxy, 1, 0.33 w = 0.1 ! single element (note nodal locations) n , 1, w, -w, -w n , 2, w, w, -w n , 3, -w, w, -w n , 4, -w, -w, -w n , 5, w, -w, w n , 6, w, w, w n , 7, -w, w, w n , 8, -w, -w, w e , 1, 2, 3, 4, 5, 6, 7, 8 /solu antype , substr     ! analy

ACT Console

The Humble Hammer

Not being very handy around the house, I own a cheap low cost hammer. But as any pro would tell you, no one uses a hammer for roofing. It is very inefficient and gives you a sore arm.

We all want to avoid repeated stress-related injuries (physical and emotional). "Mouse Finger" injury is very real! To mitigate this, Ansys Mechanical has this really cool Automation API. Though intended for ACT debugging and creation, the ACT Console allows the user to input commands that is immediately reflected inside Mechanical. This functions like the Input Line in Ansys Classic! Unfortunately Mechanical only speaks Python and not APDL; so I'm just starting to learn a new language which is hard for an old guy like me. The potential benefits are enormous. Here are some examples:

  1. Say you do non-linear analysis 60% of the time and use the the same settings from a mental checklist. Now you could create Python script to automate those clicks. 
  2. If you have many time steps and wish to set "carry over time step" to "On" for all solution steps in one go
  3. Create boundary condition objects automatically with name selection created in geometry (e.g. Fixed Support)

ACT Console
The ACT Console can be activated by the little button with a Chevron symbol.
View ACT Console

It is an IronPython 2.7* interpreter so space indentation is important. After you refined your code, you could click on the three little dots to "Add snippet". After naming it, the snippet is easily retrieved on the left panel for future projects with a simple click-Enter.
ACT Console in Action

Some examples below...

Automatic Setup for Selected Nonlinear Analysis Parameters
analysis_settings = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings             
analysis_settings.LargeDeflection = True    # Large Deflection
analysis_settings.SaveMAPDLDB = True   # Save MAPDL DB model
analysis_settings.NodalForces = Ansys.ACT.Automation.Mechanical.Enums.OutputControlsNodalForcesType.Yes  # Save Nodal Force Results

Set carry over time step for second till last solution step to be "On"
analysis_settings = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings
n = analysis_settings.NumberOfSteps
for ct in range(n-1):
    ct2 = ct+2

Create Fixed Support automatically with name selection that has 'fix' in it
num = ExtAPI.DataModel.Project.Model.NamedSelections.Children.Count
for ct in range(num):
   nmtmp = ExtAPI.DataModel.Project.Model.NamedSelections.Children[ct].Name   
   nm = nmtmp.lower() # lowercase for comparison
   if nm.find('fix')>=0:
      cker = nmtmp+' is fixed'   # found one that mets criteria
      print cker
      fixfix = ExtAPI.DataModel.Project.Model.Analyses[0].AddFixedSupport()
      fixfix.Location = ExtAPI.DataModel.Project.Model.NamedSelections.Children[ct]
      fixfix.Name = nmtmp+'_auto'

Other Resources
Additional examples can be found here: Link
The Reference Manual is especially useful in finding commands: Link
ACT Developer's Guide: Link

This and Other Related Posts
ACT Console: Link
Text List of Named Selection: Link
ACT to Automate Post-Processing: Link


  1. Thank you for a helpful post!
    You mentioned that the reference manual is especially useful in finding commands, I on the other hand am struggling with getting a grasp of the logic behind it. When should one for example use "ExtAPI.Datamodel..." and when should one use "Ansys.ACT.Automation..."?

    1. I agree it's not straightforward. I usually try to start out with a given example that is close to what I want, then use the online help to search for the right keywords.

  2. I am getting and error running this code. Can anyone suggests?
    The error is as follows:
    " 'NoneType' object has no attribute 'Children':line 24"

  3. Please could you help me with the command to get to the Object Generator by the ACT Console?


Post a Comment