Welcome to this Ansys How To Series video.
We see many real-world examples around us that can be solved using Ansys Mechanical.
They can often involve large assemblies with many parts, interacting with each other to
produce a desired output.
For such complex models, even if the contacts are all linear, a static solution still might
fail if the initial contact conditions are
not set up properly.
Engineers need to be extra cautious when setting up the contacts between the parts, generating
the desired mesh, setting up the boundary conditions, applying loads, and finally solving it.
And after solving such complex problems, what if it fails due to improper contacts with
bodies having rigid body motion?
Could that be avoided before investing computational time?
Is there a way to check how these contacts are defined prior to solving?
Well, we will answer all these questions in
this video.
Are you ready? Let’s go.
For practical engineering simulation scenarios, there are often different teams involved at
various stages of the product cycle.
It may be quite possible that the geometry
of the engineering problem is created by others.
And they may not be aware of the details and validations required for setting up a simulation problem.
There can be geometric gaps and interferences in the model and such unwanted or wanted details
may not be easily noticeable when you set
up the analysis, especially contacts between
various interconnected parts.
Here is one example where we have a small gap at one location as well as interference
at another location.
When such contacts remain unattended, they can create convergence trouble during 
the solve.
And for a large-scale engineering problems,
if it fails after a long solution time, it
is a waste of not only computational resources but also of your valuable time.
If we don’t check the initial contact conditions carefully before solving the case, we may
end up with the results that are far off from expectations or perhaps we get no results at all if the static
analysis fails due to rigid body motion.
For dynamic analysis, we include inertial
effects, so we can capture rigid body motion
if necessary. For example, a drop test simulation of a smartphone to the floor.
However, in a static analysis, rigid body
motion is mathematically problematic because
the matrix becomes singular, which implies
that there is no unique solution.
Such rigid body motion is typically caused
when the bodies are not constrained properly.
And in cases where parts are held together
exclusively by contact, we must ensure that such
parts are initially touching without gaps.
However, gaps are not the only issue, we may also have initial penetration between contacting pairs.
In such cases, the contact forces might be
overestimated resulting in convergence trouble.
Thus, checking the initial contact is perhaps the most important aspect of analyzing
an assembly with contact.
Therefore, we should always use the “Contact Tool” under the “Connections” branch before solving
to verify the initial contact status.
The “Contact Tool” is a very useful feature
that allows us to check initial contact status,
gaps, penetrations, number of contacting elements in the contact pairs, and other useful information.
Note that, the “Contact Tool” is based
on the mesh and not the geometry.
So, if you alter your mesh – coarsen it or
refine it – the initial contact information
is obsolete, and you will have to generate
it again.
By closing checking the initial contact information, you can take the corrective steps necessary
on your contact pairs.
For example – by changing the "Pinball Radius" or using “Adjust to Touch” under the Interface Treatment.
It is advisable to spend some time beforehand to learn and correct the initial contact conditions,
as necessary, as it can help to avoid unnecessary analysis loops.
Let’s now take a look at a simple example.
Here we have a model of a bracket fastened to a structure by way of two bolts.
The objective is to determine the maximum
displacement, stresses and strains in the
bracket body under an external load.
The materials are all linear elastic.
The bolts will be preloaded at loadstep 1
and locked at loadstep 2 with the external
load applied at load step 2. This is a typical way to simulate a bolted assembly under load.
There are five contact regions defined in
this model.
There is a frictional region between the back face of the bracket and the adjacent wall structure.
Each bolt shank is bonded to the corresponding holes in the wall.
The underside of each bolt head is setup to
contact the corresponding faces of the bracket
with a frictional behavior.
These regions were all initially created by
way of automatic contact generation and then
the default contact settings were subsequently modified by the user to get us to this state.
By casual inspection of the contact setup,
loads and boundary conditions, we could at
this point proceed to run the analysis.
If we did that, we would discover that the
model fails to converge immediately at the
first iteration.
The error message in the Mechanical Message Pane indicates ‘An internal solution magnitude
limit is exceeded'.
It goes on to advise us to ‘Please check
your environment for inappropriate load values
or insufficient supports’.
You know,  we have already confirmed that the loads and boundary conditions are appropriate and
are correctly applied.
There is also a warning message recorded just before this error message indicating that
‘One or more contact pairs are detected
with a frictional value greater than 0.2’
It comes with the recommendation to switch to unsymmetric Newton-Raphson solver if convergence problems arise.
Now given that this model is failing at the first iteration with an ill-conditioned matrix,
right out of the gate, the unsymmetric Newton-Raphson solver is not going to help us here.
We could at this point open the solver output and begin scrolling down the recorded text
to search for potential causes of the failure. But you know, if this were a very large model with many
contact pairs, that might be quite a daunting task.
So the question is - is there a better way to proceed?
This is where the Contact Tool, available
under the Connections branch, can be a great help.
Before we even run the analysis, we can insert this tool with a simple right mouse click.
Notice a new ‘Contact Tool’ appears
just below all the existing contact regions
initially created.
Highlighting the Contact Tool Folder, we see a Worksheet complete with a list of all the
previously created contact regions with options to select or filter out any particular region.
We also have options to filter nonlinear and
linear contacts, as well as Target and Contact
sides or both.
Now by default, all regions and all sides are
included.
If we expand the Contact Tool Folder, we see ‘Initial Information’.
If we right mouse click, we see an option
to “Generate Initial Contact Results”.
This will run a partial solution just to form
the element stiffness matrix and calculate
all the initial conditions of all the active
contact pairs for each region.
Let’s take the defaults and run this solution.
Had we not meshed the original model, this
mesh would automatically be generated before
proceeding to the calculations.
So now, depending on the model size, this might take some time, but not nearly as much time as
running the full solution.
Once complete, we get a color-coded table
of all the active pairs included in the solution.
For this particular model, there are five
contact regions predefined by auto contact detection.
Each region has the potential for the creation of two contact pairs acting equal and opposite
to each other, constituting symmetric behavior.
By default, if Behavior is set to Program
Controlled or Asymmetric, one of the two pairs
will be reported as 'Inactive'.
The Contact Tool always displays both pairs for each region and their corresponding status.
This is why we see 10 rows, even though the model only has five contact regions defined.
For any given pair listed in this table, we
can use the right mouse button to ‘Go to
the selected contact region’ in the Project
Tree.
Note that in this application, only the frictional contact between the back face of the bracket
is defined with symmetric behavior.
Hence, two pairs are active for this location.
Note also that this particular contact region is initially in a near open status with
a calculated geometric gap value and corresponding pinball radius.
Now, it is worth taking a moment to discuss the difference between the columns labeled
“Gap” and “Geometric Gap”.
In this application, the calculated values
for “Gap” and “Geometric Gap” are
the same value.
Had we made any adjustments using tools such as ‘Adjust to Touch’ or ‘Contact Surface Offset’,
the values reported in these two
columns would then differ.
“Gap” represents the mathematically adjusted value including the effect of ‘Adjust to Touch'
or user-specified contact surface
offsets.
On the other hand, ‘Geometric Gap’ always
represents the original, calculated gap based
solely on the mesh before any adjustments
are made.
The remaining contact regions are all represented with single pairs, with companion pairs grayed
out and identified as “Inactive”.
The most relevant piece of information remaining in this table are the two bonded pairs that
are each reporting a 'Far Open' status.
These pairs are designated with a red color,
because bonded must be closed to actually work.
By going to the 'Selected Items in the Project Tree', we can see that the pairs represent
the bonded regions between bolt shanks and the corresponding bolt holes in the wall.
From this review, it has become clear that
the two main sources of solver failure are
the 'Far Open' bonded regions at the bolt shanks and possibly the 'Near Open' frictional region.
Right mouse click again on the contact tool
folder and this time, insert “Gap” result.
This gives us a partial solution of contact
initial conditions for plotting.
These results can even be exported to a separate text file if that would be helpful.
We can also use the probe tool to extract
a discrete result at a specific nodal location.
Let’s zoom in on the regions of interest.
By close inspection of each of these regions on the model, we can visually confirm the
gaps reported by the contact tool.
These gaps can be addressed in one of two ways, either by modification of the original
geometry or by utilizing Contact Interface
Treatment Tools.
It is worth mentioning that these interface
treatment tools are convenient for making
quick mathematical adjustments to contact surfaces.
However, they should be limited to address
small “nuisance” gaps and penetrations.
If the gaps are too large, the results can
become nonphysical and erroneous.
Let’s now highlight the Frictional Contact
Region between the back of the bracket and the adjacent wall.
Go to the details window and set Interface
Treatment to “Adjust to Touch”.
Then highlight each of the bonded regions and specify the pinball region as “Auto Detection Value”.
This will define the pinball radius with a
value aligned with the same tolerance used
to create the contact regions.
It will ensure a radius that envelops the
maximum gap at these locations.
After making these changes let’s re-generate the initial contact information.
Notice now that all the active pairs are reported as 'Closed'.
If we were to proceed to solve the model now, it will converge without error.
So, let’s summarize the important takeaways of this video.
First, we learned how rigid body motions can occur due to improperly defined initial contacts.
Improper initial contact setup can lead to
a singular matrix that cannot be solved in
a static analysis.
For a large assembly with many contact regions, troubleshooting such problems can be a drain
of both computational resources and engineers’ time.
It is also important to understand that the
initial contact information is dependent on the mesh.
Hence, altering the mesh to capture important features of the geometry can also alter the
initial contact information.
Having a good understanding of the initial
contact helps to build the correct loading path
and prevent rigid body motion.
There are several ways available to avoid
rigid body motion for contacts.
One can revise the geometry itself, or numerically treat the contacts using various Interface
Treatment options.
If you find this video helpful, please like,
comment, and subscribe.
To find more information about preventing
rigid body motion in contact or other topics,
check our channel for more how-to videos and visit ansys.com/courses today!
