Sie sind auf Seite 1von 54

ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.

html

ANSYS® Tips
ANSYS Tips and ANSYS Tricks
Peter Budgell
Burlington, Ontario, Canada

© 1998, 1999 by Peter C. Budgell -- You are welcome to print and photocopy these pages.

These tips and comments are intended for user education purposes only. They are to be used at your own risk. The
contents are based on my experience with ANSYS 5.3 -- more recent versions may change things. The contents do
not attempt to discuss all the concepts of the finite element method that are required to obtain successful solutions. It
is your responsibility to determine if you have sufficient knowlege and understanding of finite element theory to apply the
software appropriately. I have attempted to give accurate information, but cannot accept liability for any consequences
or damages which may result from errors in this discussion. Accordingly, I disclaim any liability for any damages
including, but not limited to, injury to person or property, lost profit, data recovery charges, attorney's fees, or any other
costs or expenses.

As one writer put it, This information is free, and may be well worth the price.

Return to Home Page


FEA and Opmizaon Introducon Page
FEA Modeling Issues Page

The ANSYS manuals explain many things and give some examples, but they do not give many ps to the user.
Here is a collecon of things I have noted or learned. (Use at your own risk...) Necessity is the mother of invenon,
and I learned virtually everything here as a result of need, or as a result of trial and lots of error. I'm also thankful
to my local ANSYS distributor for many helpful conversaons. The comments in these pages are based on my
experience with ANSYS 5.0 through ANSYS 5.3. I hope these ps will shorten your learning curve. An analyst
frequently does not have a mentor for guidance, so considerable effort can be needed to deduce how to
accomplish some tasks. ANSYS users need to spend a generous amount of me reading the manuals and training
materials, and returning to read them again as the user's knowledge of the program increases. Don't use
anything here verbam... understand why it works, and whether my comments are in error or inappropriate for
your situaon, before employing any of these suggesons.

The teaching of FEA at the academic level is intended to educate the mind, teach how FEA methods are derived
from first principles, and to develop students who can invent and code new elements, test their behavior, write
research or industrial quality so2ware, and apply it to difficult academic or research problems. Some professors
feel strongly that the purpose of an undergrad course in FEA is further educaon in how applied math,
engineering, connuum mechanics, energy methods, and analysis of structures come together, building on the
Strength of Materials courses already taken ‐‐ I have no argument with that. A user with a comprehension of
what underlies FEA work will know when to apply and how to evaluate FEA work, have more creavity, learn
quickly, problem solve be5er, be more innovave, and make fewer serious modeling errors. The professors do
not feel that the course is intended to concentrate on modeling details or learning the interface to a commercial
FEA program. (Students, on the other hand, want to graduate having used an FEA package to do something
significant. Assignments and projects with ANSYS/ED are a good way to get there.) I've heard the opinion
expressed that with FEA technology maturing, there is less research grant money for FEA work in universies, and
the supply of advanced FEA graduate students may be shrinking. The teaching of commercial FEA program use is
principally focused on training people to use the interface to and commands of the parcular so2ware package,
and how to perform basic analysis types. Some instructors pepper their presentaons with ps, but the
a5endees may be drowning from informaon overload. Li5le is available to lead the user through the techniques
that can be used in modeling complex structures, and around the traps that exist, except help from good vendor
support people, co‐workers, or other users, and substanal reading, thought, trying examples, and tesng
techniques on the part of the analyst. I hope that these pages will provide some helpful details.

CONTENTS:

1 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

Tip 1: Use Annotations


Tip 2: Making Room for Annotations
Tip 3: Using Parameters in Annotations
Tip 4: Use Small Annotations
Tip 5: Mathematical Functions Available
Tip 6: Start 16-Bit Applications before Starting ANSYS under Windows NT
Tip 7: Running ANSYS at Low Priority under Windows NT 4.0
Tip 8: Operating on (Scaling) Loads
Tip 9: Ramping Loads Down to Zero
Tip 10: Starting ANSYS Graphs at t=0
Tip 11: Pressure on Lines
Tip 12: Ramping Some Loads, Not Others
Tip 13: Force and Pressure on Flat Plates or Flat Shells
Tip 14: Linear and Nonlinear Buckling
Tip 15: Nonlinear Analysis and the Arc-Length Method
Tip 16: Animating Results from a Nonlinear or Other Analysis
Tip 17: Getting the Mass or Weight of a Model
Tip 18: Using Fnc Calls from Macros
Tip 19: Use ENSYM and ENORM to Turn Over Shell Elements
Tip 20: Shell Types to Try
Tip 21: Moving a Model from ANSYS Mechanical to ANSYS Linear/Plus
Tip 22: Deleting Nodes with Nodal Coupling
Tip 23: Convergence with Shell Finite Element Models in Nonlinear Analysis under ANSYS
Tip 24: Working with Load Step Files in ANSYS
Tip 25: Plotting Shell Stress -- Surface, Mid-Plane Stress, Load Paths, ESYS and RSYS
Tip 26: Nodal Coupling (CP) versus Rigid Region (CERIG)
Tip 27: Vibration Modes with Pre-stress
Tip 28: Creating New Elements by Copying or Reflecting Existing Structure
Tip 29: Adding to a Model Comprised of Elements and Nodes Only
Tip 30: Zero Mass Beam Elements Form Rigid Region
Tip 31: Turn off Symbols When Changing a Model after Solution
Tip 32: Are the "Free-Free" Vibration Modes Relevant?
Tip 33: Selecting a CAD or FEA System -- Cover Yourself
Tip 34: Creating Lines Perpendicular to, or at Angle to Existing Lines
Tip 35: Use the /UI command in Your ANSYS Toolbar to Bring up GUI Dialog Boxes
Tip 36: Reaction Force, Nodal Force, and Load Paths
Tip 37: Inputting Temperatures with BF, BFE, and TUNIF in Structural Analysis
Tip 38: ANSYS Toolbar Use
Tip 39: ANSYS Piping Element Lengths
Tip 40: Graphical Output from ANSYS
Tip 41: Check Nodal Loads at Bolts, Rivets, Spot Welds and Links
Tip 42: Use QUERY to Check Results with Picking
Tip 43: Loads on Geometric Entities Overwrite Loads on Nodes and Elements -- Easy Error to Make
Tip 44: Use Components for Load Input, and for Results Review
Tip 45: Simple Substructuring Examples -- Bottom Up and Top Down
Tip 46: Plot Applied Temperatures
Tip 47: Skipping Over Statements in an Input File
Tip 48: Static Analysis Followed by Transient Analysis
Tip 49: File Compression for Model Storage
Tip 50: Organizing Large FEA Models
Tip 51: Selecting Nodes in a Stress or Strain Range
Tip 52: Selecting Nodes that are Subjected to Nodal Coupling
Tip 53: /NOPR and /GOPR Speed Up Input Files and Macros
Tip 54: Using Commands IMMED and /UIS and /SHOW,OFF
Tip 55: What's the Bauschinger Effect? Comments on Material Yield
Tip 56: Thought Experiments
Tip 57: Control of Meshing
Tip 58: Four View Plot
Tip 59: Quick Review of Mode Shapes
Tip 60: Using ANSYS Help
Tip 61: The FEA Job Hunt
Tip 62: *VPUT and DESOL
Tip 63: How to Divide One Element Table Column by Another
Tip 64: Element Tables (ETABLE) and Arrays -- An Example
Tip 65: Error Estimation, PowerGraphics, and ERNORM
Tip 66: Concatenate and Mesh Last
Tip 67: ANSYS Output of Data to Files for Use by Other Programs
Tip 68: Writing Array Columns to Output or to Files
Tip 69: Synthesizing Parameter Names and Manipulating Jobnames and Long Strings in APDL

2 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

Tip 70: Solid Elements 95 and 92 -- Efficiency and Interconnection

Tip 1: Use Annotaons:

Only a one‐line tle is possible on the ANSYS screen or plot. Considerably more informaon can be included in
annotaons on the screen. The annotaons are kept through all plots unl they are deleted with the command:
/ANNOT,DELE or via picking with the graphical user interface (GUI).

At the top of the Annotaon dialog box, there is a list box from which the user can choose Text, Lines, etc., on
down to Controls. These selecons bring up different menus. The Controls selecon offers a SNAP seEng that
makes it much easier to get the text aligned nicely. (Hint: ANSYS, Inc. should put this SNAP selecon up front
under Text, or even on every menu.) Acvate the Snap seEng, then go back to Text to enter the annotaons.

Tip 2: Making Room for Annotaons:

The /PLOPTS command controls what goes into the legend at the right (by default) side of the ANSYS screen and
plot. If you turn off LEG2 (the relavely useless "view" informaon), you will get extra room at the bo5om of the
legend. This area can be used for annotaons if the number of contour levels in stress plots is not too great (the
default is fine).

Tip 3: Using Parameters in Annotaons:

Just as in a tle created with the command /TITLE, ANSYS permits the use of a parameter in an annotaon, as
discussed in the Commands Manual descripon of the /TLABLE command. When typing the annotaon using the
GUI, include the parameter in percent signs like this: %pname% where pname is the parameter name. The
parameter can contain either numbers or text. The value of the parameter will be plo5ed in the annotaon
string. The ANSYS funcon NINT can be used to round a number the nearest integer, somemes improving the
appearance of the annotaon for large numbers in which the fraconal part is irrelevant (e.g. NINT(123.456789)
= 123 ). For this, the parametric expression should be enclosed in percent signs. Annotaons are usually created
in the GUI, but can be entered with code like that shown below. Entering a single annotaon line containing
Result = %pname% generates log file contents such as:
! The following commands place an annotation on the screen.
! For information only. Use at your own risk.
! In this example, "pname" is a parameter with a numerical value such as 123.456789
/ANUM ,0, 1, 1.2303, -.74699
/TSPEC, 15, .600, 1, 0, 0
/TLAB, 1.010, -.747,Result = %pname%

The last line in the above example contains the string that the user types manually. The other data set up the
string posioning on the screen, and the properes of the characters. To apply the NINT funcon to the
parameter, manually enter Result = %NINT(pname)% as the annotaon:
! For information only. Use at your own risk.
! Type the annotation in one line, so the log file contains:
/ANUM ,0, 1, 1.2303, -.74699
/TSPEC, 15, .600, 1, 0, 0
/TLAB, 1.010, -.747,Result = %NINT(pname)%

The beauty of doing this is that if the value of the parameter pname should change, then when the next plot
command is executed, the annotaon will automacally update to reflect the new value! Try it: a2er creang an
annotaon on the screen that includes a parameter, change the parameter's value, then do a /REPLOT. Running
a macro could get informaon that goes into the parameter that a /REPLOT will automacally put it on the
screen. This makes it possible to automacally include far more informaon than can go into the tle, and to do
it for a series of automacally generated plots or graphs.

Tip 4: Use Small Annotaons:

The default character size seEng for an annotaon is 1. The size of an annotaon can be decreased using the
GUI. A size of 0.6 is quite readable and permits far more informaon to be packed into a plot. Note that there is a
limit to the number of characters possible on an annotaon line – this is character size independent.

3 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

Tip 5: Mathemacal Funcons Available:

Under the Help lisng for the *SET command there appears lists of mathemacal funcons available in ANSYS.
Another list is in the ANSYS User's Guide on APDL, Chapter 14 of the Modeling and Meshing Guide. The
commands are usable anywhere. They include:

ABS(X) Absolute value

ACOS(X) ArcCosine

ASIN(X) ArcSin

ATAN(X) ArcTangent

ATAN2(X,Y) ArcTangent of (Y/X) with the sign of each component considered (see a
FORTRAN manual if you don't know what this means.)

COS(X) Cosine

COSH(X) Hyperbolic cosine

EXP(X) Exponenal

GDIS(X,Y) Random sample of Gaussian distribuons where X is the mean, and Y is the
standard deviaon. Might be used in a Monte Carlo Simulaon to explore
the distribuon of outputs based on randomized loadings and material
properes. For an explanaon, see a good modern engineering design
textbook.

LOG(X) Natural log (to base e)

LOG10(X) Log (to base 10)

MOD(X,Y) Modulus (X/Y), it returns the remainder of X/Y. If Y=0, returns zero (0)

NINT(X) Nearest integer (nice for outputs of stresses to /TITLE or annotaons (see Tip
3 above))

RAND(X,Y) Random number, where X is the lower bound, and Y is the upper bound.
(Useful for Monte Carlo Simulaon, etc.)

SIGN(X,Y) Absolute value of X with sign of Y. Y=0 results in posive sign.

SIN(X) Sine

SINH(X) Hyperbolic sine

SQRT(X) Square root.

TAN(X) Tangent

TANH(X) Hyperbolic Tangent

Note:

The funcon form of the *GET commands can also be used to get informaon from the model ‐‐ see the
APDL guide menoned above for a lisng of available funcons. The APDL guide also gives funcons to
retrieve the values of parameters, both numerical and character. The *VFUN command has a list of
funcons that act on an array entry. The Commands manual lists funcons that act on Element Tables in
the secon "POST1 Command for Element Table". Creavely used, the array and ETABLE algebra

4 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

commands can be surprisingly powerful.

Tip 6: Start 16‐Bit Applicaons before Starng ANSYS under Windows NT:

It has been my experience that some large commercial 16‐bit applicaons will not start properly when ANSYS is
already running. If you start them before launching ANSYS, there will be no problem. If you intend to work with
those 16 bit applicaons in the foreground while the ANSYS SOLVE is running in the background, this will be a
useful p. I have seen other applicaons start up very slowly (e.g. Internet Explorer) or wait unl ANSYS was done
before proceeding (setup.exe for many Windows install programs).

Tip 7: Running ANSYS at Low Priority under Windows NT 4.0:

SeEng Process Priority in NT


Under Windows NT 4.0 the priority
level of individual processes can be
user‐adjusted. To do this, bring up
the Task Manager (right click on the
Windows NT taskbar), and click the
tab for "Processes". Right click on the
process tled "ANSYS.EXE", and "Set
Priority >" comes up. Set the priority
to "Low" to help make foreground
applicaons run more smoothly
while ANSYS is running SOLVE in the
background. This may help more if
you have a large RAM in the
computer.

When ANSYS has completed the


SOLVE process, return the priority to
"Normal" so that ANSYS is not
slowed down when you start doing
plots through the GUI.

Tip 8: Operang on (Scaling) Loads:

You can operate on loads on nodes and elements in order to scale them up or down. Unfortunately, scaling loads
on geometric enes (keypoints, lines, areas and volumes) seems not to be available. If any load on your
structure has been applied to a geometric enty, rather than directly to elements or nodes, that load will be
transferred to the elements and nodes at soluon me. The transfer will overwrite any scaling of loads that you
have applied. (Guess how I figured this out!)

So what can you do about this? Method 1: Transfer the loading from geometric enes to the elements and
nodes, then write a load step file. This records loading on elements and nodes. Delete the loading on geometric
enes, then read the load step file that was just wri5en. Now the loading can be scaled up or down freely.
Method 2: For a faster method, see the "LSCLEAR,SOLID" command, which will not require wring a load step
file. Method 3: Transfer the loading from geometric enes to the elements and nodes, then delete the
relaonship between geometry and the FEA mesh with the MODMSH,DETA command. Method 4: Transfer
loading from geometric enes to the elements and nodes, then un‐select the geometric enes, before
execung SOLVE. The element and node loading can be scaled a2er it has been transferred from geometric
enes. An un‐selected geometric enty will not transfer its loading to elements or nodes when SOLVE is
executed. Warnings: Method 3 ruins the relaonship between geometry and the mesh. Save the model under an
appropriate file name before execung MODMSH,DETA. Method 4 is fine, as long as you do not forget and
re‐select the geometric enes ‐‐ ALLSEL will do this.

Scaling displacements (nodal constraint values) is also possible. One thing that has not worked for me is an
a5empt to reduce applied displacements to zero by using 0.0 as the scaling factor. What did work for me was to
use "_TINY" as a value, which mulplied displacements by a factor of roughly 10^(‐31) and reduced loads to

5 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

virtually zero. A5empts to use 0.0 as the factor resulted in NO change to the applied displacements.

Tip 9: Ramping Loads Down to Zero:

If you are ramping force, pressure, and acceleraon loads up and down as part of an analysis, you may want to
return loads to zero. I do this when I want to inspect permanent deformaon that results from plasc yielding. If
you delete the applied load, the loading will drop immediately to zero, even if you have load ramping turned on.
The thing to do is to set the loading to virtually zero or the scaling factor to virtually zero, not delete the load. It is
important to appreciate that to ANSYS, reducing a load to nearly zero is not the same thing as dele+ng it (zeroing it),
for the purposes of ramping loads. The me substep sizes to use will depend on your model.

SeEng displacements to zero or near zero is, of course, very different from deleng constraints.

Tip 10: Starng ANSYS Graphs at t=0

Graphs start at the first data point, which means that if you do a me‐history trace, you don't get a t=0 data
point. If you leave me as 0.0 on the TIME command, you get the default 1.0 in your output. The only way to get
a graph from zero that I have found is to do a first load step with "t" extremely small, in comparison to other
mes in the analysis, e.g. t=0.0000001. The load at this me must be appropriate so that the response ramps up
correctly. (If your intent was to ramp up from zero load, just leave the loads as zero.) The next load step connues
as usual.

Tip 11: Pressure on Lines:

Applying pressure on a line results in loads being applied to the nodes associated with that line. The loads on the
nodes that the FEA program applies will be appropriate given the formulaon of the elements. If you want to
apply a total force to the line, you can use a *GET command to find the length of the line, then divide the force
by the length and use the result as the pressure.

Note that pressure on a line acts in the plane of the area that is a5ached to the line. If two areas are a5ached at
90 degrees or another angle, two loads are set up, acng in each of the area plane direcons. You can use select
logic on the areas to get some interesng effects as to the direcon in which the applied forces act, but only if
both areas are meshed, and the elements are selected. If you un‐select one of the areas, pressure on the line will
only be exerted in the direcon of the area that is selected. The select logic must sll be in place when you
SOLVE, or else your carefully cra2ed load case can be overwri5en. As above, transferring loads from geometric
enes to nodes and elements, wring them as a load step, deleng all the loads on geometric enes, and
reading in the load step will protect your load case, and make scaling the loads possible. Alternavely, consider
the "LSCLEAR,SOLID" command.

NOTE: Pressures on surfaces follow the deformed shape during a Large Displacement (geometrically nonlinear)
analysis. Forces on nodes maintain their orientaon in space, even under Large Displacement. This difference
will govern how loads should be applied in some models.

Tip 12: Ramping Some Loads, Not Others:

To hold some loads constant and ramp up or down others, run a first load step with all the loads at their starng
values, ramping from zero only if appropriate.

If you want, use an extremely small value on the TIME command, e.g. 0.0000001, and run this as a first load step.
Then set up a second load step, with ramping acvated. Change those loads to be ramped from their starng
values to new values. Hold the other loads constant. The TIME command can be used with a new value, such as
1.0.

An example is the applicaon of a gravity load before other loads are to be ramped up from zero. In some cases,
this could give a more realisc assessment of nonlinear buckling caused by applied forces other than gravity
loading. (You will want to check the codes that regulate your design work before deciding on this. Codes that I
have seen were generally started before FEA was widely available, and do not address this concept. Find out
what is considered good pracce in your industry.) Applying gravity first can give much be5er convergence when
assessing the effect of thermal expansion moving structures across fricon contact elements, where the normal

6 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

load on the contact elements is caused by gravity.

I suspect that this is not possible with the Arc‐Length method. I have not experimented with it, but do not see
how controlled ramping of only some loads could be implemented under Arc‐Length control of applied loading ‐‐
any opinions?

Tip 13: Force and Pressure on Flat Plates or Flat Shells

There is a rule of thumb, that if the out‐of‐plane deflecon of a flat plate or shell is greater than half the
thickness, then membrane forces start to become significant in resisng the applied load. In ANSYS, this calls for
acvang a Large Displacement soluon (a.k.a. geometric nonlinearity). Ignoring this can result in your design
missing out on inherent strength, OR in grossly inadequate underdesign. Know what you are doing.

Tip 14: Linear and Nonlinear Buckling:

Linear eigenvalue (classical Euler) buckling is a "quick" check on a structure, but the ANSYS manuals go to
considerable pains to point out that in many situaons, a Large Displacement soluon (geometric nonlinearity)
needs to be run also as a check on the buckling adequacy of a design. As with linear buckling, nonlinear buckling
may need to be assessed with respect to a number of load cases. In some structures, a diagonal tension field is
developed in a web, and elasc buckling failure does not develop at the first eigenvalues predicted. In other
structures, buckling failure may occur before the first eigenvalue, and only nonlinear analysis will predict this.

Linear eigenvalue buckling has to assume that gap and contact elements are either closed and acve, or open
and inacve. Nonlinear analysis will follow the effects of these elements as they go in and out of contact, when
the loading is applied.

A2er any Large Displacement nonlinear elasc buckling analysis (if it doesn't diverge), see whether the elasc
stress limits have been exceeded (this includes the surfaces of shell elements, and be careful that nodal
averaging does not hide anything). If significantly overstressed, the structure may not be adequate.

Combined bending and axial compression in a beam is a classic place where inadequacy in strength can be
predicted in FEA only by Large Displacement nonlinear analysis (i.e. a linear analysis says it is OK, but a nonlinear
analysis shows it is NOT). For some structures undergoing elasc Large Displacement analysis without contact
and gap elements, the user may want to consider a Southwell plot.

If elasc stress limits are exceeded in the Large Displacement model, it may be desirable to do a combined Large
Displacement and Plasc Deformaon model. If the structure is overloaded, it may begin to collapse (perhaps
only locally), and the Arc‐Length method may be needed for convergence control. A need to strengthen the
structure may be predicted or idenfied. The material properes to use are applicaon domain and industry
specific ‐‐ start by talking to your co‐workers, supervisor, and suppliers.

Tip 15: Nonlinear Analysis and the


Arc‐Length Method:

The basic way to do nonlinear analysis


in ANSYS is to use NR iteraon and
many default seEngs. At mes,
convergence will become a problem;
I've encountered this with shell
structures under compressive stresses.
The arc‐length method can somemes
cope be5er with nonlinear soluons,
because of its ability to follow force‐
deflecon curves that rise and fall. Be
prepared for long run mes if your
model is large.

7 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

My experience with the arc‐length


method is that in its default seEngs
for step size mulpliers, it does not give sasfactory results when compressing some shell‐based models. What
may work is to set a number of me substeps, such as 10, so that each substep is 1/10 of the load step. Set the
Arc‐Length maximum mulplier MAXARC to 1.0 so that no substeps larger than 1/10 of the load step are taken.
Set the Arc‐Length minimum mulplier MINARC to 0.1, so that the smallest load substep is 1/100 of the full load
step. I found this to help considerably. You may want to user a larger or smaller MINARC seEng, but my
experience to date suggests that one should not get greedy with MAXARC. Obviously, you may want to play with
the number of me substeps.

The soluon may sll diverge but it is likely that you will get more informaon than without arc‐length analysis.
You will want to set a terminaon condion for the analysis if buckling is expected to result.

I find it desirable to save the


results at every me substep
when doing this type of analysis
(it helps to have a large hard
drive) in order to review the
process. When you review the
results of a single load case run
under Arc‐length control, the
TIME value on the ANSYS plots
shows the decimal fracon of the
full load being applied to the
model. As you move forward
through the plots, if the
load/displacement curve for the
structure is falling, the decimal
fracon will fall, even though
some displacements are visibly
geEng larger.

As menoned above, something


I have not tried is to get the
Arc‐length soluon control to
ramp some loads and not others,
by having run a preliminary load
step. Is this even possible? If not, then the user may face the prospect of gravity being ramped up and down, in
addion to other applied loads, and the physical realism of the model may be affected.

Tip 16: Animang Results from a Nonlinear or Other Analysis:

It can be helpful to watch the increasing stress levels that result as a nonlinear analysis loading is ramped up. To
create an animaon, first run your analysis with loads ramped up, and a number of substeps. Have all substeps
wri5en to the results file. Do a stress plot of interest to set the type of stress plot to be animated by the macro
that will be run. Make the ANSYS Graphics window as small as you want the animaon window to appear (most
screens will have lower resoluon than a CAD workstaon), keeping the aspect rao correct. Smaller graphics
windows result in smaller animaon files, if size ma5ers. Animaon files under Windows NT (AVI files) from
ANSYS o2en compress very well for storage purposes. Use the PlotCtrls menu selecon on the Ulity Menu, and
choose Animate to get a sub‐menu of choices. Choose "Dynamic Results" to create an animaon of your saved
load substep results with the me shown in the legend. This seems to work only for the last load step (read the
ANSYS macro). The resulng AVI file can be viewed with the media player, distributed, put on a web site, and so
on. The media player can be stepped manually for slow viewing. It makes it easier to watch the changing stress
pa5ern or deformaon as nonlinear effects take over the model.

In animang a changing stress or other contour plot, you may wish to specify the contour levels before
generang the animaon file. View the load step or substep with the worst results as part of deciding where to
set the contour levels.

8 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

I have not found that any of the ANSYS supplied animaon macros do the one simplest thing I want. Usually I
want to animate every substep of every load step stored in the results file. The following simple macro does this
for me under Windows NT. There is virtually no error checking in this macro. Note that this simple macro does
not update element table data at each frame. Consequently it will not work properly for plots of element table
data. If stresses, strains, or other data with amplitude informaon are to be plo5ed, the user may want to fix the
contour map levels ahead of me. The user will want to set the displacement amplitude scaling with /DSCALE in
advance‐‐automac scaling will not be sasfactory. In general, it may not be sasfactory to have /ZOOM,OFF
acve, since the view will change if plots of significant deflecon are included in the animaon. Manually seEng
a view may yield a be5er animaon. Modify this macro as you wish.

This macro must be called from within /POST1. The file that contains the results must have already been
selected, and a prototype plot command executed so that calling /REPLOT will generate the type of plot the user
wants:
! --------------------------------------------------------------------
! MY_ANIM.MAC A quick-and-dirty animation of all of the substeps
! --------------------------------------------------------------------
! For information only. Use at your own risk.
! User must indicate how many frames are to be animated
! This macro starts with the first substep in the results file
! by using the SET,FIRST command internally
! User implicitly indicates how many times to use the SET,NEXT command.
! The number of frames needed must exist in the RST file, else errors.
! NOTE: This does NOT work for plots of data in an element table.
! Plotting element table results would require a macro in which
! the element table results are updated at each substep.
!
! Virtually NO Error Checking Is Performed ! ! ! ! !
!
! What will be plotted is based on /REPLOT therefore, on the last user plot executed
! before this macro is called.
! Scaling, etc. are all based on the last user plot. Only the SET value is updated.
!
! Call with:
!
! my_anim, time_delay_for_frame, number_of_frames_including_first
!
ar11=arg1
*if,arg1,eq,0,then
ar11=0.1
*endif
*if,arg2,ne,0, then
/NOPR
/gsav,xxx,gsav,,temp
/seg,delete
/seg,multi,,ar11
set,first
/replot
*do,_iii,1,arg2-1,1
set,next
/replot
*enddo
/seg,off
anim,1,1,ar11
/gres,xxx,gsav
/gopr
*endif

An alternave to this macro could step through all substeps on the RST file by using a *GET command of the type
*GET,NTOTAL,ACTIVE,0,SOLU,NCMSS to check the number of substeps as the SET,NEXT command is issued. The
parameter NTOTAL will be re‐set to 1 when the animaon is complete, and the *IF and *EXIT commands can
check this and break out of a do loop ‐‐ see Tip 59 below for the example of automacally ploEng all mode
shapes. The user would then not need to specify the number of substeps to plot, improving the automaon, and
leEng the solver use variable substep sizes without the user having to check on the number of substeps that
resulted.

Tip 17: Ge;ng the Mass or Weight of a Model:

9 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

A reader has been helpful by poinng point out that mass (or weight, depending on your units) of keypoints,
lines, areas, or volumes in a model can be retrieved, when a5ributes have been assigned to these enes, by
using commands available in /PREP7. Using the graphical user interface, enter into "PreprocessorOperateCalc
Geometric Items" to see the choices: "Of Keypoints, Of Lines, Of Areas, Of Volumes, Of Geometry". These items
execute the "sum" commands: "KSUM, LSUM, ASUM, VSUM, GSUM" respecvely. If no a5ributes have been
assigned to the geometric enes, unit densies are assumed in reporng mass and center of gravity
informaon. A2er the execuon of these commands, the *GET command can be used to assign to a variable the
implied volume of an area (based on the thickness associated with its a5ributes) or the volume of a "volume".
The volume of a series of areas or "volumes" can also be retrieved with the *GET command a2er a "sum"
command is used. The *VGET command can also be used, where appropriate, in retrieving informaon made
available a2er one of the "sum" commands is executed.

For some unstated reason, ANSYS will not directly give the total weight or mass of a model (retrieved from the
mass matrices of the elements), except to print it to output during the soluon of a problem. The user can run a
paral solve in order to get this weight or mass printed reasonably quickly. In Imperial units, it may be desirable
to convert between pounds mass and pounds weight. There is no *GET command that directly returns the weight
of selected elements. However, the volume of an element can be returned, and the volume of a set of elements
can be put into an element table, and summed.

You can get the weight of many models into a parameter by: step through all material types, selecng elements
for each material type. Get the volume of those elements, and mulply by the density of that material type. Sum
the masses or weights of all the material types. This will not include added mass and mass elements at nodes
(check this carefully against the output mass in the solve module) or other things that I may not have thought of.

Of course, you can get the weight (assuming you gave densies in the material definions) by removing all loads
(don't let thermal expansion, nodal rigid region, nodal coupling, various gap and contact elements, or loads on
constrained nodes trip you up ‐‐ use the minimal constraints needed to stabilize all bodies in 3‐D), applying 1 g
vercal, having constraints on vercal moon, running SOLVE in a linear analysis, and finding the vercal
reacon force. In such a run, a combinaon of the FSUM (select vercally restrained nodes only, with all a5ached
elements) and *GET commands in /POST1 might help you to get the weight into a variable. However, a paral
solve will give the answer more quickly (but not put it into a variable). Depending on your system of units,
remember, you may want to convert between weight and mass.

I base my comment, about the inability of ANSYS to directly return the weight of the model with *GET, on
comments in the manuals on Opmizaon. The opmizaon examples work to reduce model volume, not
weight.

Tip 18: Using Fnc Calls from Macros:

Before using macros for the first me, read about the *USE command in the ANSYS Help manual, in addion to
other relevant parts of the ANSYS manuals. The *USE command help discusses the macro calling parameters and
their local scope. Note a slight difference in calling parameters AR19 and AR20 when the *USE form of a macro
call is used, versus the "unknown command" form.

There are mes when calls from macros directly to the Funcon form of an ANSYS command will be the only way
to get the funcon called with picking. It may be desirable to sent the user a message that explains why the
picking has been requested. The funcon must be called with the exact use of upper case and lower case
characters. An example: Fnc_ENSYM will work, whereas fnc_ENSYM will not, because the capital F is missing.

Tip 19: Use ENSYM and ENORM to Turn Over Shell Elements:

ANSYS has two commands, ENSYM and ENORM, for re‐orienng shell elements so that a set of shell elements can
all have their "top" surface face the same way. This makes applicaon of pressure, contact elements, and review
of results more feasible. This orientaon should be done before running SOLVE; the results are not re‐oriented in
the database when these commands are applied, nor in the results file, so if the elements are re‐oriented a2er
SOLVE, the stress results will no longer apply to the correct shell surfaces and a meaningless mess will result.
These commands work with shell elements that are a5ached to areas, as well as with independent shell
elements. Note: If you clear the elements a5ached to an area, then re‐mesh, the new elements will have the
same orientaon as the area. (Hint: ANSYS ought to do this re‐orientaon for Areas, making it easier to pressurize

10 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

the interiors of containers defined with shell elements.)

See HELP,ENSYM for informaon on what this command will do. ENSYM can be used to "flip over" a shell
element so that the opposite side (Top or Bo5om) is showing. To do this would require reversing the node order
in the database so that Face 1 (Bo5om) and Face2 (Top) get switched.

For more powerful capabilies in re‐orienng shell elements, see HELP,ENORM. This command will search
outward from a chosen element that the user considers "correct", re‐orienng a connected set of shell elements
so that they face the "same way" (this takes some interpretaon), even working around corners. It searches
elements from the selected set of elements, unl it hits the edge of the model, or unl two or more elements are
a5ached to one element edge. The user should experiment with this command in order to understand exactly
what it does, and inspect the model thoroughly a2er ENORM is applied, to verify that the results are as desired.
The correct use of ENORM can make the applicaon of pressure or contact elements to a complex model
substanally easier.

It would be very helpful if ANSYS had a special command that would plot shell elements with the sides colored
according to whether they were FACE1 or FACE2 of the element. This command could be extended to color the
(up to) six sides of solid elements, according to their face number. A similar command for ploEng areas would
help, too. It could even be done for beams displayed with /ESHAPE showing the outer envelope. At present, with
ANSYS 5.3 running on Windows NT, I get different colors for Face 1 and Face 2 of shell elements when
PowerGraphics is ON, and "No Numbering" plus "Colors" or "Colors and Numbers" has been chosen under
PlotCtrls,Numbering. I have not seen this documented. This does not happen for areas, or for solid elements.

Tip 20: Shell Types to Try:

I have used Shell 63 (for Elasc), Shell 43 (for Plasc), Shell 93 (8‐Node, for Elasc & Plasc), Shell 143 (for Plasc),
and Shell 181 (for Plasc). The Revision 5.4 for ANSYS will include a bug fix for a Shell 181 problem. Shell 143 is no
longer supported, but is sll embedded (hidden) in Revision 5.3 of ANSYS for compability reasons.

I have recently found Shell 93 to be useful in modeling some curved structures, because of its ability to follow
curved surfaces. (Shell 63 elements are flat, and can make a mess of a general curved surface under free
meshing.) Shell 93 gave me good convergence for both elasc and plasc Large Displacement (nonlinear
geometric) analysis. It does not like to follow too large an angle of curvature with one element, so the number of
elements on an area fillet can be large. Set the angle subtended by Shell 93 elements during meshing to a value
that is small enough to avoid warning messages. Watch out for aspect rao warnings. (Lack of warnings is not a
complete guarantee of acceptable element shapes.) If the structure has pressurized flat surfaces, Shell 93 o2en
converges be5er when stress sffening is acvated for Large Displacement analysis. Stress sffening for Shell 93 is
acvated at the soluon phase of the analysis, whereas Shell 63 is (apparently) only stress‐sffened by seEng
one of the KEYOPT values. (I have obtained different Large Displacement convergences with Shell 63 with no
stress‐sffening set, with the KEYOPT stress‐sffening set, with stress‐sffening set in /SOLU, and with stress‐
sffening set in both places.) Like Shell 63, Shell 93 also has the virtue of being supported by the Linear/Plus
version of ANSYS for Large Displacement elasc analysis, so models can be moved back and forth.

When forcing mapped meshing of curve‐sided Shell 93 elements on a plane area by concatenang perimeter
lines, I have occasionally had mid‐side nodes created, in the interior of the area, such that there was too much
element curvature distoron in the plane of the element. One fix is to have the elements created with the sides
straight, which is tolerable if the elements are flat, and if it does not cause trouble on the perimeter of the plane
area being meshed. "Trouble" here means poor representaon of curved boundaries‐‐other elements on these
boundaries may need to curve to follow curved surfaces, or it may be desired to have a curved fit to an outside
edge. If flat element sides cause trouble on the perimeter, then start by meshing areas on the other side of the
perimeter with elements that have curved sides‐‐these elements could even be triangular. Next, mesh the area of
interest with the elements sides set straight, then clear the surrounding areas, if the surrounding areas are not
intended to be meshed, or need be5er element shape control. This will leave the plane area of interest meshed
with elements that have straight edges in the interior, and curved edges on the perimeter. This is illustrated by
the following images of an intenonally extreme example. In the first image, a line plot of element edges shows
extreme distoron in the plane. An intended hole is meshed with triangles. All these elements are Shell 93,
having mid‐side nodes.

11 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

In the second image, meshing with mid‐side nodes posioned on straight lines is being chosen.

In the third image, the consequence of meshing the part with straight‐sided elements is shown. The elements at
the hole have a curved side, because the hole is already meshed with curved‐sided elements.

In the fourth image, the elements bordering the hole are shown, a2er the hole has been cleared of elements. The
element curvature at the hole is visible. The interior of the plane area is meshed with straight‐sided elements.
The same problem and a similar fix can be encountered with mid‐side noded SOLID95 brick elements that have
20 nodes. The surface areas of a volume can be meshed with 8‐node SHELL93 elements with curvature, then the
volume meshed with SOLID95 elements with the sides straight, then the shell elements on the areas removed
with the ACLEAR command. This will leave the volume meshed with SOLID95 elements that are curved on the

12 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

surface areas, but with straight sides in the interior. There are rare occasions when this will eliminate element
distoron warning messages.

Tip 21: Moving a Model from ANSYS Mechanical to ANSYS Linear/Plus:

Because versions of ANSYS sell for different prices, a company may own one version to be used for nonlinear
models, and several licenses for linear work, or just for model creaon and results review. Occasionally, a model
will be moved "down" from a fuller version of ANSYS to the Linear/Plus version.

A user can run into difficulty moving a model from ANSYS Mechanical (or ANSYS Structural, etc.) to the less
expensive ANSYS Linear/Plus. The Linear/Plus version limits the number of nodes allowed. Unfortunately, it
implements this control by not allowing node numbers that exceed a liming value. This means that compression
of node numbers (and element numbers) may be required in order to get larger models to be accepted by ANSYS
Linear/Plus. Otherwise, the program quits without an opportunity to compress the numbering (more recent
ANSYS versions may be more tolerant, but the numbering will have to be compressed at some point).

When the node and element numbers are compressed, coordinaon of loading with the numbering expressed in
load step files is lost. The way around this that I have used is to read in the original database, read in a load step
file, compress the numbering, and write the load step file. The process, reading in the original database, must be
repeated for every load case (a macro could be wri5en to automate this.) Finally, the original database is read in,
numbering is compressed, and the new database is wri5en.

Unsupported element types cannot be used in ANSYS Linear/Plus; neither can too large a wavefront (can the PCG
solver get around this?). The unsupported elements need to be deleted or changed before moving the model
(e.g. change SHELL181 to SHELL63). Then, if the number of enes does not exceed ANSYS Linear/Plus limitaons,
the database can be moved to the other program.

The next problem in moving models to ANSYS Linear/Plus, is that nonlinear material models must be deleted in
ANSYS Mechanical (Structural, etc...) before moving the database to ANSYS Linear/Plus. This is because the
ANSYS Linear/Plus program will complain that the material nonlinearity is included, but not accept the
commands to delete it (Hint: ANSYS should add this delete funcon to Linear/Plus.) Of course, I found all this out
the hard way.

On rare occasions, a model from a more recent version of ANSYS may be moved back to an earlier ANSYS version.
If IGES is not sasfactory, a user could use CDWRITE to write out the element and node model and other model
data to a file (the DB opon), then manually clean up the file so that the earlier version of ANSYS could accept it.

13 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

This includes modifying commands for element creaon, a2er deducing what format is needed. Wring the
element data with EWRITE then cuEng and pasng with the CDWRITE file may be easier ‐‐ I haven't tried it. A
user‐wri5en program can expedite cleanup for a large model.

Tip 22: Deleng Nodes that have Nodal Coupling:

When deleng a set of nodes for which some were members of coupled node sets, delete the coupling equaons
BEFORE deleng the nodes. Otherwise, unwanted coupling equaons may be acve if you create more nodes.
The coupling equaons are not automacally deleted when the nodes are deleted‐‐is this a bug? Select the
nodes to be deleted, then delete node coupling equaons for which any nodes are selected, then delete the
nodes. (You will have had to first delete the elements.) Clearing solid model enes is the same as deleng the
elements and nodes simultaneously.

I find it very helpful to turn on the symbols for nodal coupling when checking for proper use of these details.

Tip 23: Convergence with Shell FEA Models in Nonlinear Analysis under ANSYS:

First, remember that there are three basic kinds of nonlinearity: (1) Large Displacement (geometrically nonlinear)
analysis, and (2) Plasc Material properes are the obvious types. In addion, nonlinear soluons occur (3) when
nonlinear elements such as gap elements, hook elements, and surface contact elements are used. Because of (3)
it is clearer to refer to a "linear" analysis as "small displacement elasc", since "linear" may be perceived as
meaning that there are no nonlinear elements present. A nonlinear analysis will take longer, usually
considerably longer, than a linear analysis. For a large finite element model, it helps to have a computer with an
extremely fast CPU, large RAM, large hard drive, and fast hard drive data transfer (high‐speed SCSI may help on
PC's) for nonlinear analysis.

In ANSYS, the Shell 63 element will do Large Displacement, but is NOT capable of material nonlinearity
(plascity). Shell 43, Shell 143, and Shell 181 are capable of both Large Displacement and material nonlinearity.
These four elements are 4‐node quad elements. ANSYS also has an 8‐node shell element, Shell 93. The Shell 93
element is capable of both Large Displacement and material nonlinearity. Shell 93 has the advantage that it can
follow a curved surface. There are also shell elements for composite materials and for P‐element soluons. I will
restrict my comments to the basic shell elements: 63, 43, 143, 181, and 93.

The elements should have acceptable aspect raos, not be ridiculously large or small, not be pathologically
deformed, and not generate warnings about being warped. If warped quad elements are unavoidable during
meshing, it may be desirable to use either small triangles, or the Shell 93 element. Note that within the ANSYS
manuals, high order elements are not considered to be ideal for nonlinear work. However, I seem to have had
some success with the Shell 93 element (can't say if the results were ideally accurate). You can evaluate the
model quickly by doing a paral solve (Paral Solu in the GUI), only generang the element matrices, and geEng
warnings (if any) and other informaon in the ANSYS Output window.

If a Large Displacement soluon is chosen, some soluons are improved by seEng Stress Sffening before
running the solve process. Stress sffening for elements 63, 43, 143, and 181 can (apparently) only be set with
one of the KEYOPT values (Keyopt(2)) for the element (see Opons when using Add/Edit/Delete to add element
types with the GUI). Some beam elements are like this, too. It apparently (I find the manuals difficult to interpret
on this) can NOT be set within the Solve module, even though the GUI has a selecon box for Stress Sffening.
However, I seem to have had convergence differences with Shell 63 with stress‐sffening set and not set in the
solve module. For Shell 93, stress sffening IS set within the Solve module, by choosing it under Analysis Opons
in the GUI (SSTIF). The use of stress sffening for convergence improvement is contraindicated by some
condions such as the substanal use of nodal coupling or nodal constraint equaons... see the ANSYS manuals
on this. Note that SSTIF is NOT the same thing as the command PSTRES.

A second thing that helps many nonlinear soluons (both Large Displacement and plasc) to converge when
substeps are being used is to acvate the Predictor (PRED) in the Solve module. (This may be more of a hindrance
than a help when gap and other nonlinear elements will be changing status frequently.)

There are other seEngs that can be tried when a5empts at convergence are not working. I usually sck to leEng
the program decide how to use Newton‐Raphson iteraon and adapve descent in the Solve module. Under the
Nonlinear seEngs of the GUI, the user can modify the Convergence Criteria. I o2en use only convergence on

14 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

forces (not moments) when analyzing shells if I am not inpuEng any moments directly. I usually reduce the
number of Equilibrium Iteraons to 15 when doing shell models, preferring to use smaller substeps instead.
However, in a model with gap or contact elements it may be desirable to have a much larger number of
Equilibrium Iteraons. I rarely try Line Search.

Making a good choice of me substep sizes is crically important in geEng models to converge. If shell models of
flat plates subjected to pressure or perpendicular forces are included in the analysis, the shell will at first act as a
flat plate in bending. Once the shell has curved, by movement as small as half its thickness, the shell will start to
carry the applied load with membrane forces. In a model of this type, starng with very small substeps (e.g. 1/100
of the full load) may be needed to achieve convergence. I would start with a very small first substep, but allow
the largest substep to be as large a fracon as 1/4 of the applied load. If there are no perpendicular loads but the
loading is causing Large Displacement, or if buckling is to be considered, it is likely that small mesteps will be
needed toward the end of the force applicaon ramp. Where there is no pressure or perpendicular force on flat
shells, I would start with a substep such as 1/10 or 1/4 of the applied load, but allow a minimum substep as small
as 1/100 of the full load. If these approaches will not work, it is likely that convergence control commands in
addion to me substep size will need consideraon.

If the structure is buckling or undergoing plasc failure, or "simply will not converge" it may help to use the
Arc‐Length method. As I have noted elsewhere, I don't use the default Arc‐Length seEngs. I usually start with a
number of substeps (NSUBST), and don't let the Arc‐Length solver increase the size of a step beyond my
maximum substep size. I let the Arc‐Length solver use a minimum step size that is 1/10 or 1/100 of my substep
size. I let the Arc‐Length solver use a maximum step size mulplier of one. The Arc‐Length method can follow a
rising and falling force‐displacement relaonship. I find PlotCtrls/Animate/Dynamic_Results to be useful in
reviewing the behavior during an Arc‐Length analysis, and other nonlinear analyses. I prefer to save the results at
every substep when doing this (Output Ctrls). When using Arc‐Length analysis, it is usually desirable to set a
criterion to stop an analysis (NCNV). I usually use maximum displacement as the criterion for shell work.

Remember to ramp up your loads, permit automac me stepping, and in the NSUBST command, allow the
program to bisecon by seEng the maximum number of substeps greater than the minimum number of
substeps.

If you are having trouble with convergence, save the results at intermediate substeps so you can review the
stress and displacements. If you are doing combined Large Displacement and plasc deformaon, and having
trouble with convergence, consider a study in which you do (1) an elasc small displacement analysis as a check
on element shape, loading, and constraints, (2) a Large Displacement elasc soluon, and possibly (3) a plasc
small displacement soluon. If these work without significant warning messages, you should be making some
progress. If gap or contact elements are being used, consider (4) so2ening the normal and tangenal sffness
values in a preliminary analysis (KN and KS). You can also (5) try relaxing the convergence criteria on force and/or
moment error. If desperate, a coarsely meshed model may improve speed enough for you to study what helps
get an answer. These preliminary studies may help you to find what seEngs help you to get convergence or
discover modeling problems before you do more me‐consuming accurate analysis. If you are trying a new
technique, consider tesng it on a toy‐sized problem, before applying it to a large industrial‐sized problem that
runs for hours or days, in order to learn the peculiaries and pi[alls of a parcular me‐consuming method.

If gap or contact elements are the only nonlinearies in a model, consider substructuring the linear regions of the
model. This can result in a tremendous increase in soluon speed. If only a sub‐region of a model will behave in a
nonlinear manner, it may reduce soluon me to substructure the region that can be regarded as acng in a
linear manner. This speedup effect or may not occur with large displacement modeling, when the substructure
itself will be undergoing large displacement ‐‐ I have done only limited tesng of this technique. See below for a
brief discussion and for simple examples of substructuring.

Tip 24: Working with Load Step Files in ANSYS:

Load step files can be used to automate the applicaon of a number of different load cases on a structure. A load
step file contains loads on elements and nodes. It does NOT contain loads on geometric enes. Consequently, a
load step file can be generated a2er all loads from geometric enes have been transferred to a model. A2er all
loading on geometric enes has been deleted, the load step file can be read back in, recovering all applied
loads. Alternavely, consider the "LSCLEAR,SOLID" command. These loads can then be scaled.

15 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The user needs to be careful when manipulang load step files. The load step files may contain the KUSE
instrucon telling ANSYS to re‐use the TRI file if the constraints have not changed. If the user deletes a load step
file, changes the order of their execuon, or manually modifies their contents, invalid analysis might result.

If the model is re‐numbered a2er load step files are generated, the node and element numbers in the load step
file will no longer be synchronized with the model, and will be invalid. A way around this is menoned elsewhere
in these notes (See Tip 21).

The reader should take note of the ANSYS user guides comments on the LSCLEAR command. This deletes all loads
and resets all load step opons to their defaults. This can "clean up" the load step data before using LSREAD to
read a load step file for modificaon. What this implies is that the load step execuon process does NOT execute
an LSCLEAR command when a load step file is read in. If it did, then ANSYS would have to implement substanal
checking to see whether a TRI file was safe to re‐use, under the frontal solver (TRI file re‐use saves considerable
me). Load step implementaon can cause havoc when the user employs load step files in a manner for which
the method was not designed. It may help to read the contents of the LSSOLVE.MAC macro in predicng what
will happen, and to see what LSSOLVE does to avoid trouble. The LSSOLVE.MAC macro at ANSYS 5.3 includes
some undocumented commands including DMARK, FMARD, SMARK, BMARK, and a *GET command that
retrieves the error number in the /SOLU process. It also uses an "LSCLEAR,SOLID" command that removes loads
on geometric enes before reading in load step files. It selects all DOF labels, sets xCUM labels to "replace", and
does a few other things. I do not consider the manuals to pursue this topic adequately ‐‐ a user ought to read the
macro.

The ANSYS manual comments on the LSREAD command. The command does NOT clear ALL current loads on the
model when it reads in a new load step file (it does clear some... read the manual).

When using load step files: If loads on nodes and elements are set with BF and BFE commands (for example
applying temperatures for a thermal deformaon stress analysis), then if you set up a subsequent load step, if
these temperatures are to be returned to ambient it may be necessary to use the BF and BFE command to set the
nodes and elements to the reference temperature (by default 0) rather than just deleng the loads using BFDELE
and BFEDELE and using BFUNIF to input the uniform temperature. It may help to use commands such as
"nsel,s,bf,temp,‐999,99999" and "esel,s,bfe,temp,‐999,99999" to select all of the nodes or elements to which
temperatures have been applied, if you are going to change them. Be very careful with the BFE command. If you
set the value of the temperature at, for example, four locaons on an element with BFE, and in a later load step
set the value at only two locaons within an element, the temperature at the other two locaons will sll be
"hanging around" at the previous value. It is very easy to make this mistake when running a series of load step
files. (Another thing I found out the hard way, in a model where both piping creaon commands and beam
elements were used.)

If the user is deleng displacement constraints using DDELE, and then wring an addional load step file, the old
constraint may sll be present when the series of load step files is read in under LSREAD; check for this in your
results. Be careful with this. It may compromise the use of load step files, or require some intervenon like
wring an input file that calls load step files in using LSREAD, implemenng fix‐up commands as needed ‐‐ be
careful that a TRI file is not re‐used because a load step file contains "KUSE,1" when your changes to constraints
mean that a new TRI file should be generated. Statements in the LSSOLVE.MAC macro can provide guidance on
using LSREAD effecvely. You may need to look inside the load step files with a text editor. Be warned that
changing the contents of load step files with a text editor can be tricky because of unintended side‐effects.

In general the user will have to be careful that the "residue" from the loads and displacements from one load
step do not appear inappropriately in later load steps. This is true when generang the load step files in the first
place, and may apply when reading in load step files with LSREAD. As noted, LSSOLVE.MAC uses cleanup
statements.

The user will have to be careful to change loads between load steps in a manner consistent with geEng smooth
ramping of loads and displacements, for those cases when this is desired, either for transient analysis, or for good
nonlinear analysis convergence, or when intermediate results are desired at in‐between loads.

Before reading in load step files to solve with LSREAD, ensure that loads on geometric enes and elements and
nodes have been deleted, unless you are keeping them intenonally (as noted, loads on geometric enes

16 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

overwrite loads on elements and nodes). As noted, LSSOLVE.MAC in ANSYS 5.3 contains the command
"LSCLEAR,SOLID" to remove the solid model loads on the model before proceeding.

If Large Displacement analysis is going to be used in analyses run by load step files, the NLGEOM flag must be set
in the first load step file. There will be no NLGEOM command generated in subsequent load step files. Because
ANSYS does not permit the kind of analysis to be changed when applying a series of load steps, error messages
will be result if the user changes the value of NLGEOM in the middle of a set of load step files.

Tip 25: Plo;ng Shell Stresses ‐‐ Surface, Mid‐Plane Stress, Load Paths, ESYS and RSYS:

In the ANSYS database, shell stresses


(and strains) for the basic shell
elements (63, 43, 143, 181, and 93)
are reported at the top and bo5om
surfaces of the shell element. The
user can has four opons in ANSYS
5.3 for ploEng shell stresses (and
strains). Three of them are selected
with the commands: "SHELL,TOP" ,
"SHELL,MID" or "SHELL,BOT". These will cause ploEng of shell stresses (and strains) to be based on the values at
the top surface, mid‐plane, or bo5om surface of each shell element. This is a bit misleading. The mid‐plane stress
is based on the average of the stresses at the top and bo5om (this may not be correct, at least for some elements,
considering Sec+on 2.3.4 of the Theory manual, which refers to stress on the mid‐plane of a shell element separately
from the top and bo2om, and forms the force per linear unit from a weighted average of top surface, mid‐plane, and
bo2om surface stress ‐‐ what's going on here?). What constutes the top and bo5om of a shell element depends
on the element's orientaon when it was defined (see elsewhere in these pages). It is possible to have adjacent
elements, one with a "top" surface poinng upward, and its neighbour with the "top" surface poinng
downward. In complex structures it happens all the me. If nodal averaged plots are done, for example with
"PLNSOL,S,EQV", when either top surface or bo5om surface ploEng is chosen, then with such adjacent
elements, the plo5ed top surface and bo5om surface results will get blended, causing a misleading mess to be
displayed. (See Tip 19 for commands that can re‐orient shell elements.)

More insight into the flow of stress in a model can be gained by ploEng the stress vectors, using the "PLVECT,S"
command. With shells, these vectors will be plo5ed for the mid‐plane principle stress components. At mes you
will want to use vector graphics with no hidden surface removal, to give the best view of these vectors. If there is
local compression, the vectors point inward. These vectors can give insight into load paths in a structure.

Where there are intersecons of planes of shell elements, e.g. corners or "Tee" intersecons, or where elements
of differing thickness meet, the averaging of node stresses can render local stress plot informaon meaningless at
the intersecon. This is true of both surface and mid‐plane stress plots. This is one way in which excessive
stresses will be unintenonally missed.

Any me that nodal averaged ploEng is done, it is possible for the averaging to "wash out" local stresses that
may be important, yet it is common to do nodal averaged plots because of their much cleaner appearance (I do
them myself). The fourth opon in ploEng shell stresses is to switch on the ANSYS Powergraphics feature. This
causes shell results to be displayed, even averaged, for the visible surface. Opons acvated with the AVRES and
/EFACET commands can refine the way the results are plo5ed under Powergraphics (look them up).
Powergraphics has the opons to disconnue the averaging of stress contours where there are certain
disconnuies in the material or geometry in the model. I'm going into this detail, because a high stress that is
washed out by nodal averaging could be a stress that causes serious fague or other damage, such as cracking, or
a weld being torn apart.

The only shortcoming is that Powergraphics will not work with mid‐plane stress. The user has few opons here.
Somemes it is important to select only regions of a model when doing nodal averaged mid‐plane stress plots
(using "SHELL,MID", without Powergraphics) so that the averaging does not wash anything out. A mid‐plane
stress plot without Powergraphics can be done for element stresses, using a command like "PLESOL,S,EQV". This
will look messy, but at least it doesn't hide an extreme stress. An alternave I used is discussed elsewhere in
these pages: I wrote a macro to get the mid‐plane averaged stress (all components) at every node of every

17 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

element (a given node has different results with reference to each of the elements to which it is a5ached, so a
given node will be looked up as many mes as the number of elements to which it is a5ached), and transfer it to
the top and bo5om surfaces, so that Powergraphics would plot mid‐plane averaged stress neatly, with
disconnuies. CAUTION: This ruins the results database. The macro is extremely slow to run. The method
(under Powergraphics) does, however, give far be5er looking plots than using the "PLESOL,S,EQV" command to
plot mid‐plane element stresses without nodal averaging (without Powergraphics).

LOAD PATHS: The macro I menon above could be modified to mulply the mid‐plane averaged stress
components by the local shell element thickness at each node. The resulng values would yield a contour plot of
force per linear inch (or other dimensional unit) "averaged" at the mid‐plane of the shell ‐‐ this could help to
make load paths visible in a complex shell structure. "PLVECT,S" plots that would now show arrows
corresponding to the load‐per‐unit‐length on the mid‐plane and show the principal direcons in which it points,
helping to illustrate the load paths. This macro would also ruin the database for any other use. Before ploEng
"load‐per‐unit‐length" data, the user needs to decide how to orient the results data coordinate systems with
RSYS for informaon such as Sx or Sy that contains direcon informaon (stress and strain with EQV does not
contain direcon informaon).

Note: The Output Data secon on Shell63, Shell43, and Shell93 includes In‐plane element X, Y, and XY forces
called TX, TY, and TXY. Consequently, shell "force per unit length" data can be obtained directly in an Element
Table very quickly, though with a resoluon of one value per element. (For Shell63, 43, and 93, use SMISC seEng
1, 2, or 3 when generang the element table data.) The Theory Manual uses the term In‐plane forces per unit
length while the elements manual refers to just forces as above ‐‐ a simple test I ran shows the data to be force
per unit length. The elements manual ought to clarify this. The Element Table data can be contour plo5ed, but
there are no principal stress style vector plots of table data. (Clarificaon: PLVECT can plot vector arrows based
on 3 ETABLE columns, but not the double‐headed arrows for an ETABLE as in a principal stress vector plot.) The
Elements manual shows the TX, TY, and TXY values not being available under "Miscellaneous Element Output" at
every node, only at the centroid. The Elements manual does not explicitly show that S,EQV or S,INT stress
informaon can be extracted at the mid‐plane. Their value is extracted with the component name method. Brief
experimentaon shows that if the command "SHELL,MID" is followed by "ETABLE,SEQVMID,S,EQV" that the
column called SEQVMID will contain an average SEQV value for the mid‐plane. If "SHELL,TOP" or "SHELL,BOT" is
called, the ETABLE value of SEQV will change if the update command "ETABLE,REFL" is executed. Warning: When
ploEng ETABLE shell element element table data with PLETAB the plot informaon legend will read TOP, MID, or
BOT according to the current seEng of the SHELL command. This bit of informaon DOES NOT reflect the SHELL
surface seEng condions in effect when the ETABLE data was stored, and could be misleading. For this reason,
the label used for the column should indicate the shell layer seEng in use when the element table data was
loaded, as with "SEQVMID" above. Doing an element table update with ETABLE,REFL will re‐fill columns with
results data. A change of the SHELL layer seEng can change stress results that are loaded in an update.
Consequently, loading shell element data must be handled very carefully in order that the layer choice is
controlled. Element table data from the CALC module (adding columns etc.) is NOT updated and has to be

18 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

explicitly re‐calculated.

NOTE Also: The direcon of the element table load‐per‐unit‐length TX, TY, and TXY is as taken from the element
in Element Coordinates. Unlike SX or SY, the values of TX, TY, and TXY appear to be insensive to the RSYS seEng.
The Element Coordinate System will vary orientaon from element to element, parcularly under free meshing,
and affects the usefulness of TX, TY, and TXY data. The element table data can be processed by the user to yield a
new table column containing the "load‐per‐unit‐length intensity" in the sense of a Mohr's circle, giving rapid if
somewhat coarse plots of load path informaon along the shell mid‐plane. The plots will usually be more
informave without nodal averaging. Secon 2.3.4 of the ANSYS Theory manual discusses Forces and Moments
per unit length on shell elements ‐‐ the suggeson is that internally, at least for some shell elements, the
mid‐plane stress is NOT simply the average of the top and bo5om stresses. The way around the problem of
element coordinate systems being arbitrarily oriented is to define local coordinate systems before meshing areas
(or otherwise generang shell elements) and use ESYS to get all shell elements oriented with the local coordinate
systems. ESYS assigned to elements can be modified a2er the fact but before SOLVE, by using the EMODIF
command in /PREP7. It may be desirable to have a local coordinate system aligned with each flat area to be
meshed with shell elements so that all shell element coordinate systems can be aligned in the plane of the area
‐‐ a me consuming process unless a macro is used. Curved surfaces would be difficult.

The problem of orienng coordinate systems in the ploEng of results is illustrated by the images below. The first
shows 3 elements that were created during free meshing. The elements are plo5ed using vector graphics, with
the element coordinate systems shown. Each element has its coordinate system oriented differently. The image
below it lists the elements and their node numbers. Look at the sequence of node numbers for the three
elements to see why the element coordinate systems point in such different direcons.

The next two images show a plot of TX done from an element table. The element table was filled by the TX values
for the elements (this is the load‐per‐unit‐length in the element coordinate system X direcon). The values differ
so much from element to element because of the difference in the element coordinate systems. The plot
consequently tells us too li5le. The following element plot of Sx shows the stress in the X direcon. The results
are shown in the global coordinate system.

19 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The final images in this secon show a group of Shell63 elements that have had their element coordinate
systems aligned with local coordinate systems at the me of the creaon of the elements, by the use of the ESYS
command. This will permit element table results TX, TY, and TXY to be aligned in a known manner. This also
permits Sx, Sy, and Sxy to be aligned in the plane of the elements creaon if RSYS,SOLU is acve when ploEng
stress results. Knowlege of the alignment of the loads and stresses can make plots more useful in understanding
load paths, reduce the total number of plots required in model assessment, and help facilitate an evaluaon of
loading on welds. The first plot with vector graphics shows the elements with their element coordinate systems.
Note that they are aligned. There are two local coordinate systems at work in this example ‐‐ they are numbered
11 and 12 and their symbols are plo5ed. Elements have been created aligned with number 11 in one plane, and
aligned with number 12 in the other plane of elements. A line pressure has been applied in the global ‐Y
direcon. The second plot with raster graphics is of Sx at the shell mid‐plane. Because RSYS,SOLU was acve
when the Sx plot was generated, there are Sx values shown in all elements. If RSYS,0 were acve when the Sx plot
was done, the plane of elements that is perpendicular to the global X axis would show zero stress in the X
direcon in this example.

20 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

There is an alternave to using ESYS and RSYS,SOLU to align element coordinate systems for the purposes of

21 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

stress plots like Sx, Sy, and Sxy. During postprocessing in /POST1, a local coordinate system can be aligned with
the plane of shell elements of interest, and RSYS set to that local coordinate system, before ploEng Sx, Sy, or Sxy.
However, this would do nothing for TX, TY, and TXY which depend on the element coordinate system and are
generated in an Element Table.

I leave the topic of whether to plot surface or mid‐plane shell stresses to the reader to determine. Too much is
industry or applicaon domain specific. Hint: Check mid‐plane plus both shell surface stresses. Surface stresses
and strains can cause local bending, cracking, breaking of protecve coangs, fague, and imply possible
overload or prying of welds and fasteners, and can highlight other troubles.

Tip 26: Nodal Coupling (CP) versus Rigid Region (CERIG):

I have seen analysts mistakenly use nodal coupling where rigid region constraint equaons should have been
employed. (The nodes concerned were not at the same locaon in space.) Rigid region constraint locks together a
selected set of nodes so that they translate AND rotate in space as if they were locked together by an infinitely
sff structure. Nodal coupling locks together selected degrees of freedom (translaon and/or rotaon)
individually, so that the same degree of freedom value will result for the nodes in the coupled set. Nodal
coupling will not combine the rotaons and translaons that are necessary to imply rotaon as a rigid body in
space.

Note that rigid region constraint may not be appropriate for Large Displacement, when the displacement
rotaons are significant (sin(theta) differing from theta, etc.). This is because ANSYS uses a linear approximaon
to the rigid body rotaon matrix. A rigid region grouping can be implied by tying nodes together with extremely
sff beam elements (zero‐mass beam elements a few orders of magnitude sffer than the structure to which they
are a5ached.) The beam elements should have the advantage that they work under Large Displacement. The
beam elements should not be too sff, or ill‐condioned matrices could result. If the beams are of very widely
varying lengths, then some may be too sff, others too flexible ‐‐ remember that flexibility is proporonal to
length cubed.

I ran a model in which about one thousand beam elements were used to posion gap elements. These beam
elements would ideally have been infinitely sff. I needed elements, instead of nodal coupling or constraint
equaons, because of thermal expansion consideraons. The beam elements were widely varying in length. This
created solver trouble, unl I wrote a macro that assigned each beam element a unique REAL value, which set
values for each BEAM4's Ixx, Iyy, Izz, and Area as a funcon of the element's length. I found it sufficient to set
their sffness a couple of orders of magnitude sffer that contact sffness for the gap elements.

Turning on the symbols for nodal coupling and for nodal constraint equaons is very helpful in reviewing the
correctness of a model.

Tip 27: Vibraon Modes with Pre‐stress:

Calculaon of natural frequencies and modes of vibraon CAN be done with pre‐stressing of the structure under
ANSYS. There is a "PRESTRESS" flag to set under modal analysis. This is available in the dialog box for Modal
Analysis Opons. First, do a stac analysis with the prestress flag set. Exit Soluon (click Finish or enter "/fini").
Re‐enter Soluon, and do a modal analysis with the prestress flag set again. This does not seem to work when
the stress run is done with Large Displacement acvated.

I leave the queson of how a performer plays music with a hand saw and a violin bow as an "exercise for the
reader" :‐)

Tip 28: Creang New Elements by Copying or Reflecng Exisng Structure:

In order to create new elements by reflecng or copying exisng elements, there are a few things to do. First,
select the elements to be copied and get their nodes with NSLE. Copy or reflect the nodes, nong the nodal
number offset that will be used ‐‐ write it down. Copy or reflect the elements, using the nodal offset number that
you wrote down. ANSYS should default to a nodal offset number equal to your highest numbered node. If you
make it smaller, you run the risk of changing the locaon of nodes that already exist, resulng in a lovely mess. If
you are running something like ANSYS/ED you may want to compress your node numbers first, for if a node
number results that exceeds the ANSYS/ED limit, the program will terminate immediately (the more recent

22 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

ANSYS revisions may give a non‐fatal warning message and quit some me later if you don't clean up). You could
compress the node numbers, and then make the offset number equal one plus the difference between the
maximum node number of the whole model and the lowest node number of those nodes to be copied or
reflected. You can find these node numbers with *GET commands. (Remember that compressing node or
element numbers will destroy synchronizaon with Load Step files.)

The same nodal offset number will need to be used if nodal coupling is to be copied as well. In order to copy
nodal coupling, use "Generate Coupled DOF Sets with same DOF" for which you will need the same nodal offset
number. Do a replot to see the newly created nodal coupling. Cauon: Be sure that if nodes were deleted earlier,
that nodal coupling equaons that in the past included those deleted nodes were also deleted. If you forget, you
may get a pre5y mess.

Remember that if there are nodes on the plane of reflecon, new nodes will overlay them. Merge commands
may be wanted for the nodes on the reflecon plane. Now the tricky part: elements lying in the reflecon plane
(shell elements will do this) get generated with the node order reversed, because of the mirror imaging. They Will
Not Merge with the element from which they were reflected. They may have to be deleted, depending on what
you are trying to accomplish. Alternavely, do not select elements that lie in the plane of reflecon when
reflecng the structure. You sll need to reflect the nodes on the plane of reflecon, in order to reflect the
elements that will join them to the remainder of the reflected structure, so the nodal merge will sll be needed.

Tip 29: Adding to a Model Comprised of Elements and Nodes Only:

It may happen that a model that consists of nodes and elements only has to have a secon replaced, or requires
the addion of more structure. The way to a5ach new geometry onto exisng nodes and elements is to: (1) Place
keypoints on the nodes onto which new geometry is to be built (i.e. gra2ed). (2) Join these keypoints with lines.
(3) Set mesh density along these lines to only one element. (4) Build new geometry outward from these keypoints
and lines. This gets messy if you are building solids. (5) Mesh the new geometry. (6) Select the nodes (new and
old) along the interface between the old nodes and the nodes of the new geometry. (7) Merge ONLY these nodes
along the interface using the NUMMRG,NODE command. Alternavely (much more work unless a macro is
wri5en or the CPINTF command is used correctly), fully couple the PAIRS of nodes with the CP command. In the
event of elements with mid‐side nodes, lines will have to be created curved so that a single line spans three
keypoints placed on the three nodes along the edge of an element. It is probably advisable to connect elements
with mid‐side nodes to other elements with mid‐side nodes.

This a5aches the new geometry and mesh to the old elements and nodes. Be sure to double check that the
merging has been done correctly and according to your intenons ‐‐ I have found this to be a surprisingly
error‐prone operaon.

Tip 30: Zero Mass Beam Elements Form Rigid Region:

An analyst could use very sff beam elements (a few orders of magnitude sffer than the surrounding structure)
in order imply a rigid region grouping of nodes, which works under Large Displacement (a CERIG group does not
work with large displacement). This is an old FEA trick ‐‐ it is not perfect. A separate material should be created
for these beams, and be given zero mass (set the material density to zero) so that no gravitaonal or other ineral
load acts on the material. A thermal expansion coefficient should be input if appropriate ‐‐ it would usually be
idencal to the coefficient value for the structure that it approximates.

I wrote a macro to create a rigid region using beam elements. It is called a2er the set of nodes to be connected is
selected. The lowest numbered of the set of nodes is a5ached to each of the other nodes in the set by a beam
element. The beam element to use has to be set up in advance, and the appropriate MAT, REAL, and TYPE set by
the user. A macro like this is very fast to run. Cauon: Such a macro would become complex if it checked for
duplicate nodes at the first node locaon (ANSYS can't use zero length beams), and checked for widely varying
beam lengths. This is not a guaranteed method.

Tip 31: Turn off Symbols When Changing a Model aDer Soluon:

If you have run SOLVE, the results database will be full of data. If you then change a model, and create anything
that plots a symbol, all symbols become acve, and plots become extremely slow. Turn off symbols with
/PBC,ALL,,0 to speed things up. I put this command in the Toolbox for convenience. I have found that ploEng can

23 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

become slow with very large models when loads have been applied, and even when applied and deleted.
Presumably ANSYS is checking to see if any symbols should be shown. The ploEng speeded up considerably
when symbols were turned off with "/PBC,ALL,,0" even though there were, in fact, no symbols to be plo5ed.

Tip 32: Are the "Free‐Free" Vibraon Modes Relevant?:

Simple supports on a structure may be appropriate for stac analysis and gravity loading, since the structure will
"sink" unl the simple support reacts enough to withstand the applied load. If a modal vibraon is excited, small
amplitude vibraons may result in very li5le response from the support, and vibraon similar to a structure that
is free in space may result (this is obviously very problem dependent). If so, it may be desirable to run a modal
vibraon analysis with no constraints. More than six modes must be requested, since the first 6 represent the
free translaon and rotaon, and give Zero eigenvalues. A be5er approach would be to characterize the
flexibility of the constraint points. With some structures, you may get a few surprises, as torsional and other
vibraon modes appear.

Tip 33: Selecng a CAD or FEA System ‐‐ Cover Yourself

It is common to evaluate a few CAD or FEA packages when trying to make the right choice for a purchase. Watch
out for this stunt: (I've seen it done, and been threatened with it once (I laughed at her).) A losing vendor writes
a le5er to your boss, or even to the head of your company, claiming that the engineers are incompetent (stupid,
uninformed, can't spell, and so on) and making a huge mistake. If the boss is not an engineer and cannot
understand the issues, this could get awkward. (Certain Dilbert cartoons come to mind.) Warn your boss(es) in
advance that a few vendors pull this move and that you and your group will evaluate the products in a thorough
manner. Write down some criteria and your assessments. Also, be careful that you cannot be accused of leaking
informaon unfairly from one vendor to another ‐‐ date your correspondence carefully, and work through your
purchasing department if that is appropriate at your firm. Some sales‐types are very greedy for their
commissions, and petulant when they lose. (Names will not be menoned, to protect the guilty. If you've been
around the block a couple of mes, perhaps you can make a few guesses.)

(The ANSYS vendor I've dealt with has been very professional.)

Tip 34: Creang Lines Perpendicular to, or at Angle to Exisng Lines

When creang structures in the /PREP7 poron of ANSYS, I find that the commands
that create lines that are perpendicular to exisng lines, or at an angle to exisng
lines, are extremely useful. Look at the commands LANG, LTAN, L2ANG, as well as the
others. These commands break lines where new lines intersect, even though the
original lines are already a5ached to areas. Since I o2en model shells that are to act
as if they are welded together, I need the lines to be shared where areas contact
each other. These commands give the connecvity I need.

The command that meets another line at an angle may do be5er if it is entered manually, with the first guess of
the contact point set at 0.0, 0.5, or 1.0, depending on your intenon. This o2en succeeds when the interface
command fails.

Tip 35: Use the /UI command in Your ANSYS Toolbar to Bring up GUI Dialog Boxes

Take a look at the /UI command in ANSYS. You can use it in your Toolbar to acvate certain GUI dialog boxes with
one‐click simplicity, instead of finding your way though the menu system. I somemes get odd results from the
Hard Copy command when I do this ‐‐ I have no idea why.

Tip 36: Reacon Force, Nodal Force, and Load Paths

I worked on a model subject to aerodynamic pressure and gravity load. We needed to know the load that the
structure would apply to its foundaons. Prinng the Reacon Force would give this value, however the +/‐ sign
is in the direcon of the force that the constrained node (or nodes) applies TO the structure. If nodes are selected
with the three commands NSEL,S,D,UX $ NSEL,A,D,UY $ NSEL,A,D,UZ the Nodal Force at the constrained nodes

24 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

can be printed. This is the force with which the nodes press on the supports. (NOTE: You may need to include
nodes where there are constraints on rotaon, depending on what you are modeling.)

WARNING: A number of things can go wrong with this approach.

1. If you ask for nodal forces without liming the node selecon to nodes where there are constraints, you
will get nodal forces wherever forces and pressures have been applied to your structure. (For the curious,
prinng nodal forces when only pressure has been applied to shell and high order elements will illustrate
that FEA so2ware inputs a complex set of forces and moments because of how the elements are derived
from first principles. What is being printed is the force with which the nodes react to the forces input from
outside ‐‐ if a moment is input, a nodal "force" moment is output in reacon.)
2. If an input force has been applied to a constrained node, the nodal force and the reacon force
magnitudes will differ. When I tested this, the reacon force that ANSYS listed was modified by the
presence of a force applied directly to a constrained node, whereas the nodal force (that is based only on
element deformaon) was not affected.
3. IMPORTANT: All the elements to which the selected node is a5ached must be selected in order to get the
total force with which the node pushes on the outside world (use ESLN a2er selecng the nodes). The
generaon of Nodal Force (and Reacon Force, if I remember correctly) is determined from the
deformaon and sffness of a5ached elements. If elements a5ached to a node of interest are not selected,
then the contribuon of those elements to the force at the node is not included and will be missing.
4. Cauon: If you have used a rigid region with the node of interest, the lack of element deformaon means
that you will NOT get the Nodal Force or Reacon correctly ‐‐ you may need to work from the set of nodes
where the rigid region a5aches to the flexible part of the structure. I'm not sure what kind of effects nodal
coupling would have.

There are various other uses to which you can put Nodal Force. You can plot the Nodal Force vectors along with
your model (see the /PBC command), a2er SOLVE, giving visual cues during your review. You can use NODAL
FORCE to find out about the load being carried in certain Load Paths:

Determine where to posion a "cut" in the model. Locate it where you want to determine the force carried
across the cut. The "cut" should follow a path along the edge of a set of adjoining elements. Select all the
elements on ONE side of the "cut".
Select the nodes on the "cut" side of those elements.
Prinng the Nodal Force (forces only) will tell you about the forces that your selected elements apply to
those nodes. The sum that is printed tells you the total force carried across the "cut" in the X, Y, Z
direcons, based on the selected elements.
Cauon: GeEng the moment across the cut is not so easy, because moment is determined with respect to
an axis. You would have to do extra work to pursue moment across a cut, determining your "neutral" axis,
and using other commands. See, for example, ANSYS manuals informaon on the SPOINT command.

Note my earlier comment Tip 25 on making load paths visible in shell models. For further informaon, read the
ANSYS manuals on the FSUM and NFORCE commands.

Tip 37: Inpu;ng Temperatures with BF, BFE, and TUNIF in Structural Analysis

As discussed by ANSYS in Chapter 2.6 of the Elements Manual, Body Loads (temperatures for structural analysis
that cause thermal strains and affect temperature dependent material properes) may be input in a nodal
format or an element format. "Either the nodal or the element loading format may be used for an element, with the
element format taking precedence. Body Loads are designated in the "Input Summary" of each element." This
means that if both BFE and BF are applied to an element and its nodes, and the inputs differ, the BFE seEng will
govern. If temperature is input on a nodal basis, the temperature input at a node will influence all the a5ached
elements. If temperature is input on an element basis, the temperature(s) input will influence only the element
to which it was applied. The commands TUNIF and BFUNIF can be used to set all nodes to one default
temperature that differs from the reference temperature. Then, BF or BFE commands can to used on specific
regions of the model to put in other temperatures.

If you use piping commands to create pipe elements, and have applied temperatures, ANSYS will apply the
temperatures on an element basis (to check this, generate a Load Step file and inspect its contents, or use the

25 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

BFLIST and BFELIST commands). For the user applying temperatures directly, it can be a li5le simpler to apply
temperatures on a nodal basis with BF, since the nodes can be selected by locaon. InpuEng temperatures on
an element basis with BFE permits control of things such as temperature differences between the inside and
outside of pipe elements, or between the top and bo5om of beam elements. The element lisng in the Elements
Manual should be consulted before applying temperatures with BFE. As I discussed elsewhere, if you change
temperatures that were previously set with BFE, the temperatures have to be changed at all the locaons within
each element to which temperatures were applied. Otherwise, the old temperatures will sll be there. You may
want to clean up with a BFEDELE or other cleanup command before starng. The BFDELE and BFEDELE
commands only act on selected nodes and elements ‐‐ if you want to remove all temperature applicaon, select
the full model first. Be wary of what happens when you use Load Step files.

Tip 38: ANSYS Toolbar Use

The ANSYS Toolbar can be very helpful in giving "one click" access to frequently used commands. Toolbar bu5ons
can also call macros, or the funcon form of commands, for example Fnc_Pl_Symbols to bring up the dialog box
for seEng symbols. If you want to get fancy, a toolbar bu5on could be used to acvate an alternave toolbar.

In the toolbar shown here, a variety of bu5ons have been enabled. Some of the capons
are a li5le crypc; this is because the capons are limited to only 8 characters. The
command that gets executed cannot include the $ sign. Consequently, only one
command can be executed, however, a macro can be called in order to perform a
complex set of instrucons. The toolbar eding is brought up from the menu item
"MenuCtrls". In the example toolbar shown here, the bu5ons are not in a highly logical
order. In order to modify the bu5on sequence, save the toolbar (I suggest the
unimaginave file name "toolbar") and re‐order the lines in that file with a text editor.
Keep the eventual sizing of your toolbar in mind. The example here is sized for six rows
deep, and seven columns wide. Use the "Save Menu Layout" menu selecon to save the
layout of all of your ANSYS windows including the toolbar shape. (This seEng is
destroyed if you modify the "GUI configuraon" under your ANSYS Interacve startup
dialog box.) When you are happy with the layout of your toolbar, you can append the
toolbar file's contents to the end of the "Start.ans" file located in the ANSYS "DOCU"
subdirectory.

Tip 39: ANSYS Piping Elements

The use of ANSYS piping elements, Pipe16 and Pipe18, can simplify the work required to create models of piping
systems that will sasfy certain code requirements. Piping commands can be used in /PREP7 to directly create
models of piping. In using piping creaon commands, a user works out the intersecon points of the runs of
piping as if there are sharp angle bends. Each run of pipe is entered as dx, dy, dz, creang Pipe16 elements, and
then a radius of curvature at the previous intersecon can be applied, creang Pipe18 elements. The Pipe18
elements are taken out of the two Pipe16 elements that met at the last corner intersecon. If these two Pipe16
elements are too small to encompass the Pipe18 bend elements, difficules will result. If the user is defining
U‐bends, it is easy to have zero‐length Pipe16 elements generated. My approach to this is to inspect the model
for zero‐length Pipe16 elements, and delete them, a2er I make sure that all pipe nodes are merged. I use a macro
to inspect the model and do the deleons. Checks are included in the macro, because Pipe18 elements always
return a zero length. I have also seen users do a U‐bend with a small extra space so that a very small Pipe16
element will remain between the two 90 degree bends that make up the 180 degree U‐bend, avoiding a
zero‐length element problem.

To list or plot useful stress informaon from the piping model usually requires puEng selected results data into

26 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

element data tables, and the use of appropriate PLLS commands. Fortunately, ANSYS includes many output
possibilies for the two piping element types, so typical piping code requirements can be met. See the element
manual for these elements for informaon on the available output data.

For obvious reasons, I leave proper use of design codes within piping analysis as an "exercise for the reader." :‐)

Piping creaon in ANSYS includes the possibility of added mass due to fluid in the pipes, and from insulaon
added to the piping. The insulaon addion is simple ‐‐ the user can input thickness and density. This lets the
added mass presence of heat exchanger fins be easily faked by inpuEng the product of fin_thickness x
fins_per_inch x fin_material_density as the "insulaon" density, and fin height as the "insulaon" thickness.
(Substute the appropriate dimension for fins_per_inch, etc. for your system of units.)

The deflecon behavior of pipe elements is based on ANSYS beam elements. If accurate vibraon behavior is to
be modeled, at least several pipe elements will be needed between supports. If accurate gravity‐induced
deflecons and stress are wanted, be5er results will come from the use of a consistent mass matrix, if element
density between supports is low.

Developing an understanding of the funcon of the ANSYS element creaon commands (BRANCH, RUN, BEND,
and so on) will require creang some elements with material and dimensional informaon, then reviewing what
element TYPE and REAL data has been created in the model database. Model review is enhanced by ploEng the
elements with the /ESHAPE opon acve.

Where piping is connected with sliding supports to the outside world, the use of gap elements may be needed if
sliding fricon is to be included in the model. ANSYS does not differenate between stac fricon and sliding
fricon coefficients, so a reasonable and conservave value for coefficient of fricon (as well as contact sffness
of the gap element) will have to be determined by the analyst. If there are thermal expansions in the piping,
stresses predicted by the model will usually be reduced if the gaps in the support structure are included in the
model (depending on the nature of the structure) rather than having "ght" fits at the sliding connecons.

Tip 40: Graphical Output from ANSYS

If you start up ANSYS under Windows NT with "win32" selected for graphics, the stress plots will be shaded. If you
select "win32c" for the graphics, the stress plots will not be shaded, and will usually look be5er when plo5ed to
paper, especially when plo5ed from ANSYS with HardCopy to ink jet printers. They can be selected with the
commands /SHOW,WIN32 and /SHOW,WIN32C when using the GUI.

PloEng to the screen window with Z‐buffering as the hidden surface control can give very sasfactory and o2en
quicker results. Hard copies of these Z‐buffer plots, however, will look "pixelated", being limited to a coarse
resoluon. Be5er looking hard copies to paper will usually result if the screen is set to "Precise Hidden" or even
to Centroidal hidden surface control. This is usually true of plots sent to a file, for subsequent processing with the
ANSYS DISPLAY program.

Plots can be redirected to files by using the /SHOW command. This permits the DISPLAY program to do various
things with the results, including the generaon of animaons. Under Windows NT, an animaon can be
generated as an AVI file.

I occasionally find it helpful to generate an animaon file based on a single stress plot of a load step, in which I
spin the model about the screen X or Y axis. You can use the /ANGLE command and the /REPLOT command to
accomplish this. A simple macro does /REPLOT calls with the model set at a series of angles from 0 to 360 degrees.
You can even execute this command on one line using the "$" symbol to separate the commands. The command
"*DO,III,0,355,5$/ANGLE,ALL,III,YS,0$/REPLOT$*ENDDO" will achieve this for you. The scaling of the display
should NOT be set with /ZOOM,OFF or else the image will "move in and out" in order to fill the screen as the view
is rotated ‐‐ set the zoom level manually with picking; you may want to move out so that the model fits in all
views. You may need to experiment. Node plots without symbols are a quick way to assess the behavior while
tesng. If the plots have been re‐directed to a file when this command is executed, the plots in the file can be
animated by the ANSYS DISPLAY program.

AT the ANSYS 5.3 level, and presumably above, you can do a /SHOW,VRML plot to get a 3‐D VRML file produced
of a 3‐D model plot. This could be a stress contour plot of a 3‐D model. With the right opons acvated for a

27 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

good VRML viewer plugged into a Web browser, the stresses on the 3‐D model can be reviewed at any viewing
angle with the posioning control a VRML viewer. This ought to be parcularly interesng on a computer with a
fast 3‐D graphics accelerator.

There are ulies that can convert a Postscript output file from the ANSYS DISPLAY program into a bitmap image
file. A free conversion program is Ghostscript, once you figure out how to use it. The user should get a front end
for the Ghostscript program, for ease of use.

Under Windows NT, the Alt/PrintScreen key combinaon will copy a window to the Clipboard. This can be used
to capture an ANSYS graphics window for pasng into a word processor document, or into an image processing
program for conversion to a GIF or other bitmap file. GIF files can be used in WEB pages to show the results of
ANSYS work. I recommend GIF over JPEG files for images from ANSYS, because GIF files precisely reproduce 256,
16, and 2 color images (you have to reduce the colors to 256 or fewer levels in the image processing program, or
accept the default color reducon used when the GIF file is generated.) Before capturing the Graphics window of
ANSYS, set its size to your sasfacon. Bitmap image size changes in an image processing program are not
sasfactory with this type of graphical output. If you want to get really fancy, generate a GIF file that contains an
animaon of a ANSYS model. (Animated GIF files can be generated from individual images with so2ware that
you can find on the Web or purchase.)

Re‐sizing of the ANSYS graphics window under Windows NT is painful if a model has been plo5ed, because
ANSYS wants to keep re‐ploEng the image as the window edge or corner is dragged. This problem goes away if
you set the Windows NT Display Properes to NOT show window contents while dragging. I keep my PC
permanently set this way for this reason.

Tip 41: Check Nodal Loads at Bolts, Rivets, Spot Welds and Links

Wherever connecon by bolts, rivets, or spot welds has been represented by various simplificaons or
representaons in an ANSYS model, the load on those connecons should be checked, and compared with
allowables. Spot weld review may require assessment of moments (especially about an axis perpendicular to the
sheets that are spot welded together), as well as assessment of forces. One way to do this is to select the
appropriate node(s) at the connecon, select elements on "one side" of the node(s), and check nodal loads. The
connecon devices should not be overloaded. The hole in which a bolt or rivet is placed must not be overloaded
or too near an outside edge of a sheet or plate, either. Addionally, building codes usually forbid or substanally
limit "prying" loads on bolted and riveted connecons. If the FEA model has good detail, including gap or contact
elements, a high prying load can be demonstrated in some models (never assume your FEA model will
automacally show you all trouble spots).

Similarly, links or "spars" that are loaded should be checked for stress, and be checked for buckling. Since a link
will be represented by one element that is pin connected at the ends, and only cross secon area is entered,
ANSYS will not generate buckling informaon about the link, not even in a Large Displacement analysis. The user
must do some work to compare compressive load with crical buckling load (use a good margin of safety). A user
could write a macro to step through all link elements, idenfying the compressive stress and force, and
calculang buckling informaon. The ANSYS Link10 element supports a tension‐only and a compression‐only
capability. Where it is not known in advance whether all links will remain in tension, and the links are slender,
this element could be used to imply that no link can support compression for what may be a "worst case"
evaluaon of some models. An example would be the stays that support the mast on a sailboat, with
pre‐tensioning implied with inial strain. (If the stays are woven rope or steel cable, geEng a representave
crossecon for the link elements will require some extra work.)

Spot weld representaon in large structures is usually an inexact science in FEA modeling. Spot welds will be
found, for example, in many automobile body structures. Plug welds are a stronger alternave, applicable to
thicker steel sheets and plates. The crudest and quickest representaon of spot welds is to merge coincident
nodes from the two joined layers where nodes have been intenonally created coincident at the spot weld.
Alternavely, the nodes can be fully coupled with the CP command if they are coincident. They can be joined as
a rigid region with CERIG if the nodes are close but not touching as when shell elements are kept at the
mid‐plane posion of two sheets that are spot welded together. (Remember that CERIG is valid only in small
displacement analysis ‐‐ coupling with zero‐mass sff beam elements could be substuted if large displacements
were needed.) The shell nodes can be joined with a beam element that has properes that reflect the diameter

28 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

of the spot weld. The roughest approximaon will merge or couple just one node pair. If nodal coupling is used,
rotaons should be coupled as well as translaons, for spot weld representaon. NOTE: With shell elements,
read the "drilling mode" comments in the ANSYS Elements Manual ‐‐ it may be necessary to set a KEYOPT value
to transmit rotaon and torque about an axis perpendicular to the shell elements when a spot weld is crudely
represented by single node pair coupling, merging, CERIG, or beam elements. Contact elements between the
joined shells or materials may want consideraon. Exactly what to do for spot weld representaon is very
problem, industry, and material dependent. These very approximate techniques tell us li5le or nothing about
stress, fague, or fracture possibilies near or at the weld. More elaborate modeling (more nodes and elements,
and special element types) of each spot weld could give more informaon about local stresses, when local
stresses ma5er. Studying the "crack" that is hidden between the sheet metal layers in a spot weld is an
"advanced topic" ‐‐ discuss this with an expert or consultant. I doubt that you would find many spot welds used
with aluminum, not only because of the difficulty of welding aluminum, but also because of the fague
consideraons ‐‐ consider how commonly aircra2 use rivets and modern adhesives.

There is a document on spot weld fague and FEA on the MSC/Nastran website. (There is a variety of other good
reading at the site, too.) Take a look at the paper in PDF format by Heyes and Fermer, which, although it is
MSC/Nastran related, is interesng and includes the following references:
Rupp, A., Störzel, K. and Grubisic, V. "Computer Aided Dimensioning of Spot-Welded Automotive Structures". SAE Technical Paper 950711, 1995.
Smith, R. A. and Cooper, J. F. "Theoretical predictions of the fatigue life of shear spot welds." Fatigue of Welded Structures, Ed. S. J. Maddox, pp. 287 - 293, The
Welding Institute, 1988.
British Standards Institution. Code of Practice for Fatigue Design and Assessment of Steel Structures. BS 7608, 1993.
Radaj, D. "Local Fatigue Strength Characteristic Values for Spot Welded Joints." Engineering Fracture Mechanics, Vol. 37, No. 1, pp. 245 - 250, 1990.
Sheppard, S. D. and Strange, M. E. "Fatigue Life Estimation in Resistance Spot Welds: Initiation and Early Growth Phase." Fatigue and Fracture of Engineering
Materials and Structures, Vol. 15, No. 6, pp. 531 - 549, 1992.
Sheppard, S. D. "Estimation of Fatigue Propagation Life in Resistance Spot Welds." ASTM STP 1211, Advances in Fatigue Life Prediction Techniques, M. R.
Mitchell and R. W. Landgraf, Eds., pp. 169 - 185, ASTM Philadelphia, 1993.
Heyes, P., Dakin, J. and StJohn, C. "The Assessment and Use of Linear Static FE Stress Analyses for Durability Calculations." SAE Technical Paper 951101,
1995.

I have never worked in aerospace, but I recently had a look inside a old helicopter that was on public display. In
addion to rivets, what was either a caulking or an adhesive appeared to have been used between some ribs and
the outer shell. This may prevent corrosion in the gap, and help reduce vibraon and freEng or galling. If it is
purely a so2 caulking, it might be ignored in FEA, but if it funcons as an adhesive, the load on the rivets is
probably reduced. Presumably the manufacturer has standards for this type of design.

Tip 42: Use QUERY to Check Results with Picking

In /POST1 the "Query Results" capability applied to nodes makes it easy to check on results (stresses, strains,
deflecons, etc.) by picking nodes. To see an image of this in acon Click to See Image and use your browser's
Back bu5on to return. For the shell element illustrated, the result will be reported for the Top, Middle, or
Bo5om, according to how the SHELL command was issued (the usual rules as to what constutes the Top and
Bo5om of a shell element apply). It will do this even if PowerGraphics is acve for the plot on the screen. Note
that the nodal stresses are based on averages if more than one element that is connected to a node is selected.
You can inspect the consequence of element selecon on nodal stress easily with this feature. The element query
returns only data on energy and error esmaon.

Tip 43: Loads on Geometric Enes Overwrite Loads on Nodes and Elements ‐‐ Easy Error to Make

My "dumb move of the week" was to retrieve an old model of a beam with redundant supports, change the load
on a node, and re‐run the model. I then updated the element table results, and used PLLS to plot the result, as
shown below. This is a plot of top surface bending stress, with gravity loading included. Both applied point loads
and reacons are shown as colored arrows. Stress colors have been gray scaled for prinng to a black and white
laser printer. Upon inspecon by a co‐worker, he noced that the results were the same as the results the last
me the model was run, under different loading, a month before. What was wrong?

The model database file had been saved with the original loading and results. The original model had the load
applied to the keypoints. I changed the load on a node. When I ran SOLVE, the load on the keypoint OVERWROTE
the load on the node, and I got the old result. When I listed the applied forces with FLIST before running SOLVE, I
saw my modified loads. When I listed the applied forces with FLIST a:er running SOLVE, I got the OLD loads on
the nodes. The same principle applies to loads on lines, areas, and volumes. Presumably, it happens with applied
displacements, also. Since loads on geometric enes cannot be scaled, there may be li5le reason to keep the
loads on geometric enes a2er these loads have been transferred to nodes and elements, EXCEPT when

29 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

meshing may be changed in the future. The use of components is an alternave way to select parts of the model
for loading.

Suggeson: The user should add a warning annotaon stang that loading is on geometric enes, before
archiving a model. Should ANSYS add a warning message about SOLVE transferring loads from geometric enes,
which requires user acknowledgment?

A potenally dangerous mistake ‐‐ watch for it!

Tip 44: Use Components for Load Input, and for Results Review

A user‐wri5en input file could be used to apply loads to components that the user has defined. An even more
convenient use for components is for reviewing stresses due to a load. The components can be called up and
stresses plo5ed without the need to do manual selecon over and over for each load case. I wrote a macro that
automacally steps through all components, ploEng the stresses for each component from a couple of
viewpoints, for each load case. When the plots were diverted to a plot file, the file could be used in ANSYS
DISPLAY to plot stresses for all components for all load cases. Statements in the macro would put the component
name and weight (based on volume only) in an annotaon; the tle already contained the load case name.

Tip 45: Simple Substructuring Examples‐‐ BoIom Up and Top Down

ANSYS/ED is capable of only a small number of Master Degrees of Freedom (50 the last me I looked), so any use
of substructuring in ANSYS/ED will have to be done with a very small number of nodes for master degree of
freedom use. A 2‐D element such as PLANE42 may be best for many substructure experiments with ANSYS/ED. In
Large Displacement substructuring, rotaonal degrees of freedom are needed at the nodes, and ANSYS/ED will
only handle very small numbers of nodes ‐‐ 2‐D beams may be best for learning experiments with Large
Displacement. The problem with using beams elements for learning is that review of stresses is more complex;
element tables must be used to hold and display beam stress informaon. For an alternave, consider SHELL63
elements with very few MDOF nodes (8 nodes x 6 DOF/node = 48 DOF), in Large Displacement substructuring
studies.

Substructuring has become more rare in FEA work, because of the capacity of modern computers for large
models. There are sll mes when it is desirable, such as when gap elements or contact elements are employed
in large models, or when extremely large models are in use. The user will have to employ some insight to select
substructures in a way that minimizes the resulng number of degrees of freedom and wavefront size.
Substructuring is a relavely tricky procedure, parcularly with mulple substeps or mulple substructures. For
serious use, the ANSYS manuals on substructuring should be purchased and studied in detail.

The reader is reminded that the elements inside a substructure are treated as linear. Any nonlinear elements
grouped inside the substructure will be treated as if they were in their inial condion, without material
nonlinearity. The two simple examples below do not address use of mulple substructures, mulple load cases,
g‐loading, vibraons, and other complicaons. Nonlinearity (Large Displacement) is menoned only briefly. If
you do not turn to expert help for substructure work, I recommend substanal tesng of any techniques on small
models before doing any real work.

Warning: Read the ANSYS Elements Manual secon on MATRIX50 the superelement. Note its warning that if
gravity is applied during the "gen" pass when the superelement is created, and gravity is applied during the "use"
pass, it will be applied TWICE to the superelement substructure DOUBLING the gravity load on the superelement

30 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

region of the model. For this reason, gravity load would have to be introduced "carefully". Unfortunately, a
detailed descpon of this careful applicaon is not included in the base ANSYS manuals. In the "Top Down"
example below, I set "ACEL" for the model to ZERO in all three global coordinate direcons during the "gen" part
that generates the superelement. If the user has applied gravity to the model file that is read in, it will be applied
during the "use" part of the analysis, and so only applied once to the superelement. This may affect the accuracy
of the solu+on ‐‐ I have not yet done comparison runs to test this. The example does not address centrifugal loading
or other complicaons. Unfortunately, linear acceleraon loading (e.g. gravity loading) is more accurately
represented when applied as a load vector. This presents a problem when there are elements with mass that are
not included in substructures. I have not yet determined whether gravity could be applied to a superelement in
the GEN pass, without having a superelement mass matrix generated ‐‐ if it could be done, then the "accurate"
applicaon of gravity loading to the superelement could be accomplished without counng gravity load twice.
Using rotated superelements introduces another set of problems with the direcon in which loads are applied ‐‐
read the manuals.

Note that non‐zero applied DOF displacements are not to be applied by a load vector, so MDOF should be
applied to nodes where non‐zero DOF values are to be applied during the analysis. Loads and constraints created
in the GEN pass (i.e. in a load vector) cannot be changed in the "USE" pass, except by uniform scaling. Brief
tesng I did suggests that load ramping DOES work for load vectors ‐‐ the user should check this independently.
The excepon to uniform scaling is with respect to angular moon ‐‐ read the ANSYS tutorial and user's guide
manuals on substructuring.

The substructuring examples given in Chapter 4 of the ANSYS Advanced Analysis Techniques manual leaves out
the roune steps ‐‐ leave out too many, in my opinion. The user should purchase an ANSYS manual and tutorial
manual on substructuring before doing serious work. (ANSYS 5.5 has added some helpful comments to its
Advanced User's Guide on Substructuring.) The command EXPSOL has to be added in the expansion pass of the
bo5om‐up example in order to get any results in the expansion results file. The SFE command is needed only if
loads were applied to the superelement ‐‐ if SFE is used, it has to point to the element number of the
superelement that was read in with the SE command as well as the appropriate load step number. A *GET
command could find the element number of the superelement right a2er the SE command. The commands
manual does not explain this adequately in ANSYS 5.3. The following examples are fairly brief. In the bo5om up
example, the coupling command CPINTF is used to join the superelement with the non‐superelement poron of
the model. The example shows the stresses in the superelement a2er the expansion pass completes. The results
of the use pass are saved in the file "use.db" for later review by the user.

Bo5om Up Substructuring Example:


! Substructuring demonstration *************************************
! For information only. Use at your own risk.
fini ! finish whatever was active previously
/clear ! clear the database
/title,Substructure Technique Test

/filname,gen ! filename for the generation pass


/prep7 !
et,1,shell63 ! element type 1 set to SHELL63
r,1,.05 ! shell is 0.05 thick
mp,ex,1,30000000 ! set value of E
blc4,-.5,0.5,1.0,-1.0 ! create a rectangular area
lesize,all, , ,3,1,1 ! 3 elements per line -- user can change this
amesh,1 ! mesh the rectangle
fini
/solu
antype,subst ! substructure analysis
seopt,gen ! generation pass
lsel,s,line,,2 ! line at right side
nsll,s,1 ! select all nodes on line
m,all,all ! make these nodes Master Degrees of Freedom
lsel,s,line,,4 ! line at left side
nsll,s,1 ! select all nodes on line
d,all,all ! constrain nodes against all motion
allsel
save ! save this part of model as gen.db for expansion pass
! the save need not follow "solve"
solve ! generates the gen.sub file
fini

31 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

/clear,nostart
/title,Shell elements are attached to a superelement
/filname,use ! filename for the use pass
/prep7
et,1,50 ! element type 1 set to superelement MATRIX50
type,1 ! set type 1
se,gen ! read in the superelement matrix from generation pass
! after reading superelement, create remainder of model:
et,2,shell63 ! element type 2 set to SHELL63
r,2,.05 ! shell is 0.05 thick
mp,ex,2,30000000 ! set value of E
blc4,.5,.5,1.0,-1.0 ! create a new rectangular area
lesize,all, , ,3,1,1 ! 3 elements per line -- user can change this
aatt,2,2,2 ! assign mat=2, real=2, type=2 to the unmeshed area
amesh,1 ! mesh the area -- note superelement node numbers are not used
cpintf,all ! automatically couple coincident nodes at interface
eplo
fini
/solu
ksel,s,kp,,3 ! keypoint at upper right corner
nslk ! select node at this keypoint
f,all,fy,-1 ! put a load on node at upper right corner
nsel,all ! select all nodes
! SFE,1,1,SELV, ,1 ! no load applied in generation pass, this statement not needed
solve ! results go in the file use.rst
save ! save use.db to review results in the non-superelements
fini
/post1
/pbc,f,,1 ! show applied force symbols
/pbc,cp,,1 ! show nodal coupling symbols
plnsol,s,eqv ! plot the stresses in the non-superlements
fini

/clear,nostart
/filname,gen ! filename for the expansion pass
resume ! brings up gen.db saved above
/solu
expass,on ! activate expansion pass
seexp,gen,use ! options for the substructure expansion pass
expsol,1,1 ! THIS IS NEEDED ! (read about NUMEXP also) **************
! OUTRES,ALL,ALL ! not required for one load step solution
solve
fini
/POST1
/title,Stress in the Substructure
/pbc,mast,,1 ! show master degrees of freedom symbols
/pbc,u,,1 ! show displacement constraints
/pbc,rot,,1 ! show rotation constraints
plnsol,s,eqv ! look at the stress in the superelement

In the above example, the user can change the mesh density. The numbers and posions of nodes along the
common interface between the superelement and the normal poron of the model have to be the same for
CPINTF to successfully connect the two parts of the model.

The model is created with the "bo5om‐up" approach. In the "use" part of this example, the superelement is read
in with SE before the remainder of the model is created. If the remainder of the model was created before the
superelement was read in, then the user would have to add statements to control the node numbering, so that
none of the master nodes coming in with the superelement would replicate the node numbers of the exisng
elements. If the superelement has master nodes that have the same node numbers as the exisng model, the
model nodes will be redefined, and a mess will result. Check the manual, and look at the SETRAN command to
act on the superelement, or at the NUMOFF command to act on the exisng model, to prevent node replicaon
problems. The PARSAV and PARRES commands can be used to put model parameter informaon into a coded file,
and retrieve it a2er the /CLEAR command has been issued. The maximum node number can be put into a
parameter by *GET and put into a file with PARSAV during the generaon pass. It can be retrieved during the use
pass by PARRES, and used to guide the offset of node numbers in either the already generated superelement
with SETRAN, or in the remainder of the model with NUMOFF.

Top Down Substructuring Example

32 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The following example is NOT a substute for a detailed understanding of ANSYS substructuring. It is for
demonstraon purposes only. Get the ANSYS Substructuring Tutorial guide and the Substructuring Guide for
serious work.

The top down substructuring technique makes it possible to take an exisng model, and have a poron of it
changed into a substructure. This can boost efficiency in a number of ways, such as dealing with contact surfaces
and gap elements, and handling very large models that have already been generated. In the example presented
below, a model database is read in from a user‐prepared file named "model.db". This model in "model.db" must
have had a poron of the elements grouped into a component called "super" using the command
CM,SUPER,ELEM. This component will be rendered into a substructure. The intended substructure should, in
general, consist of linear elements. The model must have had constraints and loads applied. The SFE command
used in this example expects loads to exist inside the superelement, but should work without them. Some nodes
can have been declared by the user to be master degrees of freedom. In order to create master degrees of
freedom through the GUI, the analysis type has to be Substructure. In order to use the example below, the
analysis type will have to be changed back to the type desired a2er creang extra master degrees of freedom ‐‐
usually to stac analysis. Note that for dynamic analysis, master degrees of freedom are needed throughout the
substructure ‐‐ they are not created by the example below. In the example presented, master degrees of freedom
are automacally generated for the nodes on the interface between the component "super" and the remainder
of the model. (There is no check for redundancy with user‐declared master degrees of freedom.) The full model is
used ‐‐ the analysis is not limited to the selected set of elements in the file "model.db" when it is loaded. The
example will automacally perform the substructure generaon and the subsequent analysis, and will plot
results to plot files. I have added a plot of the results for the full model, with results files for both the substructure
and the non‐substructure being read. There is no error checking in the example. This example has had limited
tesng‐‐let me know about errors.

When dealing with gap elements and/or contact surfaces, the usual procedure would be to select all the linear
elements in the model (not the gap or the contact elements), and in this example, call them the component
"super" for substructuring. Because the substructure matrix is usually much smaller than the full model matrix,
the iteraons required for convergence with gap and contact elements will usually run far faster than iteraons
involving the full model, once the substructure matrix is generated. This makes otherwise infeasible modeling
into a possibility.

In dealing with extremely large models, where the objecve is simply to deal with the size, not nonlinear
elements like gap elements, there may li5le advantage in turning the enre large model into a substructure ‐‐ it
could take as long to generate the superelement as to solve the model for one load case. It would be more
common to turn porons of the model into one or more substructures. The connecng regions between the
substructures would be chosen to involve as small a number of nodes as possible, to minimize substructure
matrix size, and model wavefront size.

Although a MATRIX50 substructure superelement can undergo Large Displacement, it will act internally as a
linear elasc structure. Methods to use MATRIX50 in nonlinear applicaons should be thoroughly tested by the
user before applicaon, including plots of displacement and stress to look for compability in results among the
substructure regions and the remainder of the model, and checks that reacon forces equal the total applied
forces. I have encountered difficules combining Large Displacement with Substructuring ‐‐ see the image below.

To use the following example: (1) Create a model, and (2) select a poron of the elements to become the
substructure. Give this selecon set of elements the component name "super" with the command
"CM,SUPER,ELEM". (3) The model should have loads and constraints applied, and the analysis type defined. The
analysis type must be acceptable for substructure use. (4) Save the model with the database name "model.db".
(5) Call the roune below with the /INPUT command. Graphical results for the last load substep in the results files
will be plo5ed to disk files. If run interacvely, the user will have to click the "OK" bu5on a few mes, and a plot
to the screen should result when done. Expect warning messages related to paral element selecon, and to
reading from results files. NOTE: This example sets gravity load to ZERO in the "gen" poron of the analysis;
otherwise, gravity would be DOUBLED on the superelement if the user's model includes gravity ‐‐ see the
Elements Manual for MATRIX50. (If gravity is applied, be sure a density was applied to the materials in the model.
If there is no gravity, the example can have the "seopt" command changed to NOT generate the mass matrix for
the superelement.)

33 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The loading on MDOF nodes would also be DOUBLED if it was used in the superelement load vector, and used in
the "USE" pass. For this reason, correcons to this roune have been added (Nov.2, Nov.4 1998). A complicaon
for substructuring: Only a master node from a coupled node set or a constraint equaon node group can be used
as an MDOF for substructuring. This complicaon is NOT addressed in the present example. The example is for
stress analysis. It does not address centrifugal loading. To address other types of analyis, start with a look at the
ANSYS Advanced User's Guide, and look at the table of loads applicable in a substructure analysis.

Automang a substructure analysis is somewhat tricky ‐‐ this file will NOT be applicable to all types of analyses. I
have been tesng it with simple stress examples. The "POSTPROCESS" pass seems to work in loading stresses
from the two different sources for viewing, "USE.RST" and "GEN.RST", although I haven't seen this documented. I
tried the SUBSET command, but was geEng warning messages about the nodal force and other results not
necessarily being correct. I haven't thoroughly invesgated this. Have a close look at how the substeps are
output with OUTRES and selected for expansion:
! "Top-Down" Substructuring Example -- In Development
!
! - For information only. Use at your own risk.
! - There is no error checking in this example.
! - Warning messages will be generated.
! - ANSYS/ED supports very few master degrees of freedom.
!
! WARNING: Gravity would be applied TWICE to the superelement if ACEL
! were not zeroed in the "gen" pass. For models that do not
! include inertial loads, change the "seopt" command to generate
! STIFFNESS only. See the Elements manual for MATRIX50.
! This example NOT designed for other inertial loads.
!
! WARNING: In the "use" pass, nodal loads on superelement MDOF nodes
! are deleted so loads on MDOF nodes are not counted TWICE.
! FDELE and DDELE are used.
!
! The model to be processed is in the file "model.db". The user must
! have identified the region to be substructured as the component "super"
! with the command "CM,SUPER,ELEM" and saved the model as "model.db".
! Anything nonlinear in the component "super" will be treated as linear.
! Analysis type is defined by the file "model.db" -- must be acceptable type.
! The "USE" pass has OUTRES set to write ALL substeps to the RST file.
! The "EXPAND" pass has a *DO loop that expands solutions at ALL substeps.
! The model must have had its loading and constraints applied.
! This example is for one load case only. Some Master Degrees of Freedom
! can have been applied by the user -- needed for dynamic analysis.
! Master Degrees of Freedom Nodes will be generated between the substructure
! and the remainder of the model. No check for redundancy is performed.
! Unless this file is run BATCH, the user will have to click the "OK" button
! whenever the CLEAR command is executed, and if error messages appear.
!

fini ! finish whatever was active previously


/clear ! clear the database

/COM,############ GEN ############


/COM,############ GEN ############
/COM,############ GEN ############

/show,part1,grp ! file for storing plots


resume,model,db ! read the model to be processed
! - all loads and constraints must already be applied
! - the SFE command is employed in the "use" pass to
! apply loads to the substructure
! - only one substructure generated in this example
/filname,gen ! filename for the generation pass
/prep7
allsel
*get,nmx,node,,num,max ! get the highest node number
*get,nmn,node,,num,min ! get the lowest node number
cmsel,s,super ! select the elements identified as the component "super"
nsle ! select nodes of these elements
esel,invert ! select the elements that are not part of "super"
nsle,r ! reselect nodes connecting "super" to remainder of model
m,all,all ! make these nodes Master Degrees of Freedom (MDOF)
cmsel,s,super ! select the "super" elements again

34 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

nsle ! select their associated nodes


nsel,r,m,,nmn,nmx ! reselect all of these nodes that are MDOF (don't want nodes
! outside the "super" that the user called MDOF)
fdele,all,all ! delete loads on these MDOF nodes for "gen"
ddele,all,all ! delete displacement loads on these MDOF nodes for "gen"
nsle ! select nodes of the component "super"
/pbc,mast,,1
/pbc,f,,1
/pbc,m,,1
/pbc,u,,1
/pbc,rot,,1
/title,Elements of the to-be-substructure
eplo ! plot the elements of the to-be-substructure
fini
/solu
antype,subst ! substructure analysis
seopt,gen,2 ! generation pass -- generate STIFFNESS and MASS matrices
! - if no inertial load, change setting to STIFFNESS only
save ! save this part of model as "gen.db" for expansion pass
! - SAVE need not follow the command "solve"
! - component "super" and its nodes currently selected
acel,0,0,0 ! set gravity to Zero AFTER "save" but BEFORE "solve"
solve ! generates the "gen.sub" file
fini

/COM,############ USE ############


/COM,############ USE ############
/COM,############ USE ############

/clear,nostart
/show,part2,grp
resume,model,db ! bring the model in again. restores "acel" if any.
! "model.db" has to define the analysis type -- it should not
! be a substructure generation
/filname,use ! filename for the use pass
/prep7
allsel
*get,nmn,node,,num,min
*get,nmx,node,,num,max
cmsel,s,super ! select the portion intended for the substructure
esel,invert ! select the remainder of the model
nsle ! select nodes of the remainder of the model
nsel,a,m,,nmn,nmx ! add MDOF nodes for visibility (not needed for solve)
*get,ntp,etyp,,num,max ! get max element type number in the model in parameter ntp
et,ntp+1,50 ! new element type ntp+1 set to superelement MATRIX50
type,ntp+1 ! set type ntp+1 before reading "creating" superelement with SE
se,gen ! read in the superelement matrix from generation pass
! - master D.O.F. nodes already are at the interface
! - no need to couple coincident interface nodes this example
! - new element number assigned should be above maximum
*get,snm,elem,,num,max ! get the element number of the superelement just loaded
! - needed for SFE loading the superelement below
! - extra work needed if more than one superelement
/pbc,all,,0
/pbc,f,,1
/pbc,m,,1
/pbc,mast,,1
/title,Remainder of model attached to substructure
eplo ! plot the elements in the non-substructure plus "outline" view
! of the substructure
fini
/solu ! "model.db" analysis type for substructure is needed
SFE,snm,1,SELV, ,1 ! load applied in generation pass was in "model.db"
! - apply load to to superelement number "snm" found above
! - extra work needed if more than one superelement
outres,all,all ! save results for the all substeps of load step
! - change here and "EXPAND" below if desired to change
solve ! results go in the file "use.rst"
save ! save "use.db" to optionally review non-substructure results
fini ! "use.db" and "use.rst" now contain non-substructure results
/post1
set,last ! plot results at the end of the load step
/title,Stress in the non-substructure elements
plnsol,s,eqv ! show nodal stress in the non-substructure
*get,lastlstp,active,,set,lstp ! get the last load step number

35 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

*get,lastsbst,active,,set,sbst ! get the last substep number


parsav,scalar,parameterstore,parm ! store them in file for retrieval below
fini

/COM,############ EXPAND ############


/COM,############ EXPAND ############
/COM,############ EXPAND ############

/clear,nostart
/show,part3,grp
/filname,gen ! filename for the expansion pass
resume ! brings up "gen.db" saved above, "super" is selected
parres,new,parameterstore,parm ! retrieve data on last load step/substep
! parres must follow resume statement
/solu
expass,on ! activate expansion pass
seexp,gen,use ! options for the substructure expansion pass
*do,iii,1,lastsbst
expsol,lastlstp,iii,,yes ! expand result at last load step/substep
! - (read about NUMEXP also)
outres,all,all ! all data written
solve
*enddo
fini ! "gen.rst" now contains substructure results, last step
/POST1
/title,Stress in the Substructure
plnsol,s,eqv ! show nodal stress in the substructure
save,stresses_in_super,db
fini

/COM,############ POSTPROCESS ############


/COM,############ POSTPROCESS ############
/COM,############ POSTPROCESS ############
!
! WARNING: The following is my own invention; use at your own risk.
! Warning messages will be generated by ANSYS.
resume,model,db
/show,part4,grp
/post1
cmsel,s,super
nsle
file,gen,rst
set,last
esel,invert ! Select the elements NOT in substructure component "super"
nsle ! Select the nodes of these elements
file,use,rst ! Point to file "use.rst" that contains the rest of the results
set,last ! Read in load step data for selected elements, last substep
esel,all ! Select all elements
nsle ! Select the nodes of the elements
/pbc,all,,0
/pbc,f,,1
/pbc,m,,1
/pbc,mast,,1
/title,Stress in the Full Structure
plnsol,s,eqv ! Show nodal stress for the full model.
! Because of averaging, PLNSOL stresses on the interface of the
! substructure and non-substructure regions cannot exactly
! match values for these locations plotted separately, above.
! Element stress and displacement should exactly match in
! a small displacement linear analysis.
save,stress_allelem,db ! Save the model with all stresses on elements
/show,term ! Back to screen -- only works if used interactively
plnsol,s,eqv ! Show the stress results for all elements if interactive ANSYS

The "top down" example saves the results of the "use" pass and the "expansion" pass in database files. These
can be loaded to inspect results in the non‐substructure and in the substructure parts of the model, respecvely.
If the file is run interacvely, the user will have to click the "OK" bu5on each me the /CLEAR command executes,
and for a variety of warning messages that can appear. It may be preferred to run the file under Batch control,
and to later review the results in the plot files, and in the resulng database files. Remember to check for error
and warning messages. Because of the complexity of substructure analysis, the user should run checks on
balance of forces, and do other typical checking of results.

Large Displacement Nonlinearity and Substructure: The ANSYS 5.5 Advanced User's Guide, Chapter 5 gives more

36 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

help on large rotaon (large displacement, geometrically nonlinear) substructured analysis than at the 5.3 level.
Note the comment that constraints should be applied in the "use" pass, not in the "gen" pass, for large rotaon
analysis.

If the file "model.db", used in the above example, has had Large Displacement acvated with "NLGEOM,ON"
then a nonlinear soluon will be sought. Convergence criteria, ramping of loading, substeps, and other nonlinear
controls may be desired. Because the substructure will act linearly internally, convergence may not be as easy as
the user would wish. When the run does converge, the results will not be an exact match for the result without
substructuring. The output plots should be examined to see if they read "Substep 999999", indicang failure to
converge. If you test the above example with Large Displacement, use a Large Displacement model that
converges easily without a substructure approach. An a5empt has been made in the above example to cope with
a model that develops the Large Displacement soluon in a load step containing a set of substeps. This is the
reason for statements that record the last loadstep and substep numbers. However, the example does NOT
reserve applicaon of all DOF constraints for the "USE" pass, as recommended in the ANSYS 5.5 guide, so it will
NOT be appropriate for models with constraints applied to non‐MDOF nodes in the substructure region. The user
can get around this by manually assigning MDOF to all the nodes to which constraints are applied in the
component "super", in "model.db".

The master degrees of freedom for the superelement must have rotaonal degrees of freedom for Large
Displacement work. The user can try assigning MASS21 elements to the master degree of freedom nodes if the
elements in the model do not have rotaonal degrees of freedom. The MASS21 elements can have a REAL value
that contains zero values for the masses and mass moments of inera. This will introduce the requisite rotaonal
degrees of freedom.

When using elements like SHELL63, which have rotaonal degrees of freedom, I have encountered a rather odd
result: The Large Displacement soluon for the elements in the superelement (stored in "gen.rst" in the example)
is for the displacement of the substructure nodes with respect to a coordinate system embedded in the
superelement, not with respect to the global axes. This is not the case for small displacement soluons, which
appear displaced correctly. Since the superelement can undergo large rotaon, the displacement that is reported
and plo5ed for the nodes inside the superelement will be far smaller than the displacement reported and
plo5ed for the remainder of the model, in a Large Displacement soluon. This is because the coordinate system
embedded in the superelement moves with the superelement. In limited tesng, the SEQV stress plots appear to
be OK, if the load step that is to be expanded is idenfied properly. I have not invesgated what happens to
stress components in the Global and Element Coordinate Systems. Rotaonal transormaon of the stress and
strain tensors could be very complex. See the image below for a result combining SHELL63 elements,
substructuring, and Large Displacement.

A possible visual displacement fix (for the displacement plot problem of 6 DOF elements in Large Displacement
substructures) is to transform the displaced posion coordinates of the non‐MDOF nodes in the superelement on
the basis of the rotaons and translaons of the origin of the superelement in Global Coordinates. The origin of
the superelement will be the MDOF node that reports no displacements or rotaons inside the superelement (in
superelement coordinates); it appears to be the MDOF node with the lowest node number. Applying a
transformaon properly will require deducing or looking up the order of the sequence of rotaons that ANSYS
uses in Large Displacement work, or that ANSYS uses to report node rotaons. A reading of the Theory Manual
suggests that ANSYS internally uses quaternions for large displacement rotaons in space. This would be for the
usual reason that quaternions do not have a singularity in any orientaon, in contrast to Euler angles. It appears
that the rotaons reported at a node represent 3‐D components of a single rotaon vector, rather than Euler or
other angles, so the transformaon will need to be based on rotaon about a vector that starts at a known point
in space (the origin of the superelement), plus translaons. I will be working on this as my next project for this
web page. The reported rotaon may be complicated by rotated nodal coordinate systems (NROTAT) or
superelements that the user has employed... this will require checking. Reader feedback would be appreciated. If
I get anywhere with this, I will limit myself to displacements only. Transforming stress tensors would be a bit
much!

37 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The above plot was generated using the above sample /INPUT file on a Large Displacement model of a canlever
beam created with SHELL63 elements. A similar displacement disconnuity results with BEAM4 elements in a
similar applicaon, as shown in the images below:

Tip 46: Plot Applied Temperatures

In a thermal stress analysis, temperatures will be applied as a "load". Temperatures can be applied to nodes with
the BF command, to elements with the BFE command, or implied using other commands. (Check the BFE
command and the element type in the ANSYS documentaon for details on using BFE.) A colored element plot of
applied temperatures can be generated by using the commands /PBF,TEMP,,1 and EPLO, which Shows body force
loads as contours on displays, per the ANSYS Commands manual.

When using beam, link, and pipe elements, if the element thickness is shown with the /ESHAPE command before
execung EPLO, temperatures can be made visible with contour coloring for these line elements. It may be
desired to exaggerate their displayed thickness with /ESHAPE in order to make the temperature informaon
more visible.

Tip 47: Skipping Over Statements in an ANSYS Input File

ANSYS commands can be developed in a file that is executed with the /INPUT command. This can permit very
flexible and sophiscated use of the program. Here is a well known programming trick that can be used to
temporarily skip over part of an ANSYS input file. Set a parameter ("SKIP" in this example) to a value that tells an
*IF statement to jump over a secon of code that you want to skip. This is much quicker than commenng out a
block of code, or cuEng and pasng as an input file is developed and modified. *IF statements that use this

38 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

parameter could be located in a number of posions in the input file ‐‐ this permits changing the value of one
parameter at the beginning of the input file to cause skipping of input code in a variety of locaons.
! Input code to ANSYS...
! ...
SKIP=1 ! Set to 1 to skip, 0 to run the code inside the *IF...*ENDIF commands
*IF,SKIP,EQ,0,THEN
! ANSYS commands that are optionally executed...
*ENDIF
! ... more code follows

Since there is no compilaon of the input file, the "skip" technique uses li5le me in choosing to execute or
bypass the blocked off commands (ANSYS sll has to read the blocked out code in order to check off the number
of *IF and *ENDIF commands).

Tip 48: Stac Analysis Followed by Transient Analysis

Transient analysis by ANSYS can model transient vibraons, or the dynamics of a flexible mechanism in moon,
in addion to more complex effects. Inial condions can be applied, followed by transient analysis. One type of
inial condion is a zero velocity inial posion with stored energy. The stored energy can be potenal energy of
posion, elasc energy, or both. Another inial condion is an inial velocity. A model can have both inial
velocity and stored energy. A stac analysis may be desired to develop the stored elasc energy, before starng a
transient analysis. Remember that for transient analysis, the mass of the model must be input in the appropriate
mass units, not as weight.

The following ANSYS input file illustrates the execuon of a linear elasc stac analysis that sets an inial
condion, followed by a transient analysis. The model is of a canlevered beam that has a force applied to the
free end in a stac analysis. The transient vibraon that results when the force on the free end is removed is
obtained. No gravity is used. No damping has been applied, and ANSYS defaults for the numerical integraon are
implicit. This is a linear elasc soluon, so the numerical integraon should be stable, given the ANSYS algorithm
used. The me substep size for the transient analysis should be smaller than 1/20 of the period of the first few
modes of vibraon. (The user could tweak the ANSYS numerical integraon parameters so that very high
frequency response modes are numerically damped. Stability in Large Displacement nonlinear transient analysis
is probably not guaranteed, although damping and small me substep size should help.) The use of a consistent
mass matrix (default) should in general yield more accurate results than a reduced mass matrix if the element
density is coarse, however the use of a reduced mass matrix may shorten the soluon me in large models. The
movement of the p of the beam is plo5ed ‐‐ it is not a perfect sinusoid because the inial deflected shape of the
beam is not an exact match to a mode of vibraon.
! Transient vibration, cantilever beam, "plucking" the tip.
! For illustration purposes only. Use at your own risk.
fini
/clear ! Start fresh
/title,Transient Vibration of Cantilever Beam
/PREP7
ET,1,BEAM3 ! 2-D model of beam
R,1,1,1,1 ! beam crossection properties
MP,EX, 1, 30000000 ! Young's modulus, BIN units
MP,DENS,1, 7.34E-04 ! beam mass density, BIN units
K, , 0.0 ! keypoints
K, , 10. ! 10" long
L, 1, 2 ! line
LESIZE,ALL,,,8,1,1 ! 8 element divisions
LMESH, 1 ! mesh with beam elements
FINISH

/SOLU
ANTYPE,4 ! Select transient analysis
F,2,FY,-50000 ! apply down force on RHS node (unrealistically high)
d,1,ux ! constrain first node at LHS, in X direction
d,1,uy ! in Y direction
d,1,rotz ! and constrain rotation

time,0.0005 ! small time increment, static


OUTRES,ALL,ALL ! save all substep results
timint,off,all ! no time integration -- treat as Steady State
nsubst,2 ! two substeps to imply zero initial velocity for transient

39 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

kbc,1 ! step change load


solve ! find the static deformed shape

TIME,.002 ! time at end of transient (pre-determined to show oscillation)


NSUBST,100 ! time steps small enough to show vibration
KBC,1 ! step change load
fdele,all,all ! delete force -- show vibration after force is released
OUTRES,ALL,ALL, ! save all substep results
timint,on,all ! activate transient analysis
solve ! find the transient vibration of the beam
fini

/post1
/dscale,1 ! automatic scaling, to easily view final result
pldisp,1 ! show final deformed shape
FINISH

/POST26
NSOL,2,2,U,Y,UY ! results variable for plotting
/title,Transient Vibration of Cantilever Beam: Motion of Tip
PLVAR,2 ! graph oscillation of the tip of the beam
FINISH

NOTE: The use of the TIMINT command controls acvaon of the stac and transient porons of the soluon.
The stac soluon is obtained at two me substeps so that an inial velocity of zero is implied. An animaon of
the transient soluon can be generated for the full beam in /POST1, showing the transient vibraon in acon. For
an animaon, the user will have to set a sasfactory displacement scaling value with the command /DSCALE, not
use automac scaling. In the animaon of the Large Displacement moons of a mechanism, a /DSCALE seEng of
1.0 will generally be wanted, so that angles of rotaon look correct. A zoom seEng other than /ZOOM,OFF will
usually yield a be5er animaon.

Tip 49: File Compression for Model Storage

If no restart is to be executed on an ANSYS model, it will o2en be sufficient to save only the model database file
(*.DB) and the results file (*.RST) when archiving an ANSYS model. If the model was generated from command
input files, these will require storage. If only one load step was wri5en to the results file, the results file may not
require archival if the results are also contained in the database file. Load case, graphics output, and other files
may be wanted for archival. The database, graphics, and results files can be extremely large. They o2en compress
well using data compression programs such as the UNIX compress and gzip ulies (gzip is more powerful than
compress). On Windows computers, gzip is also available for NT (it handles long file names), in addion to the
shareware ZIP ulies, though you will need to dig on the Internet to find gzip for Windows NT ‐‐ have a look at
GZIP on the web and look for instrucons and the version for your computer (test before use). In FEA work, I find
the advantage of the gzip ulity to be that the compressed file name is simply the original file name with .gz
appended, and the uncompressed file is removed. The data storage requirement may be reduced by roughly 25%
to 80%, both on the hard drive, and on tape or removable disk. The data compression is significantly more
effecve, though much slower, than with the disk compression scheme that can be used by Windows NT 4.0,
which also does not keep the files compressed when they are sent over a network, or otherwise moved around.
Hint: Make sure that those who will decompress the files in future will know how to do it!

Tip 50: Organizing Large FEA Models

Examining the results of an FEA model, selecng and modifying porons of the model, and keeping a record of
what MAT (material) and REAL (shell thickness, beam size, etc.) values were used for various parts of a model
becomes very difficult with large FEA models. A very large structure represented with hundreds or thousands of
individual beam elements or areas meshed with shell elements, will require that the idenes, materials and
REAL seEngs for large numbers of parts be organized and recorded.

There is no one way to do this. Individual parts, or groups of parts, can be defined to be components that are
accessed by names of up to 8 characters. These parts can be geometric enes, elements, or nodes. Macros can
step through all the components using *GET commands. Collecons of components can be grouped into
component assemblies. An individual assembly could be created for those components that are to be selected
under certain circumstances, for analysis or for results review. The use of components makes it possible to refer
to either a part or a subassembly by one name, and easy to select it. The creaon of a component can save a set

40 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

of enes that were selected with a certain sequence of select logic, and be used in the enhancement of the
ANSYS select logic process. The database component commands are: CM, CMDELE, CMEDIT, CMGRP, CMLIST,
and CMSEL. A macro can be wri5en that will step through all components, ploEng them, including the
component name and informaon on it in the plot tle, or an annotaon.

Either REAL values for elements and enes, or MAT values, can be used to idenfy parts in a model with
numbers. (The element type will have to support a REAL value if a REAL is to be created for that element type.
However, a REAL value can be forced on an element even if the element type does not admit assignment of a
REAL. This can be done when creang an element, applied to the geometric enty that is to be meshed with the
element, or forced a2er the fact with EMODIF. When EMODIF is used, be cauoned that in a re‐meshing the REAL
assigned to the geometric enty will be used. When the element type does not accept a REAL seEng, the R
seEng can simply be le2 blank. In that case, the commands NUMMRG,ALL and NUMCMP,ALL can make a mess
and should not be used in this all‐inclusive form ‐‐ sck to specific forms such as NUMMRG,KP.) In a model made
of shell elements or beam elements, for example, each plate or beam could be described with its own REAL
value, even though there may be many plates or beams of a given thickness or size within the model. Where a
group of parts will always be chosen with the same REAL value, they could share one REAL seEng. This makes
changing the shell thickness or the beam characteriscs very simple, and provides easy part selecon with
commands like ESEL, ASEL, or LSEL, as appropriate, according to their REAL value, or a range of REAL values. An
array (see the *DIM command) could correlate REAL values with other informaon, such as part names (with an 8
character limit). The same approach can be taken with the seEng of MAT values for describing the material
properes. Using material numbers for part idenficaon, however, could get cumbersome, because there are
such a large number of individual material property seEngs, and they may be temperature dependent in some
models, or include material nonlinearity.

I find it helpful NOT to set any of the geometric enes or elements in a large model to a MAT or REAL value of
one. One is a default value that is somemes assigned when no value has been assigned by the user. Geometric
enes may have a value of zero when nothing has been assigned. I can then select things that have a MAT or
REAL of zero or one to check on whether I have forgo5en to assign a value to any part of the model. Plots with
coloring assigned according to REAL or MAT will help in checking a model.

When REAL or MAT values have been used to differenate between different parts of a model, the user must be
careful not to use a NUMCMP,ALL or NUMMRG,ALL command on enty numbering, because it will compress or
merge out REAL and MAT values. This will destroy the idenficaon scheme. The NUMCMP command will have
to be called with the specific quanes to be compressed individually idenfied, such as NODE, as in the manual.

When the parts have been idenfied by different REAL or MAT numbers, a coloring scheme based on REAL or
MAT can be used during element or geometric enty plots, to improve idenficaon of the parts of a model, and
the appearance of the FEA plot. Cauon: ANSYS does not use a "4 color map theorem" when ploEng (can't do
this in 3‐D anyway) so parts of differing REAL or MAT may be adjacent and have the same color.

Arrays could be used to assign numbers to component names, and to keep track of what REAL values were used
by the elements within components. Arrays could assign 8‐character names to the parts described by different
REAL values. Arrays could be used to set several values of a number of shell thicknesses or beam sizes to be
examined in a series of analyses that are to be run automacally. As discussed above, this parameter informaon
can be included in annotaons during model and results ploEng, making model review easier and less error‐
prone.

Tip 51: Selecng Nodes in a Stress or Strain Range

The selecon of nodes in a certain stress range can be effected with, for example, the command
NSEL,S,S,EQV,40000,9999999 in order to get nodes with EQV (Von Mises equivalent) stresses from 40000 to
9999999. This and similar commands can be used to get at only the porons of a full model that are significantly
stressed.

The effecveness of this command can be compromised somewhat by nodal stress averaging, shell stress surface
selecon (TOP, MID, or BOT), and other complicaons. The command would typically be followed by the two
commands ESLN and NSLE to be able to plot the associated elements and their stresses.

If the above part idenficaon scheme using REAL values has been employed, the stress level selecon command

41 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

could be followed by a macro that selects all parts that match the REAL types of the selected elements. This
would make it possible to see all highly stressed parts. This approach is helpful with complex models with parts
visually hidden by other parts.

Tip 52: Selecng Nodes that are Subjected to Nodal Coupling

Nodes that are coupled can be selected with commands such as NSEL,S,CP,,1,999999 in order to show only the
coupled nodes, and to have the opon of using picking to delete nodal coupling, or for other purposes. Once
coupled nodes have been selected, work to evaluate the forces resulng from the coupling can begin. Similarly,
nodes can be selected according to their presence in constraint equaons (CE), their applied displacement (D),
forces applied, and other criteria ‐‐ see the NSEL command for further informaon.

Tip 53: /NOPR and /GOPR Speed Up Input Files and Macros

When a long input file or macro is read while running ANSYS interacvely, text informaon is wri5en to the
output screen and oponally to an output file. If a significant number of *GET and similar operaons are being
executed, a large quanty of text informaon will be wri5en to output. If the input files and macros are known to
be fully debugged, they may execute faster if they start with /NOPR and end with /GOPR in order to switch off
text output while they are running. If their execuon is causing geometry, nodes, or elements to be generated, a
speedup may result from temporarily switching off the generaon of graphics with IMMED,0 and /SHOW,OFF.
They can be re‐acvated with IMMED,1 and /SHOW,TERM. You may want to consider the /UIS command also.

Tip 54: Using Commands IMMED and /UIS and /SHOW,OFF to Suppress Plo;ng

I somemes develop a model interacvely, seEng up some dimensions as parameters, then manually modify
and add to the log file that is generated. The resulng log file becomes an input file that I can use for parametric
generaon of a model. When I run this input log file, I don't want all of my various plot commands to be
executed, only those for finished model display and results review. This can be implemented with the IMMED,0
(for interacve execuon), /UIS,REPLOT,0 and /SHOW,OFF commands. They can be re‐acvated with IMMED,1
and /UIS/REPLOT,1 and /SHOW,TERM. If the graphics output is intended to be sent to a graphics file, the
command /SHOW,FILE can be used for re‐acvaon of wring to a file previously designated by a
/SHOW,filename command. If wring to a file, the immediate mode ploEng is off by default. Be warned that if
you change to another output graphics filename with the /SHOW command, then come back to the first
filename, the first file will be overwri5en.

When re‐running a log file using /INPUT the messages that required clicking "OK" will be generated and execuon
will pause. This means that the /INPUT command will not re‐run all log files una5ended.I have not found the /UIS
command to completely stop this, such as when the /CLEAR command is issued. Running batch is somemes
desirable.

Tip 55: What's the Bauschinger Effect? Comments on Material Yield

I first wanted to do elasc/plasc analysis in ANSYS to get a feel for the onset of failure in an automove part. It
was of value to show that one proposed crossecon shape was significantly be5er than another. This required
me to use plasc material properes for steel, in nonlinear large deflecon analysis in ANSYS. Unfortunately, I
had taken neither an academic course in metal forming, nor a5ended an ANSYS course in nonlinear analysis.
Digging into the ANSYS manuals, the first thing one has to decide on is whether to use Kinemac Hardening or
Isotropic Hardening for the material model. Fortunately, high precision was not needed for what I was doing, so
the exact stress/strain curve and the choice of material yield rules were not a big concern. Sll, I wanted to know
what I was doing, within reason. The manual menons the relaonship between kinemac hardening and the
Bauschinger effect. A2er some poking around, I finally found a basic descripon of the Bauschinger effect in
Timoshenko's Strength of Materials Part II: Advanced Theory and Problems Third Edion, Krieger, Florida, 1976.

Essenally, a tension test causing slight yielding permanently deforms (causes slip in) unfavorably oriented
crystals before other crystals in a specimen. Consequently, upon unloading, the permanently deformed crystals
are in some compression. A2er re‐loading with tension, the onset of yield is raised because the deformed crystals
do not reach their new slip stress unl the load is higher than the first me. If the material is compressed a2er
tension loading, the deformed crystals reach their compression slip stress before the rest of the crystals, with the
result that compression yielding starts sooner than in a fresh unstrained specimen. Quong Timoshenko, "Thus

42 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

the tensile test cycle raises the elas+c limit in tension, but lowers the elas+c limit in compression." This is the
Bauschinger effect.

One thing that may affect the choice of a yield model in ANSYS will be what is supported by an element type.
Shell 63 does not support nonlinear material properes at all. Shell 181 supports isotropic hardening but not
kinemac hardening. Shell 43 apparently supports both, but it is suggested that Shell 181 is more capable.

It should be remembered that ANSYS requires a true strain curve in material characterizaon, not the
engineering strain curve, when mullinear curves are entered. In quick‐and‐dirty checks on the possibility of
failure of a structure, I somemes consider it sufficient just to use a bilinear model, with the yield poron of the
curve fairly flat. This wouldn't do for models of metal forming in manufacturing, but can somemes be used to
assess whether structure failure is a concern when some porons of an elasc model are exceeding yield. It may
be desirable to load the structure beyond the design load in order to observe where significant failure starts, in
order to get a feel for margin of safety. This may require arc‐length analysis. (My use of the word "quick" in
"quick‐and‐dirty" is overly opmisc.)

Some design codes have rules for elasc‐plasc or for fully plasc analysis that would have to be used, if such an
analysis was needed to jusfy or qualify a design legally or to fulfill a contract.

Tip 56: Thought Experiments

Nothing so focuses the mind on the design details of a product as hearing that it failed in tesng or in service. You
don't have to be Einstein to perform the following thought experiment: Suppose that you heard that some aspect
of a design had failed in service. The failure could be yielding, buckling, crack growth, fracture, vibrang to death,
unacceptable deformaon, wear or binding, or whatever is appropriate. Brainstorm as to whether it could
happen, what could have caused it, and how analysis could highlight what is or could be wrong. Do this thought
experiment for as many characteriscs of the product as you can. You may substanally extend the number of
things that you consider in the design, and in the FEA work. It may save someone's neck, either figuravely or
literally.

Possibilies and "What If's":

What could cause yielding -- are fasteners or welds overloaded? Were their loads even checked -- and for all load
cases, or the bounding load cases? Are the bounding load cases complete? Are stresses above yield over a significant
region? Are surface stresses of shell elements doing something unusual? Were nonlinearities considered? Were all
possible combinations of loading considered? Is there a high load situation that was not considered? Were all
components evaluated in FEA? Is there an unusual boundary condition arrangement that has not been considered? Was
the FEA mesh too coarse? Were relevant details that cause stress concentrations left out of the model? Can what was
discounted as a local stress concentration lead to progressive collapse or crack growth?
Can buckling arise? Have both linear and nonlinear approaches to buckling possibilities been considered? Has a portion
of the model been represented so simplified that buckling possibility is not detected? Has nonlinear buckling been
considered at loads greater than the design loads, so that some sense of the margin of safety is obtained? Can
restraint of thermal expansion cause stress and buckling?
Crack Growth -- what details exist that could possibly be sites for crack growth? Do surface stresses give any
warnings? Where could details be included to reduce crack growth possibilities? Are regions that have geometry that
could lead to crack growth highly stressed and/or cyclically stressed? Is direct tension on welds causing Type I fracture
loading? Is shear, bending or torsional loading (applied forces and moments, and/or applied displacements and
rotations) on structural details causing Type II or Type III fracture loading on welds? Is the loading significant? Is fatigue
an issue? Is fracture analysis warranted? Is there a reliable shortcut guide to what is tolerable? Is such a guide even
possible? Could crack growth be so rapid that it happens between inspections and causes sudden fracture? Are cracks
detectable at a size that does not immediately cause fracture? Should inspection intervals be more frequent when the
product is new?
Vibration -- what loading could stimulate vibration? What frequencies could drive vibration? Is there adequate structural
damping or are there other mechanisms to suppress trouble? Where are the natural frequencies of vibration? Do steady
state responses or random vibration responses need to be evaluated? Is flow induced vibration a possibility? Will sound
and noise cause destructive vibrations? Have all possible boundary condition arrangements been included in assessing
vibration?
Will large deformations go outside of what is acceptable? Is the structure stiffness high enough for the product use? Will
deformation cause loss of function, contact with the surroundings, binding, interference, collision, or excessive wear of
moving parts?
Is the design something that can be manufactured with the quality and uniformity required to avoid structural weakness?

The analyst should extend the above items to everything that needs to be considered, or that could go wrong.

43 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

Tip 57: Control of Meshing

Since I am using ANSYS 5.3, I can't comment on the latest in ANSYS automac meshing capabilies, but a couple
of suggesons about the basics may be helpful. You can select the lines that have not yet had mesh density
applied, with the command "LSEL,S,NDIV,,0" as a check that all lines have had mesh density applied, or for
convenience. The same type of command can be used to find the lines with other mesh densies.

Basic ANSYS training should have taught you that line and area concatenaon can help you get mapped
meshing, which gives relavely neat regular meshes such as all four‐sided area elements, or all six‐sided solid
elements. This can make a big difference in some models.

Tip 58: Four View Plot

When assessing modes of vibraon or deflecon of a 3‐D structure, I have found it convenient (though slower) to
generate ANSYS plots showing my model in four views on one sheet of paper or screen plot. The tradional
views: Front Elevaon (front), Plan (top), Side Elevaon (right), and Isometric (iso), can be posioned in four
windows that are located in the lower le2 quarter, upper le2 quarter, lower right quarter, and upper right
quarter of the plot, respecvely. (Other standard view layouts can be substuted). A displacement plot of a
mode shape with PLDISP or PLDISP,1 with these four views acve will leave fewer ambiguies about what is
happening with mode shapes than a single‐view plot. The only shortcoming is that the images are small ‐‐ I prefer
to use 11" x 17" paper in landscape mode for these plots.

An annecdote I heard from a guy I knew: A U.S. ship entered a foreign shipyard needing a new propeller. The
ship's engineer supplied a drawing, and a propeller was cast and installed. The ship was launched and powered
up. When set to go forward, the ship went backward ‐‐ the shipyard used the European standard view
interpretaon of an American drawing, and the propeller was mirror imaged!

The following code can be put into a macro to generate a four‐view screen. Customize it as you wish ‐‐ I include
commands to turn off PowerGraphics and to use Centroidal sort. This permits clean plots on paper with large
models. NOTE: Users may want to set the /DSCALE value to the same level in all four windows with
"/DSCALE,ALL,value".
! For information only. Use at your own risk.
! Put these lines in a macro
! Set screen to show four standard views:
! User may want to set /DSCALE to the same value in all windows
/WIN,1,LTOP ! Window 1 left top
/WIN,2,RTOP ! Window 2 right top
/WIN,3,LBOT ! Window 3 left bottom
/WIN,4,RBOT ! Window 4 right bottom
/WIN,5,OFF ! Turn off Window 5
/VIEW,1,0,1,0 ! Window 1 top (plan) view
/VUP,1,Y ! Reference orientation
/VIEW,2,1,1,1 ! Window 2 ISO (isometric projection) view
/VUP,2,Y ! Reference orientation
/VIEW,3,0,0,1 ! Window 3 front (front elevation) view
/VUP,3,Y ! Reference orientation
/VIEW,4,1,0,0 ! Window 4 right (side elevation) view
/VUP,4,Y ! Reference orientation
/AUTO,ALL ! Fit all windows
/PLOPTS,INFO,1 ! Include information column
/PLOPTS,LEG2,0 ! Don't include view information
/TYPE,ALL,2 ! Centroid sort, better print that Z-buffer
/CPLANE,0 ! Cutting plane
/graphics,full ! NOT PowerGraphics (fewer facets?)
! User has to issue the plot command

The next code can be used in a macro to return to a front view in one window. Again, the user may want to
customize some of the lines:
! For information only. Use at your own risk.
! Set screen to show one front view in Window 1
/WIN,1,SQUA ! Full square Window 1
/WIN,1,ON ! Turn on Window 1
/WIN,2,OFF ! Turn off Window 2
/WIN,3,OFF ! Turn off Window 3

44 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

/WIN,4,OFF ! Turn off Window 4


/WIN,5,OFF ! Turn off Window 5
/PLOPTS,INFO,1 ! Info on for right column
/PLOPTS,LEG2,0 ! Don't show the view information
/VIEW,1,0,0,1 ! Front (front elevation) view
/VUP,1,Y ! Reference orientation
/TYPE,ALL,2 ! Centroidal sort, better print than Z-buffer
/CPLANE,0 ! Cutting plane
/graphics,full ! Not PowerGraphics (fewer facets?)
! User has to issue the plot command

A2er running one of the above view‐generang macros, the user has to issue a plot command to see the result.

Tip 59: Quick Review of Mode Shapes

To start prinng plots of mode shapes directly from ANSYS mode shape results, having the hardcopy window pop
up automacally, type in an input line such as:
SET,1,1$PLDISP$/UI,COPY

The dollar sign separates the commands that are grouped on one input line. Click the hardcopy OK bu5on to kick
off the hardcopy. You may want to set the print to landscape mode, first. Then, to print plots of the rest of the
mode shapes, type:
SET,NEXT$PLDISP$/UI,COPY

Simply keep repeang the second line (to avoid re‐typing, double‐click it in the ANSYS Input window), and
clicking the hardcopy OK bu5on, to get the rest of the modes printed. Note that the SET,NEXT command will loop
back to the first mode shape a2er the number of modes stored in the RST file has been exhausted.

You may see the somewhat odd message:

This comes up because of the /UI,COPY command, and has something to do with the /ZOOM command.
Consequently, this method may not work sasfactorily if your zoom is not off. In viewing mode shapes, it will be
typical to have zooming off.

The following code fragment read from an input or macro file can automacally plot a set of mode shapes. *GET
commands are used to detect informaon on what substep and frequency are read. The user does not need to
know how many modes were generated, so automated ploEng to a file is simpler. The displacement plots will
contain substep and frequency informaon. This code should cope with degenerate eigenvalues or rigid body
displacements. Execute this from within /POST1 a2er a mode case analysis was run, or a2er the database and
RST file for a mode case analysis are loaded. There is no error check, so this must be used properly. The user will
want to test and customize these commands:
! For information only. Use at your own risk.
set,1,1 ! set to the first mode
pldisp ! plot the first mode
*do,iii,1,9999999 ! use a very large number
set,next ! set to the next mode
*get,ntotal,active,0,solu,ncmss ! cumulative substeps -- cycles to 1 if all modes in RST don
*get,thefreq,mode,iii,freq ! use this line if desired to get frequency into a parameter
*if,ntotal,eq,1,then
*exit ! exit do loop if done
*endif
pldisp ! plot the displaced shape

45 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

*enddo

Tip 60: Using ANSYS Help

When using ANSYS interacvely, help on any command can be accessed immediately by typing
HELP,commandname into the input window. If the HELP applicaon has been launched independently, the quick
way to get help on a parcular command is to use the "Navigate" and "Help On..." menu choice. Type the
command name into the "Help On" text box that pops up, then click the Apply bu5on.

This will send the help program to the Commands manual for the command name typed. If you click the "Apply"
bu5on, the "Help On" dialog box remains visible, and can be used to type in other command names.

The online ANSYS help system makes the need for trips to hard‐copy documentaon much less frequent. The
Help applicaon can be launched while ANSYS is running in the background, so ANSYS documentaon can be
studied while a large model is solving.

Tip 61: The FEA Job Hunt

Not strictly an ANSYS issue, I want to put in my own two cent's worth on this topic, which is of interest to all of us.
Some me back when I was job hunng during a recession, I was given a pre‐screening interview over the phone.

46 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

The interviewer owned a consulng firm. It rapidly became apparent that he had been lied to, many mes and
by many people, about their FEA experience. I had been using a company's proprietary FEA code and was not
experienced with the major commercial programs, so was immediately suspect. Another me, I heard of an
applicant using another guy's FEA model images to present in a job interview as "evidence" of his own
experience. I interviewed a guy who claimed experience with "a locally available product I wouldn't know." It
became apparent that he had been coached and knew only the buzz words. When job hunng it is challenge
enough to compete with other experienced people ‐‐ misrepresentaon we don't need.

The FEA job applicant should be able to present evidence of academic and/or post‐academic training. The
applicant should have a por[olio of previous work. The applicant should be instructed to bring these to the
interview. The por[olio informaon can be a li5le awkward when the products are proprietary. If it would be
illegal to present any images of work done, then I suggest a keen applicant independently develop a set of small
models using ANSYS/ED that illustrate the FEA techniques with which the applicant is familiar. The applicant
should be able to describe the modeling consideraons, techniques, compromises, pi[alls, and post‐processing
possibilies of the examples.

Of course, with good references and personal networking, the above situaons are less of a concern. Sll, as with
computer programming, the producvity of individuals can vary surprisingly. Consequently, the applicant should
be able to describe what makes FEA producvity possible, some of the modeling shortcuts possible, and give an
energec, arculate and confident presentaon of self.

Quesons of the "how would you model this" and "how would you handle this" type are just as relevant as they
are in other professional interviews.

I have had both excellent and very poor interviewers assessing me. With some, I've had to politely direct the
interview just to be able to point out my range of skills. On the basis of my own small set of experiences I would
say that first impressions are very telling ‐‐ if you get a bad feeling about a place during the interview, it may be
for a good reason. If you see a place as being a welcoming workplace with a healthy environment, and the
people you meet behave well and are socially skilled, the odds are that as long as you funcon as a valuable
employee, life there will be OK. I've had an interviewer keep me waing for an hour and a half past the
appointment me. I got the job, and found that things were frequently out of control, and the guy was
impossible to see. I had an unpleasant "stress interview", and sure enough, the place was cheap, had an
unhealthy work life, and poorly structured leadership. Another interviewer struck me as highly manipulave,
trying to goad me into making negave comments about employers and ethnic groups (of all things‐‐talk about
playing with fire‐‐a personnel manager who apparently fancied himself a psychologist), and giving me inaccurate
data on hiring intenons. A friend of mine got the job and detested it, saying the place was poisoned with
polical games. I've had a thoroughly posive interview, got the job, and found I was with great people. Ignore
their hype: What you see is (most likely) what you get.

To end this on a few posive notes: Employers want to hire someone who will be a success for them. Your boss
will be very happy if you make everyone's life easier through your contribuons. Prepare yourself to give a
picture of your range of skills, energy, confidence, communicaon skill, ability to work with others, range of past
experience, and ability to me‐manage a set of responsibilies. Some employers begrudge every penny, but
others are pleased to compensate you a5racvely if you produce well. Size up the potenal employer carefully,
for your me is valuable. Best of luck.

Tip 62: *VPUT and DESOL

I have no idea why the commands manual entry for *VPUT describes the parameter ParR as "The name of the
resulng vector array parameter." The parameter ParR is the source of data, NOT what is changed by *VPUT.
Note that *VPUT can write to node results, and to an element ETABLE. There is a difference between wring to
"nodal degree of freedom results", and what the manual calls "element nodal results" with *VPUT.

The *VPUT command can write informaon to the node results which can then be plo5ed as if it was the nodal
results, using the PLNSOL command. The command manual tells us that the effect is permanent for degree of
freedom results (changing the database), but temporary for all others (derived results, not changing the
underlying database). Wring stress data with *VPUT does not affect element plots with PLESOL,S,op+on. If you
use *VPUT to write to "element nodal stress results", immediately do a PLNSOL plot to see the effect, do a PLDISP

47 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

plot (seeing unaffected degree of freedom data), and then do another PLNSOL stress plot, the la5er PLNSOL plot
shows original data that is unaffected by *VPUT. The temporary modified PLNSOL stress plot effect does not
cooperate with PowerGraphics to give a plot with contour disconnuies. Before using the *VPUT temporary
effect in ploEng nodal stress (or other derived) results, test the method carefully for errors, and for any errors in
what I have just said! Warning: In a shell model, the plot of temporary *VPUT derived data may make the plot
legend indicator for the TOP, MID or BOT surface of the shell elements meaningless ‐‐ annotate the plot to inform
the reviewer.

The DESOL command does write derived informaon into the database to the nodes of elements, on a
permanent basis. The command is powerful, and potenally dangerous. Annotate plots and change tles to
inform the reviewer. It can be painfully slow to apply DESOL to every node of every element, element by
element, in a large model.

Tip 63: How to Divide One Element Table Column by Another

To divide one column of an element table (ETABLE) by another column, use the SEXP command. Make sure the
denominator is nonzero! Per the commands manual, SEXP "forms an element table item by exponenang and
mulplying." The result of SEXP is formed from (ABS(Lab1)**EXP1)*(ABS(Lab2)**EXP2). Because of the absolute
value operaons that protect ANSYS from complex numbers being generated, you will get the absolute value of
the answer you want. To divide with SEXP, use a posive exponent EXP1=+1 for the numerator Lab1, and a
negave exponent EXP2=‐1 for the denominator Lab2.

If you must have the ETABLE column answer with its posive or negave sign, one way to get it would be to use a
blend of SEXP and SMULT. Given ETABLE columns A and B, you want a column of A/B values with their signs. Use
SMULT to form C=A*B which has the same sign as A/B. Use SEXP to form D=1/(ABS(B)**2) which is posive. Use
SMULT to form E=C*D. Now the column E=A/B with its correct sign.

Tip 64: Element Tables (ETABLE) and Array Data Exchange ‐‐ An Example

Note that *VGET and *VPUT can communicate with an ETABLE and with an Array. In this way, informaon that
can only be obtained in either an ETABLE or an Array can be moved back and forth for manipulaon, evaluaon,
and display. You have to be inside /POST1 to use ETABLE. SOLVE has to have been executed in order for ETABLE
data to be available. In brief tesng, I found paral solve execuon not to be sufficient to make any data
available for an element table, for example, element volume. In order to use *VPUT on an ETABLE, the array and
ETABLE column will have to already exist. Create the ETABLE column by making a copy of an exisng ETABLE
column (you can use the SADD command, for example), or by creang a new dummy column from model
informaon. Give the new column an appropriate name for the data that will come from the array. If selecon of
only a subset of your elements is in place, or if there are gaps in the element numbering, it may be preferable to
use a *VMASK during the *VGET and *VPUT calls to avoid warning messages. The *VMASK array contents can be
based on a test of element selecon. Array size can be based on MIN and MAX values for selected element
numbering, if you use an offset during data movement. Minimizing array size is a good reason for compressing
node and element numbers when developing a large model, before load cases, soluons and array dimensions
are prepared.

An example with shell elements: put shell element volume in an ETABLE, shell element area in an array, move
the area array into an ETABLE column, divide volume by area to get shell element thickness for each element in a
new ETABLE column, and do a colored ETABLE contour plot of your model's shell element thicknesses (do not
average the values in the ETABLE plot). If the shell element is of varying thickness, this process generates an
average for the element. Print a colored picture of this plot. Augment this with an element plot using /ESHAPE,1
and coloring based on REAL constant values. This should help with "pesky visitors" who are always wondering
how thick certain parts of a complex shell model are. It may help you catch some modeling errors. Here is a
macro to generate the ETABLE thickness column and plot the model colored by element thickness. This macro is
wri5en to process Shell63 elements in the selected set of elements. It is a basic macro with no tesng to prevent
error condions, or "cleanup" a2er execuon. It illustrates movement of an array column into an element table
column, use of masks, offset of the transferred data to minimize array and element table size, and division of one
ETABLE column by another using the SEXP command. The macro has to be re‐executed if the model is changed ‐‐
an ETABLE update would not be sufficient. The denominator that contains element area in the divide operaon
should automacally be nonzero because all shell elements have areas.

48 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

! ETABLE and Array usage and interaction example.


! For illustration only. Use at your own risk.
! This example is used on SHELL63 elements.
! An array is created called "aaa", element selection may be reduced,
! and element tables are used. A plot results.
! Run from within /POST1
! Put element volume in an ETABLE, and element area in an array.
! Move the area array data into the ETABLE
! Divide element volume by element area to get an element thickness column.
! Element thickness value should be the average for variable thickness elements.
! Plot the ETABLE thickness data for a view of the Shell 63 elements
! that are contour colored according to the element thickness.
!
esel,r,ename,,63 ! re-select only the SHELL63 elements
aaa= ! kill the array to be used
*get,xmax,elem,,num,max ! what is the highest element number selected?
! element number compression will be desirable
*get,xmin,elem,,num,min ! minimum element number
*dim,aaa,array,xmax-xmin+1 ! array to hold areas has to be this big
*vget,aaa(1),elem,xmin,esel ! fill array with info on whether element is selected
! -1=not selected, 0=undefined, 1=selected
! offset with xmin (see the manual)
*vmask,aaa(1) ! use element selection info as a mask
*vget,aaa(1),elem,xmin,geom ! fill the array with geom info on the elements
! for shell elements this is AREA. Offset with xmin
etable,volu,volu ! create element table column with element volume
sadd,geom,volu, ,0,1 ! create dummy column to contain other data
*vmask,aaa(1) ! use array as a mask (geom data is positive or zero)
*vput,aaa(1),elem,xmin,etab,geom ! put data into ETABLE "geom" column. Offset with xmin
sexp,thick,volu,geom,1,-1 ! divide volume by area, get avg. shell element thick.
/title,ETABLE Plot of Shell 63 Element Thickness Values
pletab,thick,noav

You can then select a few elements of interest, and list the element table for the column containing the
thickness, to get a numerical thickness value for those elements. You could use *VGET to put the REAL values for
the shell elements into an array, and transfer that data into an ETABLE column. Then when you list ETABLE
informaon for a selected element, you could see the REAL and the thickness value side‐by‐side. Contour colors
could be explicitly assigned to the different thicknesses found in the ETABLE column, if the number of thicknesses
was not too great. You could place a bu5on on the toolbar that calls a macro that (1) checks that the user is in
/POST1, (2) checks that there is results data in the database, (3) asks you to pick elements with the mouse, then
(4) generates and prints the ETABLE values for the REAL, thickness, and stress values of those elements, and (5)
finally cleans up and restores the original element selecon.

Another use: Put shell element mid‐plane Sx, Sy, and Sxy into columns, and mulply them by the element
thickness column. The resulng data would be similar to TX, TY, and TXY data that can be obtained directly, but
now would be in the direcon defined by the acve coordinate system. A macro could (1) have the user pick
nodes or keypoints to define a local coordinate system, (2) make it acve, (3) develop this ETABLE data and
generate plots colored by load‐per‐unit‐length in the known direcons, then (4) clean up. This could be done for
SINT or SEQV if desired.

The possibilies are endless.

Tip 65: Error Esmaon, PowerGraphics, and ERNORM

Error Esmaon will not be available when you enter /POST1 if PowerGraphics is acve. If you turn off
PowerGraphics, then the "Opons for Output" in the GUI will offer the ERNORM seEng that acvates error
esmaon. If PowerGraphics is not acve, then the "Opons for Output" in the GUI will not offer the AVRES
seEng that controls disconnuity of contours at changes of material and REAL value for elements. The first me I
encountered this was when I couldn't get an error report, and couldn't imagine why, unl I had poked around for
a while. I had entered /POST1 with /PowerGraphics acve. ERNORM is ON by default when you enter /POST1,
but only if PowerGraphics is OFF with /GRAPHICS,FULL.

Tip 66: Concatenate and Mesh Last

One of the things I have seen go wrong in model development is: I have concatenated lines and/or areas, then
performed a boolean operaon on them. Model problems resulted and I had to start from scratch (I re‐ran most

49 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

of the log file); I suggest that boolean operaons happen first ‐‐ concatenate and mesh last. (This was with ANSYS
5.3; solid modeling problems are reduced with each version.)

I have found that when three or more areas are concatenated, the lines that are implicitly concatenated have to
be concatenated manually before successful mapped meshing will proceed. When only two areas are
concatenated, the lines concatenate automacally.

When concatenated areas are used to map mesh a volume, it may happen that an adjacent volume defined by
an area that is part of the concatenated set will not mesh unl the "pseudo‐area" that results from the
concatenaon is deleted. I've had occasions when this did and did not happen. The concatenated lines may
need cleanup, also. It is possible that if the volumes that do not require concatenated areas in order to be
meshed, are meshed first, that the remaining volumes can have area and line concatenaon created a2er, and
then be meshed themselves, without error messages. This consideraon may compromise easy mesh refinement
and adapve meshing. It may be necessary to go to tetrahedral elements for easy meshing, unless ANSYS
revisions have fixed up mapped meshing concatenaon.

Trivia: I first encountered the word "contatenate" when using an IBM 370 a long me back. A neighbour told me
that "concatenate" is based on the Lan word for "chain".

Tip 67: ANSYS Output of Data to Files for Use by Other Programs

Numerical data contained in parameters can be output into ASCII files using the *CFOPEN, the *VWRITE, and the
*CFCLOS commands. The *VWRITE command only works when called from an input file that includes a format
statement similar to FORTRAN. The following simple macro makes the *VWRITE command easy to use:
! Put this code into a macro file called "writer.mac"
! call with: writer,data
! write data in arg1 to a file previously opened with *CFOPEN
! later on, close the file with *CFCLOSE
*vwrite,arg1
(E16.8)

The following ANSYS /INPUT data test will demonstrate the use of the above macro. In this test, the macro has
been called "writer.mac" and it is in the current directory. Either numbers or parameters that evaluate to
numbers can be used in the following commands:
! Example of data output to file from ANSYS
*cfopen,myoutput,dat
writer,123
writer,234
/clear
writer,345
writer,456
*cfclos

Execung the above commands from within ANSYS generates the following data in the file "myoutput.dat", and
demonstrates that the output file remains open in spite of the /CLEAR command. The following is the content of
the file "myoutput.dat":
.12300000E+03
.23400000E+03
.34500000E+03
.45600000E+03

The filename used in the demo ended in ".dat" so that the data would be accessible to the MathCad program
from MathSo2, Inc. The above procedure makes it possible to get ANSYS informaon out into another program
without errors in manual transcripon. If you can get the ANSYS informaon into a parameter, it can be moved
to an external file. Data can be read back into ANSYS with the *VREAD command. Similar methods can be used
to move arrays full of data. Note that the *VGET and *VPUT commands can move data between element tables
and arrays, and the arrays can be used to put data into external text files, so significant automated data
movement is possible. This approach can help to reduce data errors in reports.

Here is an example of temporarily switching the ANSYS /OUTPUT informaon from the default, to a file. Note

50 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

that certain list informaon will not go to the file when the GUI is in use (read the manual).
! The following code switches /OUTPUT to a file,
! writes two comments, writes PRSECT information on
! linearized stresses along a previously defined path,
! then returns /OUTPUT to the default.
/output,lin_path,out
/COM,Linearized Path Results from PRSECT
/COM,Compare Results with Code Allowables
PRSECT, ,0
/output

This gives a permanent record that is independent of plo5ed results.

Tip 68: Wring Array Columns to Output or to Files

The *VWRITE command can be used to output an array column, in addion to scalar parameters. The array
posion from which the prinng will start must be indicated when execung the *VWRITE command. As
menoned above, the *VWRITE command cannot be executed inside the GUI, it has to be executed from an
input file or macro. The *VWRITE command prints the data from the starng posion on down to the end of the
column. The output that results can be re‐directed with the /OUTPUT or with the *CFOPEN and *CFCLOS
commands. The following two macros can be used to make calling the *VWRITE command easy. The array must
exist, having been created with a *DIM command. The first macro works on a 1‐dimensional array parameter.
Note the instrucon on how to call the macro, with the array parameter name surrounded by single quotes in
order to delay the evaluaon.
! This macro will print a 1-dimensional array
! according to the starting position indicated.
! If this macro is called WRITEAR1.MAC and an
! array called COL1DATA is to be printed from
! position COL1DATA(1) to the end of the array
! then call this macro with the statement:
! WRITEAR1,'COL1DATA',1
! setting the name of the array in single quotes.
! The user may wish to change the FORMAT statement.

*vwrite,arg1(arg2)
(E16.8)

The second works on a 2‐dimensional array parameter. The macro call will include the row and column posion
from which to start. The *VWRITE statement will cause prinng of a column of the 2‐dimensional array. When
calling the macro, the array parameter name is, as above, enclosed with single quotes to delay evaluaon.
! This macro will print a column of a 2-dimensional array
! according to the starting position indicated.
! If this macro is called WRITEAR2.MAC and an
! array called MYDATA2D is to be printed from
! position MYDATA2D(1,2) to the end of column 2 then call
! this macro with the statement:
! WRITEAR2,'MYDATA2D',1,2
! setting the name of the array in single quotes.
! The user may wish to change the FORMAT statement.

*vwrite,arg1(arg2,arg3)
(E16.8)

Given that all ANSYS arrays are implicitly 3‐dimensional, the second macro above could be used to print out a
1‐dimensional array if the second calling parameter is set to one. A similar macro can be wri5en to print a
"column" of a 3‐dimensional array. If a term in the array is MYARRAY(III,JJJ,KKK) then the *VWRITE command will
cycle through the values of the III index when prinng out data. The macro for a 3‐dimensional array could be
wri5en so that it tests ARG2, ARG3, and ARG4 to see if they are zero. If they are zero, then they presumably were
not entered, and the correct form of a *VWRITE command could be used to print a scalar, 1‐D array, 2‐D array, or
3‐D array, as appropriate. Such a macro is illustrated below. Its use would be very error prone without error
checking code. A scalar need not have its name enclosed in single quotes in calling this macro, but an array
would have to be enclosed in single quotes as in the above examples. A user may want to customize this macro
to change the FORMAT statements, or to remove the /NOPR and /GOPR commands.

51 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

! Macro to write a scalar or an array column, as appropriate.


! Indicate the starting position for *VWRITE if an array is used.
! Enclose an array parameter name in single quotes. #################
! Examples, if this macro is called WRITER.MAC:
! writer,aaa ! if aaa is a scalar
! writer,'bbb',1,3,2 ! if bbb is a 3-D array parameter
! Note the /NOPR and /GOPR commands. They will overwrite user settings.

/nopr ! reduce the amount printed to /OUTPUT


*if,arg2,ne,0,then ! if nonzero an array is used
*if,arg3,eq,0,then ! if not a 2-D array
arg3=1
*endif
*if,arg4,eq,0,then ! if not a 3-D array
arg4=1
*endif
*vwrite,arg1(arg2,arg3,arg4)
(E16.8)
*else ! if a scalar
*vwrite,arg1
(E16.8)
*endif
/gopr ! switch on /OUTPUT

Test these macros thoroughly before use. Note that they contain no error handling code. Warning: It is
parcularly difficult to remember to surround the name of the array parameter with single quotes.

Tip 69: Synthesizing Parameter Names and Manipulang Jobnames and Long Strings in APDL

Although I haven't found documentaon reference to the following tricks, they work in ANSYS 5.3, and
presumably will in future. The ability to synthesize parameter names, and to do other text manipulaon, could
lead to some very creave acvies in "programming" ANSYS methods and in macro wring. Parameter names
themselves can be synthesized by chaining text strings together. Remember that there is a limit on the number of
parameters in a model ‐‐ arrays must be used to get around this, if it is a problem. Try these statements in ANSYS
‐‐ manually enter these lines one at a me in the ANSYS Input window, and check what turns up when the
*STATUS command is issued (scroll down to the bo5om of the STATUS text window that pops up):
aaa='qwer'
bbb='tyui'
%aaa%%bbb%=12345
*status
%aaa%1234=5
*status
*do,iii,1,9$abc%iii%=iii$*enddo
*status

For what it's worth, you can even store ANSYS commands in parameters, and execute them. I encountered some
trouble execung commands with commas embedded inside the character parameters, but the following
worked. Give them a try:
aaa='nplo'
%aaa%
a='*get'
b='xx'
c='active'
d='0'
e='time'
f='wall'
%a%,%b%,%c%,%d%,%e%,%f%
*status,%b%
thetime=%b%
/title,%a%,%b%,%c%,%d%,%e%,%f% yields %thetime%
/repl

Parameters that hold text data are limited to 8 characters. Several text variables can be chained together
(concatenated) using the "percent" sign. The user should experiment to see how blanks are truncated. The
following example illustrates chaining. The strings are concatenated in the /TITLE command, and the /REPL
command shows the result in the plot tle.

52 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

xxx='The 1st'
yyy=' & 2nd'
/TITLE,%xxx%%yyy%
/REPL

Situaons when this trick might be used could be to save and employ long tle strings, annotaon strings, or job
names for the /FILNAME command. The method can use several parameters, or several terms of an array
parameter. A jobname can be up to 32 characters long, so up to four parameters, or 4 terms in an array
parameter, would be needed. Note that the *GET command can read in a jobname, with the *GET statement
poinng to the character in the jobname where the parameter will begin to read the string. An example of array
use is:
*DIM,aaa,char,4
aaa(1)='First te'
aaa(2)='rm & 2nd'
/TITLE,%aaa(1)%%aaa(2)%
/repl

A database could be saved with statements such as these, in which parameter "aaa" is text and "num" is an
integer. The contents of "num" could be the results of a load step "num" and the file name would idenfy the
load step number:
aaa='model'
num='456'
SAVE,%aaa%%num%,db
SAVE,%aaa%123,db
SAVE,myjob%num%,db

Another use is with a parameter inside percent signs grouped with text with all inside single quotes. Consider this
example, which was used to delete load step files in a complex applicaon:
! Parameter "compname" contains the Jobname of a load step file
*do,jjj,st1,st2,st3
*if,jjj,lt,10,then
/delete,compname,'s0%jjj%'
*else
/delete,compname,'s%jjj%'
*endif
*enddo

Both the RESUME command and the /CLEAR command can destroy the counter used in a *DO loop. I have used
the PARSAV command before RESUME, and the PARRES command immediately a2er, in order to recover the
counter and other looping parameters when placing RESUME inside a *DO loop. The user should test this
technique before using ‐‐ the parameters saved and restored may undesirably overwrite parameters in the file
that is resumed. Look at this /CLEAR example; it illustrates what can be done:
! test of looping
fini ! exit whatever is active
*do,iii,1,3
parsav,all,xxx,parm
/clear ! be prepared to hit OK button
parres,new,xxx,parm
*enddo

These methods can make it possible to program considerable automaon into ANSYS, using the ability to
assemble parameter names, parameter contents, commands, and file names from le5ers and numbers.

Tip 70: Solid Elements 95 and 92 ‐‐ Efficiency and Interconnecon

These two solid elements have mid‐side nodes, so they follow curved surfaces nicely. Fewer elements are needed
than with Solid45 8‐node bricks, for equivalent accuracy. Note the ANSYS manual comments that the simpler
flat‐sided elements may be preferred for material nonlinearity. However, nonlinearity is supported by Solid92
and Solid95. The Solid45 tetrahedral element is "not recommended" in the ANSYS manuals because of its low
accuracy in predicng stresses ‐‐ the higher order Solid92 and 95 tetrahedral opon elements do not have these
warnings, and may be preferred in some cases.

53 of 54 1/17/2009 11:41 AM
ANSYS Tips and ANSYS Tricks h5p://www3.sympaco.ca/peter_budgell/ANSYS_ps.html

Solid element 95 is a 20‐node brick element. It also supports a prism, pyramid, and tetrahedral element shape
opon. At revision 5.3 of ANSYS, my tesng suggests that the prism and pyramid forms are not generated by the
automac volume mesher. At the 5.5 revision, pyramids may be generated by the mesher at the interface
between the brick form, and the tetrahedral form. Brief tesng I did suggests that meshing of volumes can
successfully interface the brick and tetrahedral forms. The tetrahedra formed at the interface with brick elements
do not have mid‐side nodes where they would not exist on the matching brick elements, so there should not be a
big mismatch problem at the interface. These elements that have a mid‐side node missing are considered to be
degenerate forms in the ANSYS manuals, and are not recommended in regions with high stress gradients, or
where exace stress values are important.

The Solid92 element is a 10 note tetrahedron ‐‐ it should act the same as the 10 node version of the Solid95
element in producing results. However, it executes significantly faster than the 10 node Solid95 element,
presumably because the so2ware is not dealing with the redundant extra 10 nodes. In large models, this
speedup will be of value to users, so Solid92 elements should be considered where Solid95 tetrahedral forms
would otherwise be employed in large structural models.

Up to Contents

Return to Main Page


FEA and Opmizaon Introducon Page
FEA Modeling Issues Page
© 1998, 1999 by Peter C. Budgell -- You are welcome to print and photocopy these pages (don't plagiarize or sell the contents).

May 27, 1999

E‐mail Address: Please see my main page.

Link to: The ANSYS® Home Page at www.ansys.com


Link to: ANSYS Technical Overview Recommended Reading
For more links, Return to Links on Main Page.

54 of 54 1/17/2009 11:41 AM

Das könnte Ihnen auch gefallen