As I write this from home during the Covid-19 crisis, I want to assure you that PADT is conscious of many others working from home while using Ansys software as well. We’re trying to help with those who may be struggling with certain types of models. In this posting, I’ll talk about a contact convergence problem in Ansys Mechanical. I’ll discuss steps we can take to identify the problem and overcome it, as well as a simple setting to make which dramatically helped in this case.
The geometry in use here is a fairly simple assembly from an
old training class. It’s a wheel or
roller held by a housing, which is in turn bolted to something to hold it in
The materials used are linear properties for structural
steel. The loading consists of a bearing
load representing a downward force applied by some kind of strap or belt looped
over the wheel, along with displacement constraints on the back surfaces and
around the bolt holes, as shown in the image below. The flat faces on the back side have a
frictionless support applied (allows in plane sliding only), while the circular
faces where bolt heads and washers would be are fully constrained with fixed
As is always the case in Ansys Mechanical, contact pairs are created wherever touching surfaces in the assembly are detected. The default behavior for those contact pairs is bonded, meaning the touching surfaces can neither slide nor separate. We will make a change to the default for the wheel on its shaft, though, changing the contact behavior from bonded to frictional. The friction coefficient defined was 0.2. This represents some resistance to sliding. Unlike bonded contact in which the status of the contact pair cannot change during the analysis, frictional contact is truly nonlinear behavior, as the stiffness of the contact pair can change as deflection changes.
This shows the basic contact settings for the frictional
At this point, we attempt a solve. After a while, we get an error message stating, “An internal solution magnitude limit was exceeded,” as shown below. What this means is that our contact elements are not working as expected, and part of our structure is trying to fly off into space. Keep in mind in a static analysis there are no inertia effects, so an unconstrained body is truly unconstrained.
At this point, the user may be tempted to start turning
multiple knobs to take care of the situation.
Typical things to adjust for contact convergence problems are adding
more substeps, reducing contact stiffness, and possibly switching to the
unsymmetric solver option when frictional contact is involved. In this case, a simple adjustment is all it
takes to get the solution to easily converge.
Another thing we might do to help us is to insert a Contact
Tool in the Connections branch and interrogate the initial contact status:
This shows us that our frictional contact region is actually
not in initial contact but has a gap.
There are multiple techniques available for handling this situation,
such as adding weak springs, running a transient solution (computationally
expensive), starting with a displacement as a load and then switching to a
force load, etc. However, if we are
confident that these parts actually SHOULD be initially touching but are not
due to some slop in the CAD geometry, there is a very easy adjustment to handle
The Simple Adjustment That Gets This Model to Solve
Knowing that the parts should be initially in contact, one
simple adjustment is all that is needed to close the initial gap and allow the
simulation to successfully solve. The
adjustment is to set the Interface Treatment in the Contact Details for the
contact region in question to Adjust to Touch:
This change automatically closes the initial gap and, in
this case, allows the solution to successfully solve very quickly.
For your models, if you are confident that parts should be
in initial contact, you may also find that this adjustment is a great aid in
closing gaps due to small problems in the CAD geometry. We encourage you to test it out.
This time we look at another tool for overcoming convergence
difficulties, the Semi-Implicit method.
ANSYS, Inc. describes the semi-implicit method as a hybrid, combining
features of both implicit and explicit finite element methods.
In highly nonlinear problems involving significant deformations we may get a solver error like this one:
*** ERROR *** CP = 18110.688 TIME= 11:58:42 Solution not converged at time 0.921 (load step 1 substep 185). Run terminated.
Like it does with other problems that lead to convergence
failures, the Solution branch will have telltale red lightning bolts,
indicating the solution was not able to complete due to nonconvergence.
In this case, it can be difficult to determine from the error message in the solution output exactly what the problem is. Plotting the Newton-Raphson residuals can be a good starting point. In order to plot the Newton-Raphson residuals, though, we need to turn them on prior to solving. See this older Focus blog for instructions on how to do that:
A plot of the Newton-Raphson residuals shows us where the
highest force imbalance is in the model:
That’s a nice looking plot, but doesn’t tell us much without
knowing more about the simulation. The
model is of a plastic bottle, subject to a force load tending to ‘crush’ the
bottle from top to bottom. There is a
slight off center load as well, so that the force is not purely in the downward
The bottle is constrained with a fixed support on the bottom
flat surface, and contact elements between the outer surface of the bottle and
a fixed surface representing a table or floor.
This is to prevent the bottle from deflecting below the plane of that
The material used is a polyethylene plastic, from the ANSYS Granta
Materials Data for Simulation add-on, which is a great tool to get access to
hundreds of materials for ANSYS simulations.
The geometry of the bottle was created in SpaceClaim as a surface body and
meshed with shell elements in ANSYS Mechanical.
The solution was run as nonlinear static, with large
deflection effects turned on. Automatic
Time Stepping was manually activated with a starting and minimum number of
substeps set to 200 and a maximum number of substeps set to 1000.
With these settings, the solution ran to about 92% of the
full load, where it failed to solve after bisecting to the maximum number of
substeps (minimum ‘time’ step). The
force convergence plots showed the bisections and failed convergence attempts
started at about iteration 230 and ‘time’ 0.92.
(If you are not familiar with the convergence plots from a
Newton-Raphson method solution, please see our Focus archives for an article on
the topic – look for the link to the GST Plot:
Even though our solution has not converged, it is probably
helpful to view the deformation results for substeps which did converge (at
partial load) as well as the unconverged results which will be written as the
last set of results.
This plot shows the total deformation at the last converged
substep (time value 0.92):
This plot shows the unconverged solution, ‘extrapolated’ to
From the unconverged
deformation plot we can see that the top of the bottle is tending to experience
very large deformations. It’s not
surprizing that convergence difficulties are being encountered.
One of the techniques we can utilize to get past this
problem is the Semi-Implicit method in ANSYS Mechanical. As of 2019 R2, this needs to be activated
using a Mechanical APDL command object, but it can be as simple as adding a
single word within the Static Structural branch:
There are some optional fields on that command, but
minimally just the one word command is needed.
Once the semi-implicit method is activated, if the solver
detects the default implicit solver is having trouble, it automatically
switches to the semi-implicit solving scheme.
Like a traditional explicit solver, the semi-implicit method can better
handle very large deformation, transitory-like effects. The method can switch back to implicit if
conditions warrant for a more efficient solution and in fact can switch back
and forth between the two schemes.
The solver output will tell us if the semi-implicit scheme has been activated:
EQUIL ITER 26 COMPLETED. NEW TRIANG MATRIX. MAX DOF INC= 0.9526
NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO FILE: file.nd004
DISP CONVERGENCE VALUE = 0.3918 CRITERION= 1.448 <<< CONVERGED
LINE SEARCH PARAMETER = 0.4113 SCALED MAX DOF INC = 0.3918
FORCE CONVERGENCE VALUE = 44.44 CRITERION= 0.9960
MOMENT CONVERGENCE VALUE = 3.263 CRITERION= 0.1423
Writing NEWTON-RAPHSON residual forces to file: file.nr001
>>> TRANSITIONING TO SEMI-IMPLICIT METHOD
NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO FILE: file.nd001
EQUIL ITER 1 COMPLETED. NEW TRIANG MATRIX. MAX DOF INC= 0.8788E-04
NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO FILE: file.nd002
*** LOAD STEP 1 SUBSTEP 185 COMPLETED. CUM ITER = 284
*** TIME = 0.920010 TIME INC = 0.100000E-04
Kinetic Energy = 0.2157 Potential Energy = 60.59
*** AUTO STEP TIME: NEXT TIME INC = 0.10000E-04 UNCHANGED
NONLINEAR DIAGNOSTIC DATA HAS BEEN WRITTEN TO FILE: file.nd003
There are some ‘symptoms’ of the switch from implicit to
explicit. The most obvious is probably
that the force convergence plot will stop updating.
Changing the Solution Output to the Solver Output will show
the explicit scheme being used in that case.
The telltale is the information on Response Frequency and Period (the
example shown is a static structural solution).
Deformation plot trackers and contact trackers continue to
work as expected during the solution, however.
Using the semi-implicit method, the solution was able to
successfully converge to the full load, and converged results are available at
the last time point:
We also used the new keyframe animation technique to animate the results time history.
The semi-implicit method is well documented within the
Mechanical APDL 2019 R2 Help, in the Advanced Analysis Guide, chapter 3 on
Semi-Implicit Method. We suggest
reviewing that information to get a much better handle on the technique.
We hope this is helpful in getting your nonlinear solutions
to converge the full value of applied loads.
One of the problems we can encounter in a nonlinear
structural analysis in ANSYS Mechanical is that elements become so distorted
that the solver cannot continue. We get
messages saying the solver was unable to complete, and the solver output will
contain a message like this one:
*** ERROR *** CP = 37.969 TIME= 14:40:06 Element 2988 (type = 1, SOLID187) (and maybe other elements) has become highly distorted. Excessive distortion of elements is usually a symptom indicating the need for corrective action elsewhere. Try incrementing the load more slowly (increase the number of substeps or decrease the time step size). You may need to improve your mesh to obtain elements with better aspect ratios. Also consider the behavior of materials, contact pairs, and/or constraint equations. Please rule out other root causes of this failure before attempting rezoning or nonlinear adaptive solutions. If this message appears in the first iteration of first substep, be sure to perform element shape checking.
The Solution branch will have the telltale red lightning
bolts, indicating the solution was not able to complete due to nonconvergence.
If you are not aware, one technique we can use to get past
this problem of excessive element distortion is to have ANSYS automatically
remesh the model or a portion of the model while the solution is
progressing. The current state of the
model is then mapped onto the new mesh, in the currently deflected state. In this manner we can automatically continue
with the solution after a slight pause for this remeshing to occur. Minimally all we need to do as users is
insert a Nonlinear Adaptive Region under the Static Structural branch, and
review and specify a few settings (more on this later).
Let’s take a look at a simple example. This is a wedge portion of a circular
hyperelastic part, subject to a pressure load on the top surface. Other boundary conditions include a fixed
support on the bottom and frictionless supports on the two cut faces of the
For this case, the nonlinear adaptive region is the entire
The initial mesh was setup as a default mesh, although note
that for 3D models the nonlinear adaptive capability requires a tetrahedral
mesh up through the current version, 2019 R2.
Prior to solving with the nonlinear adaptive region
included, this model fails to converge at about 56% of the total load. With the addition of the nonlinear adaptive
region, the model is automatically remeshed at the point of excessive element
distortion, and the solution is able to proceed until the full load is applied. The force convergence graph has a solid
vertical orange line at the point where remeshing occurred. The method can result in multiple remeshing
steps although in the sample model shown here, only one remeshing was needed.
The image on the left, below, shows the original mesh at the
last converged substep before remeshing occurred. The image on the right is the first result
set after remeshing was completed.
The tabular view of a result item will show in the last
column if remeshing has occurred during the solution.
Here is the final deformation, for the full amount of
pressure load applied on the top surface.
Next, let’s take a look at the nonlinear adaptive region
capability in more detail.
First, multiple substeps must be used for the solution. If we are performing a nonlinear analysis,
this will be the case anyway. Second,
Large Deflection needs to be turned on in the Analysis Settings branch. Also, results must be stored at all time
points (note that time is a tracking parameter in a static analysis, but all
static as well as transient results in ANSYS Mechanical are associated with a
value of ‘time’).
There are several restrictions on features that CAN’T be in
the model, such as cyclic symmetry (hence the frictionless support BC’s on the
simple model shown above), Auto Asymmetric Contact, Joints, Springs, Remote
Forces and Displacements, etc. Also
certain material properties are excluded, such as Cast Iron plasticity and
Shape Memory Alloy. Also, as mentioned
above, for 3D models, the mesh must be tetrahedral. For a full listing of these restrictions,
refer to the ANSYS Mechanical User’s Guide.
A search on ‘nonlinear adaptive’ will take you to the right location in
Nonlinear Adaptive Regions can be scoped to 3D solid and 2D
bodies, or to elements via a Named Selection.
In the Details view for the Nonlinear Adaptive Region, the
main option to be defined is the Criterion by which remeshing will be
initiated. There are three options
available in Mechanical: Energy, Box,
The Energy criterion checks the strain energy of each
element within the Nonlinear Adaptive Region.
If the strain energy is above a criterion, remeshing is triggered. The input is an energy coefficient between
zero and one, and is a multiplier on the ratio of total strain energy of the
component divided by the number of elements of the component. Recommended values are 0.85-0.9. A lower coefficient will tend to cause
remeshing to be more likely.
The Box criterion defines a geometry region based on a
coordinate system and bounds relative to that coordinate system. Elements in the Nonlinear Adaptive Region
whose nodes have all moved within the box will be remeshed. The idea is that if it’s known that elements
will be highly distorted as they move into a certain region, we can ensure that
remeshing will occur there.
The Mesh criterion allows us to specify that remeshing will
occur if mesh quality measures drop below certain levels as the mesh
distorts. For 3D models, the available
measures are Jacobian Ratio and Skewness.
These are described in the Mechanical User’s Guide in the section on
Nonlinear Adaptive Region.
In the example shown above, the Energy criterion was used
with an energy coefficient of 0.85.
There are some things to be aware of when you are trying to
implement a Nonlinear Adaptive Region to help overcome convergence
difficulties. First, if any of the
restricted features mentioned above are included in the model, such as remote
displacements, it’s not going to work.
Therefore, it’s important to review the list of restrictions in the Help
and make sure none of those are applied in your model. Second, ‘buckling’ or element distortion due
to an unstable structure is not a behavior that Nonlinear Adaptive Regions can
help with. The Nonlinear Adaptive Region
capability is more suited to problems like hyperelastic seals being compressed
or objects that are undergoing a high degree of bending (but not snapping
Also, a coarse mesh that distorts may not produce a usable
remesh. The remeshing step may occur,
but the simulation may not be able to proceed beyond that and stops with an
error in element formulation error. More
mesh refinement may be needed in this case.
As a further word of caution, self contact problems may not
work very well within the context of Nonlinear Adaptive Regions. If self contact is needed, consider splitting
the bodies into multiple parts to avoid self contact.
There are some other considerations for the method as
discussed in the Help, but hopefully the guidelines and recommendations
presented here will allow you to filter potential applications appropriately
and setup models that can take advantage of the Nonlinear Adaptive Region
capability. We have a short animation
which shows the remeshing step in the sample model.
If you have nonlinear static structural models with convergence difficulties due to excessive element distortion, please consider using this method to help you get a fully converged solution.
Ten years is a long time in the life of a software product. While ANSYS itself has been around since the early 1970’s and what is now known as ANSYS Mechanical is approaching 20 years old, the user interface for ANSYS Mechanical maintained the same look and feel from version 12.0 in 2009 through version 2019 R1 in 2019. That’s 10 years. Certainly, there were many, many enhancements over that 10 year period, but the look and feel of the Mechanical window remained the same.
With the release of version 2019 R2, the Mechanical user
interface has changed to a more modern ‘ribbon’ window, as shown in the red
After having used the new interface for a while, here are 5
takeaways that are hopefully useful:
It’s easy to use. Sure, it’s different but the overall process is the same with a simulation tree on the left, details to enter and adjust at lower left, graphics in the middle, message, and graphs at the bottom, and the main menus across the top.
ANSYS, Inc. has helped by providing a 12-slide (some animated) usage tips guide which pops up automatically when you launch ANSYS Mechanical 2019 R2.
As in the old menu, the ‘Context’ menu changes
based on what you have clicked on in the tree.
For example, if you have clicked on the Mesh branch, the Context menu
will display meshing controls across the top of the window.
As intuitive as the new ribbon interface is,
there are some functionalities that you may have trouble finding. Not to worry, though, as there is a new
Search field at upper right that will likely take you to the right place. Here I am interested in making a section
plane for plotting purposes. My first
thought was that it would appear in the Display menu. When I didn’t find it there, I simply typed
in ‘section’ in the search field and the first hit was the right one.
After clicking “Take me there”:
And the resulting section plot:
Some capabilities show up in the File menu other
than the expected Save and Save As functionality. For example, Solve Process Settings is now in
the File menu. However, the main
functionality is in the Solution context menu, such as using Distributed
solutions and specifying the number of cores.
In short, the 2019 R2 improvements to ANSYS Mechanical allow
for easier and faster setup of our simulations.
If you haven’t given it a try, we encourage you to do so.
One of the great new features in ANSYS Mechanical 19.2 is
the ability to perform a lattice optimization.
Accomplished as an option within Topology Optimization, lattice
optimization allows us to generate a lattice structure within our region of
interest. It includes varying thickness
of the lattice members as part of the optimization.
Lattice structures can be very beneficial because weight can
be substantially reduced compared to solid parts made using traditional
manufacturing methods. Further, recent
advances in additive manufacturing enable the creation of lattice structures in
ways that weren’t possible with traditional manufacturing.
Here I’ll explain how to perform a lattice optimization in
ANSYS 19.2 step by step.
For the lattice optimization, I’m starting with a part I
created that acts as a corner brace:
At this early point in the simulation, the Project Schematic
looks like this:
I used the Multizone mesh method to get a hex mesh on the
Simple loads and constraints are recommended especially if
you’ll be doing a downstream validation study.
That is because the downstream simulation on the resulting lattice
geometry will most likely need to operate on the FE entities rather than
geometric entities for load and constraint application. The boundary conditions
in this simple model consisted of a fixed support on one side of the brace and
a force load on the other side:
After solving, I reviewed the displacement as well as the
Satisfied with the results, the next step is to add a
Topology Optimization block in the Project Schematic. The easiest way to do
this is to right click on the Solution cell, then select Transfer Data to New
> Topology Optimization:
You may need to re-solve the static structural simulation at
this point. You’ll know if you have
yellow thunderbolts in the Project Schematic instead of green checkmarks for
the Static Structural analysis.
At this point, the Project Schematic now looks like this:
The Mechanical window now has the Topology Optimization
The change to make to enable a lattice optimization is
accomplished in the details view of the Optimization Region branch:
We then need to specify some settings for the lattice. The first of these is the Lattice Type. The various types are documented in the ANSYS
19.2 Help. In my example I selected the
The other properties to define are:
Minimum Density (to avoid lattice structures that are toothin. Allowed bounds are 0 and 1)
Maximum Density (elements are considered full/solid fordensities higher than this value, allowed bounds are 0 and 1)
Lattice Cell Size (used in downstream geometry steps andadditive manufacturing)
Values I used in my example are shown here:
Assuming no other options need to be set, we solve the
lattice optimization and review the results.
The results are displayed as a contour plot with values between zero and
one, with values corresponding to the density settings as specified above.
Note that at this stage we don’t actually visualize the
lattice structure – just a contour plot of where the lattice can be in the
structure. Where density values are
higher than the maximum density specified, the geometry will end up being
solid. The lattice structure can exist
where the results are between the minimum and maximum density values specified,
with a varying thickness of lattice members corresponding to higher and lower
The next step is to bring the lattice density information
into SpaceClaim and generate actual lattice geometry. This is done by adding a free standing
Geometry block in the Workbench Project Schematic.
The next step is to drag and drop the Results cell from the
Topology Optimization block onto the Geometry cell of the new free standing
The Project Schematic will now look like this:
Notice the Results cell in the Topology Optimization branch
now has a yellow lightning bolt. The
next step is to right click on that Results cell and Update. The Project Schematic will now look like
Before we can open SpaceClaim, we next need to right click
on the Geometry cell in the downstream Geometry block and Update that as well:
After both Updates, the Project Schematic will now look like
The next step is to double click or right click on the
now-updated Geometry cell to open SpaceClaim.
Note that both the original geometry and a faceted version of the
geometry will exist in SpaceClaim:
It may seem counter intuitive, but we actually suppress the
faceted geometry and only work with the original, solid geometry for the
faceted process. The faceted geometry
should be automatically suppressed, as shown by the null symbol, ø, in the SpaceClaim tree. At this point it will be helpful to hide the
faceted geometry by unchecking its box in the tree:
Next we’ll utilize some capability in the Facets menu in
SpaceClaim to create the lattice geometry, using the lattice distribution calculated
by the lattice optimization. Click on
the Facets tab, then click on the Shell button:
Set the Infill option to be Basic:
At this point there should be a check box for “Use Density
Attributes” below the word Shape. This
check box doesn’t always appear. If it’s
not there, first try clicking on the actual geometry object in the tree:
In one instance I had to go to %appdata%\Ansys and rename
the v192 folder to v192.old to reset Workbench preferences and launch Workbench
again. That may have been ‘pilot error’
on my part as I was learning the process.
The next step is to check the Use density attributes
box. The Shape dropdown should be set to
Lattices. Once the Use density
attributes box is checked, we can then one of the predefined lattice shapes,
which will be used for downstream simulation and 3D printing. The shape picked needs to match the lattice
shape previously picked in the topology optimization.
In my case I selected the Cube Lattice with Side Diagonal
Supports, which corresponds to the Crossed selection I made in the upsteam
lattice optimization. Note that a planar
preview of this is displayed inside the geometry:
The next step is to click the green checkmark to have
SpaceClaim create the lattice geometry based on the lattice distribution
calculated by the lattice optimization:
When SpaceClaim is done with the lattice geometry
generation, you should be able to see a ghosted image showing the lattice
structure in the part’s interior:
Note that if you change views, etc., in SpaceClaim, you may
then see the exterior surfaces of the part, but rest assured the lattice
structure remains in the interior.
Your next step may need to be a validation. To do this, we create a standalone Static
Structural analysis block on the Project Schematic:
Next we drag and drop the Geometry cell from the faceted
geometry block we just created onto the Geometry cell of the newly created
Static Structural block:
We can now open Mechanical for the new Static Structural
analysis. Note that the geometry that
comes into Mechanical in this manner will have a single face for the exterior,
and a single face for the exterior. To verify that the lattice structure is
actually in the geometry, I recommend creating a section plane so we can view
the interior of the geometry:
To mesh the lattice structure, I’ve found that inserting a
Mesh Method and setting it to the Tetrahedrons/Patch Independent option has
worked for getting a reasonable mesh.
Care must be taken with element sizes or a very large mesh will be
created. My example mesh has about 500,000
nodes. This is a section view, showing
the mesh of the interior lattice structure (relatively coarse for the example).
For boundary condition application, I used Direct FE
loads. I used a lasso pick after aligned
the view properly to select the nodes needed for the displacement and then the
force loads, and created Named Selections for each of those nodal selections
for easy load application.
Here are a couple of results plots showing a section view
with the lattice in the interior (deflection followed by max principal stress):
Here is a variant on the lattice specifications, in which
the variance in the thickness of the lattice members (a result of the
optimization) is more evident:
Clearly, a lot more could be done with the geometry in
SpaceClaim before a validation step or 3D printing. However, hopefully this step by step guide is
helpful with the basic process for performing a lattice optimization in ANSYS
Mechanical and SpaceClaim 19.2.
Taking advantage of HPC can dramatically speed up solutions for electronics simulations. Depending on whether you have ANSYS HPC licenses or ANSYS HPC Pack licenses, a different setting needs to be made in the HPC options, as shown here.
In Electronics Desktop, we click Tools > Options > HPC and Analysis Options:
For ANSYS HPC licenses, we set the option to “Pool”.
For ANSYS HPC Pack licenses, we set the option to “Pack”.
With ANSYS HPC licenses, each license task enables an additional core for solving. At release 19, 4 cores are enabled with standard licensing, so adding 8 ANSYS HPC tasks enables solving on 12 cores. With HPC Pack licenses, the first task enables an additional 8 cores, while a second task enables 8×4 or an additional 32 cores, etc. For more information, see the ANSYS documentation on HPC licensing.
ANSYS Mechanical version 19.0 has been available since late January 2018, while version 19.1 was released in May. If you haven’t had a chance to check them out, we thought it would be helpful to list what we see as 10 of the top newest features. We’ll start with five new features from version 19.0 and will then round it out with five from version 19.1.
ANSYS Mechanical 19.0
1. 4 Cores HPC Solving with No Additional Licensing
Previously, you were limited to solving on 2 cores at a maximum without having additional ANSYS HPC or HPC Pack licenses. That limit has been raised to 4 cores at 19.0.
To utilize the cores while solving, from the Solution branch in Mechanical click on the Tools menu, then Solve Process Settings. Click the Advanced button. Set the Max number of utilized cores to 4 and click OK.
2. Topology Optimization Includes Inertial Loads
Topology optimization became a native option in ANSYS Mechanical in version 18.0. Topology optimization allows us to perform studies in which we preserve stiffness while reducing weight, for example. Since inertia loads are now supported in a topology optimization, one type of problem we can now solve is starting with geometry that has a mix of an inertial load (gravity in the downward direction) along with additional loading such as forces or pressures.
Solving the topology optimization and moving to the verification step we can see the optimization results (shape and contour results plot) for the combined loading.
The ability to include inertia loads adds quite a few more problems that can be considered for topology optimization.
3. Small Sliding Contact
The idea here is that if we have confidence that the contact and target elements within a contact region will not slide very much, we can turn on the small sliding assumption. This speeds up the computations because less checking is needed for the contact elements during the solution. It’s activated in the Details view for one or more contact regions. We’ve seen some marginal improvements in solution times for a couple of test models. It’s clearly worth trying this if it applies to your simulations.
4. Element Birth and Death
We now no longer have to use APDL command objects to incorporate element birth and death. If you’re not familiar with what this is, it’s the ability to selectively deactivate and/or activate portions of the finite element model to simulate forming operations, assembly, etc. Further, the implementation is fantastic in that unlike with the old MAPDL implementation, we no longer have to manually keep track of which elements have been ‘killed’ or made ‘alive’. The postprocessing in Mechanical 19.0 automatically displays only elements that are alive for a given results set.
Here is how it is implemented in the Mechanical tree, under the analysis type branch:
The entities to be killed or made alive can be selected by geometry or Named Selections. There is a handy table that shows the alive or dead status for each Element Birth and Death object once they are setup:
This animation shows a temperature results plot and demonstrates how the killed elements are made alive and automatically displayed when postprocessing:
5. Clipboard Tool
This new menu pick gives us an improved method for tasks such as selecting multiple faces. Rather than having to carefully pick all of them at once or use a combination of named selections, we can now simply select the faces that are easy to pick, add them to the clipboard, rotate the model, select more faces now that they are in view, etc.
Once all the desired faces are in the Clipboard, we simply use the Select Items in Clipboard dropdown and we can now assign a load or mesh control, etc. to the desired faces.
Note there are convenient hot keys for Adding to, Removing from, and Clearing the clipboard, shown in the screen captures of the menu dropdowns above.
ANSYS Mechanical 19.1
6. Granta Design Sample Materials
Version 19.1 adds a whole new set of sample materials from Granta. To access them, open up Engineering Data, click on the Engineering Data Sources button, and then click on the Granta Design Sample Materials button. This adds a lot more sample materials than have been available in Engineering Data previously.
7. Materials folder in Mechanical
You’ll see a new branch in the tree in Mechanical 19.1: Materials. All materials that are part of your Engineering Data set will show up in this branch. For each material defined, we can click on the Material Assignment button or right click as shown here:
One the new Assignment branch is created for a material, we can then select the bodies for which that material should be assigned. Each material has its own color which can be changed in Engineering Data if so desired.
Important note for Mechanical APDL command users: Assigning material properties using the Materials branch results in all parts with the same material property having the same MAPDL material number. This is different from prior behavior in Mechanical in which each part in the geometry tree had its own material number identified with the ‘magic’ parameter name matid. Parameter matid now no longer is unique for each part if materials area assigned using the Materials branch. There is a new ‘magic’ parameter named typeids which identifies the element type number for each part in the tree. This new parameter is actually a 1x1x1 array parameter rather than a scalar parameter, so to make use of it in a command snippet we need to add the dimension (1) to the parameter name, like this:
8. Result Tracking During Solution
A new, useful capability is to be able to view a result item on a body, while the solution is running. You can now insert certain results items under Solution Information and view the status of the results while the solution is progressing. If birth and death is employed it will even display just the elements that are alive as the solution progresses. Here is an example of a temperature plot on a body while a transient solution is in progress:
9. Save Animations to .wmv and .mp4 Formats
We now have two new options besides the old .avi format for exporting animation files. The .mp4 and .wmv formats both tend to produce smaller files than .avi format. When you click on the Export Video File button the new options are available in the dropdown:
10. Solution Statistics Page
Finally, there is a new Solution Statistics page, available under Solution Information when a solution has completed. This is a quick and easy way to view performance information from your solution and helps determine if more cores or more RAM could be beneficial in future solutions of the same model. Here is an example:
These are just a few of the enhancements that have been implemented in versions 19.0 and 19.1. These should help you be more productive with your solutions in ANSYS Mechanical as well as increase your capacity for simulating reality, and creating new geometry when it comes to topology optimization.
I’m sure most people don’t know the name George M. Low. He was an early employee at NASA, serving as Chief of Manned Space Flight and later as a leader in NASA’a Apollo moon program in the late 1960’s. In fact, he was named Manager of the Apollo Spacecraft Program after the deadly Apollo 1 fire in 1967, and helped the program move forward to the successful moon landings starting in 1969.
As most alumni of Rensselaer Polytechnic Institute know, he returned to Rensselaer, his alma mater, serving as president from 1976 until his death in the 1980’s. I still recall the rousing speech he gave to us incoming freshman at the Troy Music Hall on a hot September afternoon. On our class rings is his quote, “Without risk there can be no progress.”
I’ve pondered that quote many times in the years since. It’s easy to coast along in many facets of life and accept and even embrace the status quo. Over the years, though, I have observed that George Low was right, and the truth is that risk is required to move forward and improve. The hard part is determining the level of risk that is appropriate, but it’s a sure bet that by not taking any risk, we will lag behind.
How is that realization applicable to our world of engineering simulation? Surely those already doing simulation have moved from the old process of design > test > break > redesign > test > produce to embrace the faster and more efficient simulate > test > product, right? Perhaps, but even if they have, that doesn’t mean there can’t be progress with some additional risk.
Let’s look at a couple of examples in the simulation world where some risk taking can have significant payoffs.
First, transitioning from ANSYS Mechanical APDL to ANSYS Mechanical (Workbench). Most have already made the switch. I’ll allow there are still some applications that can be completely scripted within the old Mechanical Ansys Parametric Design Language in an incredibly efficient manner. However, if you are dealing with geometry that’s even remotely complex, I’ll wager that your simulation preparation time will be much faster using the improved CAD import and geometry manipulation capabilities within the ANSYS Workbench Mechanical workflow. Let alone meshing. Meshing is lights out faster, more robust, and better quality in modern versions of Mechanical than anything we can do in the older Mechanical APDL mesher.
Second, using ANSYS SpaceClaim to clean up, modify, create, and otherwise manipulate geometry. It doesn’t matter what the source of the geometry is, SpaceClaim is an incredible tool for quickly making it useable for simulation as well as lots of other purposes. I recently used the SpaceClaim tools within ANSYS Discovery live to combine assemblies from Inventor and SolidWorks into one model, seamlessly, and was able to move, rotate, orient, and modify the geometry to what I needed in a matter of minutes (see the Discovery Live image at the bottom). The cleanup tools are amazing as well.
Third, looking into ANSYS Discovery Live. Most of us can benefit from quick feedback on design ideas and changes. The new Discovery Live tool makes that a reality. Currently, in a technology demonstration mode, it’s free to download and try it from ANSYS, Inc. through early 2018. I’m utterly amazed by how fast it can read in a complex assembly and start generating results for basic structural, CFD, and thermal simulations. What used to take weeks or months can now be done in a few minutes.
Credits: Motorcycle geometry downloaded from GrabCAD, model by Shashikant Soren. Human figure geometry downloaded from GrabCAD, model by Jari Ikonen. Models combined and manipulated within ANSYS Discovery Live. George M. Low image from www.nasa.gov.
I encourage you to take some risks for the sake of progress.
By now you’ve probably heard that ANSYS versions 18.0, 18.1, and 18.2 have all been released in 2017. While 18.0 was the ‘point’ release in January, it should be noted that 18.1 and 18.2 are not ‘patches’ or service packs, but are full releases each with significant enhancements to the code. We’ll present some significant and useful enhancements for each.
Number 1: First and foremost – info on the new features is more readily accessible with the Mechanical Highlights list. The first time you launch Mechanical, you’ll see a hyperlinked list of new release highlights.
One you actually do something in Mechanical, though, that list goes away. There is a simple way to get it back: Click on the Project branch in the Mechanical tree, then click on the Worksheet button in the menu near the top of the window.
Clicking on the hyperlinks in the list or simply scrolling down gives us more information on each of the listed enhancements. Keep in mind the list is only highlights and by no means has all of the new features listed. A more detailed list can be found in the ANSYS Help, in the Release Notes.
Number 2: A major new feature that became available in 18.0 is Topology Optimization. We’ve written more about Topology Optimization here
Number 3: Another really useful enhancement in 18.0 is the ability to define a beam connection as a pretensioned bolt. This means we no longer need to have a geometry representation of a bolt if we want a simpler model. We can simply insert a beam connection between the two sides of the bolted geometry, and define the pretension on that resulting beam.
Beam connections are inserted in the Connections branch in Mechanical. Once the beam is fully defined, it can have a bolt pretension load applied to it, just like as if the beam geometry was defined as a solid or beam in your geometry tool. Here you can see a beam connection used for bolt pretension on the left, with a traditional geometric representation of a pretensioned bolt on the right:
Number 4: A very nice capability added in version 18.1 is drag and drop contact regions for contact sizing in the Mesh branch. Contact elements work best when the element sizes on both sizes of the interface are similar, especially for nonlinear contact. ANSYS Mechanical has had Contact Sizing available as a mesh control for a long time. Contact Sizing allows us to specify an element size or relevance level once, for both sides of one or more contact regions.
What’s new in 18.1 is the ability to drag and drop selected contacts from the Connections branch into the Mesh branch. Just select the desired contact regions with the mouse, then drag that selection into the Mesh branch. Then specify the desired mesh sizing controls for contact.
This is what the dragging and dropping looks like:
After dropping into the Mesh branch, we can specify the element size for the contact regions:
This shows the effect of the contact sizing specification on the mesh:
Number 5: An awesome new feature in 18.2 is element face selection, and what you can do with it. There is a new selection filter just for element face selection, shown here in the red box:
Once the element face select button is clicked, element faces can be individually selected, box selected, or paint selected simply by holding down the left mouse button and dragging. The green element faces on the near side have been selected this way:
The selected faces can then be converted to a Named Selection, or items such as results plots can be scoped to the face selection:
Number 6: Finally, to finish up, some new hotkeys were added in 18.2. Two really handy ones are:
Z = zoom fit or zoom to the current selection of entities
<Ctrl> K = activate element face selection
F11 = make the graphics window full screen!
Click F11 again to toggle back to normal size
Please realize that this list is just a tiny subset of the new features in ANSYS 18. We encourage you to try them out on your own, and investigate others that may be of benefit to you. Keep the Mechanical Highlights list from Number 1 in mind as a good source for info on new capabilities.
Here in the Phoenix area, we weren’t treated to the full total eclipse that others in the USA got to see. Our maximum coverage of the sun was a bit over 60%. Still, there was an eclipse buzz in the PADT headquarters and although we had some rare clouds for a few minutes, the skies did part and we did get to view the partial eclipse from the parking lot.
So, how did ANSYS help us view the eclipse? It was in an indirect way – via a pinhole camera I made from an old ANSYS installation software box. The software box, a hobby knife to cut out a viewing port, a couple of post-it notes to allow for a small hole and a clear projection area, and a thumb tack were all that was needed, along with a couple of minutes to modify the box.
Here we can see the viewing port cut into the software box. On the opposite side is a pin hole to allow the sun’s light to enter the box.
After heading out to the eclipsing grounds (the parking lot), we quickly lined up the pin hole and the projection screen and got our views of the partially obscured sun:
Here is a close up of the sun’s image projected inside the box:
Others viewing the eclipse here at PADT HQ had a range of filters, eclipse glasses, etc. With the projection method as shown above, though, we don’t have to worry about eye damage. So, in a way, ANSYS did help us view the eclipse safely, by providing a box that was easy to convert to a pinhole camera.
While we enjoyed the partial eclipse here in Arizona, we did have a couple of PADT colleagues in the path of totality. Here is a picture from one of my coworkers who viewed the eclipse in South Carolina:
We hope you enjoyed the eclipse as well, either in person or via images on the web. We’re looking forward to the next one!
Finally, In case you missed an earlier astronomical rarity back in 2012, here is a photo of the planet Venus transiting in front of the sun’s disk (black dot on the left side). The next one of these won’t be until December, 2117.
We’ve discussed topological optimization in this space before, notably here:
If you’re not familiar with topological or topology optimization, a simple description is that we are using the physics of the problem combined with the finite element computational method to decide what the optimal shape is for a given design space and set of loads and constraints. Typically our goal is to maximize stiffness while reducing weight. We may also be trying to keep maximum stress below a certain value. Frequencies can come into play as well by linking a modal analysis to a topology optimization.
Why is topology optimization important? First, it produces shapes which may be more optimal than we could determine by engineering intuition coupled with trial and error. Second, with the rise of additive manufacturing, it is now much easier and more practical to produce the often complex and organic looking shapes which come out of a topological optimization.
ANSYS, Inc. has really upped the game when it comes to utilizing topology optimization. Starting with version 18.0, topo opt is built in functionality within ANSYS. If you already know ANSYS Mechanical, you already know the tool that’s used. The ANSYS capability uses the proven ANSYS solvers, including HPC capability for efficient solves. Another huge plus is the fact that SpaceClaim is linked right in to the process, allowing us to much more easily make the optimized mesh shape produced by a topological optimization into a more CAD representation set for use in validation simulations, 3D printing, or traditional manufacturing.
The intent of this blog is to show the current process in ANSYS version 18.1 using a simple example of an idealized motorcycle front fork bracket optimization. We don’t claim to be experts on motorcycle design, but we do want to showcase what the technology can do with a simple example.Motorbike Sport blogs can provide you more idea about motorcycle design. We start with a ‘blob’ or envelope for the geometry of our design space, then perform an optimization based on an assumed set of loads the system will experience. Next we convert the optimized mesh information into solid geometry using ANSYS SpaceClaim, and then perform a validation study on the optimized geometry.
Here we show our starting point – an idealized motorcycle fork with a fairly large blob of geometry. The intent is to let ANSYS come up with an optimal shape for the bracket connecting the two sides of the fork.
The first step of the simulation in this case is a traditional Static Structural simulation within ANSYS Workbench. The starting point for the geometry was ANSYS SpaceClaim, but the initial geometry could have come from any geometry source that ANSYS can read in, meaning most CAD systems as well as Parasolid, SAT, and STEP neutral file formats.
A single set of loads can be used, or multiple load cases can be defined. That’s what we did here, to simulate various sets of loads that the fork assembly might experience during optimization. All or a portion of the load cases can be utilized in the topological optimization, and weighting factors can be used on each set of loads if needed.
Here we see the workflow in the ANSYS Workbench Project Schematic:
Block A is the standard static structural analysis on the original, starting geometry. This includes all load cases needed to describe the operating environment. Block B is the actual topological optimization. Block C is a validation study, performed on the optimized geometry. This step is needed to ensure that the optimized shape still meets our design intent.
Within the topology optimization, we set our objective. He we choose minimizing compliance, which is a standard terminology in topology optimization and we can think of it as the inverse which is maximizing stiffness.
In the static structural analysis, 7 load cases were used to describe different loading situations on the motorcycle fork, and here all have been used in the optimization.
Further, we defined a response constraint, which in this example is to reduce mass (actually retain 15% of the mass):
Another quantity that’s often useful to specify is a minimum member constraint. That will keep the topology optimization from making regions that are too small to 3D print or otherwise manufacture. Here we have specified a minimum member size of 0.3 inches:
Since the topological optimization solution uses the same ANSYS solvers for the finite element solution as a normal solution, we can leverage high performance computing (distributed solvers, typically) to speed up the solution process. Multiple iterations are needed to converge on the topology optimization, so realize that the topo opt process is going to be more computationally expensive than a normal solution.
Once the optimization is complete, we can view the shape the topo opt method has obtained:
Notice that only a portion of the original model has been affected. ANSYS allows us to specify which regions of the model are to be considered for optimization, and which are to be excluded.
Now that we have a shape that looks promising, we still need to perform a validation step, in which we rerun our static simulation with the loads and constraints we expect the fork assembly to experience. To do that, we really want a ‘CAD’ model of the optimized shape. The images shown above show the mesh information that results from the topo opt solution. What we need to do next is leverage the ANSYS SpaceClaim geometry tool to create a solid model from the optimized shape.
A simple beauty in the ANSYS process is that with just a couple of clicks we proceed from Block B to Block C in the Workbench project schematic, and can then work with the optimized shape in SpaceClaim.
As you can see in the above image, SpaceClaim automatically has the original geometry as well as the new, optimized shape. We can do as much or as little to the optimized shape as we need, from smoothing and simplification to adding manufacturing features such as holes, bosses, etc. In this case we simply shrink wrapped it as-is.
Continuing with the validation step, the geometry from SpaceClaim automatically opens in the Mechanical window and we can then re-apply the needed loads and constraints and then solve to determine if the optimized shape truly meets our design objectives. If not, we can make some tweaks and run again.
The above image shows a result plot from the validation step. The geometry efficiently comes through SpaceClaim from the optimization step to the validation step. The needed tools are all nicely contained within ANSYS.
Hopefully this has given you an idea of what can be done with topology optimization in ANSYS as well as how it’s done. Again, if you already know ANSYS Mechanical, you already know the bulk of how to do this. If not, then perhaps what you have seen here will spark a craving to learn. We can’t wait to see what you create.
Sometimes you want to take two parts and and prepare them for meshing so that they either share a surface between them, or have identical but distinct surfaces on each part where they touch. In this simple How-To, we share the steps for creating both of these situations so you can get a continuous mesh or create a matching contact surface in ANSYS Mechanical.
By using the power of ANSYS SpaceClaim to quickly modify geometry, you can set up your surface models in ANSYS Mechanical to easily be connected. Take a look in this How-To slide deck to see how easy it is to extend geometry and intersect surfaces.
A support request from one of our customers recently was for the ability to make Thermal Contact Conductance, which is sort of a reciprocal of thermal resistance at the contact interface, a parameter so it can be varied in a parametric study. Unfortunately, this property of contact regions is not exposed as a parameter in the ANSYS Mechanical window like many other quantities are.
Fortunately, with ANSYS there is almost always a way……in this case we use the capability of an APDL (ANSYS Parametric Design Language) command object within ANSYS Mechanical. This allows us to access additional functionality that isn’t exposed in the Mechanical menus. This is a rare occurrence in the recent versions of ANSYS, but I thought this was a good example to explain how it is done including verifying that it works.
A key capability is that user-defined parameters within a command object have a ‘magic’ set of parameter names. These names are ARG1, ARG2, ARG3, etc. Eric Miller of PADT explained their use in a good PADT Focus blog posting back in 2013
In this application, we want to be able to vary the value of thermal contact conductance. A low value means less heat will flow across the boundary between parts, while a high value means more heat will flow. The default value is a calculated high value of conductance, meaning there is little to no resistance to heat flow across the contact boundary.
In order to make this work, we need to know how the thermal contact conductance is applied. In fact, it is a property of the contact elements. A quick look at the ANSYS Help for the CONTA174 or similar contact elements shows that the 14th field in the Real Constants is the defined value of TCC, the thermal contact conductance. Real Constants are properties of elements that may need to be defined or may be optional values that can be defined. Knowing that TCC is the 14th field in the real constant set, we can now build our APDL command object.
This is what the command object looks like, including some explanatory comments. Everything after a “!” is a comment:
! Command object to parameterize thermal contact conductance
! by Ted Harris, PADT, Inc., 3/31/2017
! Note: This is just an example. It is up to the user to create and verify
! the concept for their own application.
! From the ANSYS help, we can see that real constant TCC is the 14th real constant for
! the 17X contact elements. Therefore, we can define an APDL parameter with the desired
! TCC value and then assign that parameter to the 14th real constant value.
! We use ARG1 in the Details view for this command snippet to define and enable the
! parameter to be used for TCC.
r,cid ! tells ANSYS we are defining real constants for this contact pair
! any values left blank will not be overwritten from defaults or those
! assigned by Mechanical. R command is used for values 1-6 of the real constants
rmore,,,,,, ! values 7-12 for this real constant set
rmore,,arg1 ! This assigned value of arg1 to 14th field of real constant
! Now repeat for target side to cover symmetric contact case
r,tid ! tells ANSYS we are defining real constants for this contact pair
! any values left blank will not be overwritten from defaults or those
! assigned by Mechanical. R command is used for values 1-6 of the real constants
rmore,,,,,, ! values 7-12 for this real constant set
rmore,,arg1 ! This assigned value of arg1 to 14th field of real constant
You may have noticed the ‘cid’ and ‘tid’ labels in the command object. These identify the integer ‘pointers’ for the contact and target element types, respectively. They also identify the contact and target real constant set number and material property number. So how do we know what values of integers are used by ‘cid’ and ‘tid’ for a given contact region? That’s part of the beauty of the command object: you don’t know the values of the cid and tid variables, but you alsp don’t need to know them. ANSYS automatically plugs in the correct integer values for each contact pair simply by us putting the magic ‘cid’ and ‘tid’ labels in the command snippet. The top of a command object within the contact branch will automatically contain these comments at the top, which explain it:
! Commands inserted into this file will be executed just after the contact region definition.
! The type number for the contact type is equal to the parameter “cid”.
! The type number for the target type is equal to the parameter “tid”.
! The real and mat number for the asymmetric contact pair is equal to the parameter “cid”.
! The real and mat number for the symmetric contact pair(if it exists)
! is equal to the parameter “tid”.
Next, we need to know how to implement this in ANSYS Mechanical. We start with a model of a ball valve assembly, using some simple geometry from one of our training classes. The idea is that hot water passes through the valve represented by a constant temperature of 125 F. There is a heat sink represented at the OD of the ends of the valve at a constant 74 degrees. There is also some convection on most of the outer surfaces carrying some heat away.
The ball valve and the valve housing are separate parts and contact is used to allow heat to flow from the hotter ball valve into the cooler valve assembly:
Here is the command snippet associated with that contact region. The ‘magic’ is the ARG1 parameter which is given an initial value in the Details view, BEFORE the P box is checked to make it a parameter. Wherever we need to define the value of TCC in the command object, we use the ARG1 parameter name, as shown here:
Next, we verify that it actually works as expected. Here I have setup a table of design points, with increasing values of TCC (ARG1). The output parameter that is tracked is the minimum temperature on the inner surface of the valve housing, where it makes contact with the ball. If conductance is low, little heat should flow so the housing remains cool. If the conductance is high, more heat should flow into the housing making it hotter. After solving all the design points in the Workbench window, we see that indeed that’s what happens:
And here is a log scale plot showing temperature rise with increasing TCC:
So, excluding the comments our command object is 6 lines long. With those six lines of text as well as knowledge of how to use the ARG1 parameter, we now have thermal contact conductance which varies as a parameter. This is a simple case and you will certainly want to test and verify for your own use. Hopefully this helps with explaining the process and how it is done, including verification.
How do you make sure that your customers have a great experience? In “Five simple strategies for promoting customer satisfaction” PADT’s manager of ANSYS Technical Support and Training, Ted Harris, outlines the tools he and his team use to keep PADT’s customer satisfaction rates outstanding.