Assembly Modeling with ANSYS

In my previous article, I wrote about how you get what you pay for with your analysis package.  Well, buckle up for some more…but this time we’ll just focus on handling assemblies in your structural/thermal simulations.  If all you’re working on are single components, count yourself lucky.  Almost every simulation deals with one part interacting with another.  You can simplify your boundary conditions a bit to make it equivalent, but if you have significant bearing stresses, misalignments, etc…you need to include the supporting parts.  Better hope your analysis package can handle contact…

Image result for get what you pay for

First off, contact isn’t just for structural simulations.  Contact allows you to pass loads across difference meshes, meaning you don’t need to create a conformal mesh between two parts in order to simulate something.  Here’s a quick listing on the degrees of freedom supported in ANSYS (don’t worry…you don’t need to know how to set these options as ANSYS does it for you when you’re in Workbench):

image

You can use contact for structural, thermal, electrical, porous domain, diffusion, or any combination of those.  The rest of this article is going to focus on the structural side of things, but realize that the same concepts apply to essentially any analysis you can do within ANSYS Mechanical..

First, it’s incredibly easy to create contact in your assembly.  Mechanical automatically looks for surfaces within a certain distance from one another and builds contact.  You can further customize the automated process by defining your own connection groups, as I previous wrote about.  These connection groups can create contact between faces, edges, solids bodies, shell bodies, and line bodies.

image

Second, not only can you create contact to transfer loads across different parts, but you can also automatically create joints to simulate linkages or ‘linearize’ complicated contacts (e.g. cylindrical-to-cylindrical contact for pin joints).  With these joints you can also specify stops and locks to simulate other components not explicitly modeled.  If you want to really model a threaded connection you can specify the pitch diameter and actually ‘turn’ your screw to properly develop the shear stress under the bolt head for a bolted joint simulation without actually needing to model the physical threads (this can also be done using contact geometry corrections)

image Look ma, no threads (modeled)!

image

If you’re *just* defining contact between two surfaces, there’s a lot you simulate.  The default behavior is to bond the surfaces together, essentially weld them closed to transmit tensile and compressive loads.  You also have the ability to let the surfaces move relative to each other by defining frictionless, frictional, rough (infinite coefficient of friction), or no-separation (surfaces don’t transmit shear load but will not separate).

image

Some other ‘fancy’ things you can do with contact is simulate delamination by specifying adhesive properties (type I, II, or III modes of failure).  You can add a wear model to capture surface degradation due to normal stress and tangential velocity of your moving surfaces.  You can simulate a critical bonding temperature by specifying at what temperature your contacts ‘stick’ together instead of slide.  You can specify a ‘wetted’ contact region and see if the applied fluid pressure (not actually solving a CFD simulation, just applying a pressure to open areas of the contact interface) causes your seal to open up.

image

Now, it’s one thing to be able to simulate all of these behaviors.  The reason you’re running a finite element simulation is you need to make some kind of engineering judgement.  You need to know how the force/heat/etc transfers through your assembly.  Within Mechanical you can easily look at the force for each contact pair by dragging/dropping the connection object (contact or joint) into the solution.  This will automatically create a reaction probe to tell you the forces/moments going through that interface.  You can create detailed contour plots of the contact status, pressure, sliding distance, gap, or penetration (depending on formulation used).

image

image

Again, you can generate all of that information for contact between surface-to-surface, surface-to-edge, or edge-to-edge.  This allows you to use solids, shells, beams, or any combination you want, for any physics you want, to simulate essentially any real-world application.  No need to buy additional modules, pay for special solvers, fight through meshing issues by trying to ‘fake’ an assembly through a conformal mesh.  Just import the geometry, simplify as necessary (SpaceClaim is pretty awesome if you haven’t heard), and simulate it.)

For a more detailed, step-by-step look at the process, check out the following video!


ANSYS Workbench Polyhedral Meshing

The ANSYS App Store contains all sorts of free and paid apps developed by ANSYS as well as trusted partners. These apps improve workflows and allow users to build in best practices. An app that has been of particular interest to me is Workbench Poly Meshing for Fluent

This app enables the power and capacity of Fluent Meshing, most notably the polyhedral meshing feature, with the ease of use of the ANSYS Workbench Meshing environment. In order to show the functionality of this app, I will demonstrate with the generation of a polyhedral mesh on a sample geometry from the Fluent Meshing tutorials.

To start out, I have imported a .igs file of an exhaust manifold into ANSYS SpaceClaim Direct Modeler, which has powerful repair and prepare tools that will come in handy. I notice that the geometry is comprised of 250 surfaces, which I need to fix in order to create a solid body. By navigating into the ‘Repair’ tab and selecting the ‘Stitch’ operation, SpaceClaim notes there are two stitchable edges in my geometry. I select the green check mark to perform this operation and am greeted with a solid geometry. I complete my tasks in SpaceClaim by extracting the fluid volume using the ‘Volume Extract’ tool in the ‘Prepare’ tab.

I setup my workflow in ANSYS workbench with my added ‘Fluent Meshing’ ACT module between the ‘Mesh’ module and ‘Fluent’ module. I can then proceed to create my desired surface mesh in ANSYS meshing and setup a few required inputs for Fluent Meshing.


Once this process has been completed, I can update my ‘Fluent Meshing’ cell and open the ‘Fluent’ setup cell to display my polyhedral mesh!

IMPORTANT NOTE: all named selections must be lowercase with no spaces, and the file path(s) cannot contain any spaces.

 

Advanced ANSYS Functionality

Just like any other marketplace, there are a lot of options in simulation software.  There are custom niche-codes for casting simulations to completely general purpose linear algebra solvers that allow you to write your own shape functions.  Just like with most things in life, you truly get what you pay for.

Image result for get what you pay for

 

For basic structural and thermal simulations pretty much any FE-package should suffice.  The difference there will be in how easy it is to pre/post process the work and the support you receive from the vendor.  How complicated is the geometry to mesh, how long does it take to solve, if you can utilize multiple cores how well does it scale, how easy is it to get reactions at interfaces/constraints…and so on.  I could make this an article about all the productivity enhancements available within ANSYS, but instead I’ll talk about some of the more advanced functionalities that differentiate ANSYS from other software out there.

  • Radiation

You can typically ignore radiation if there isn’t a big temperature gradient between surfaces (or ambient) and just model your system as conduction/convection cooled.  Once that delta is large enough to require radiation to be modeled there are several degrees of numerical difficulty that need to be handled by the solver.

First, radiating to ambient is fairly basic but the heat transfer is now a function of T^4.  The solver can also be sensitive to initial conditions since large DT results in a large heat transfer, which can then result in a large change in temperature from iteration to iteration.  It’s helpful to be able to run the model transiently or as a quasi-static to allow the solver to allow some flexibility.

Next, once you introduce surface to surface radiation you now have to calculate view factors prior to starting the thermal solution. If you have multiple enclosures (surfaces that can’t see each other, or enclosed regions) hopefully there are some processes to simplify the view factor calculations (not wasting time calculating a ‘0’ for elements that can’t radiate to each other).  The view factors can sometimes be sensitive to the mesh density, so being able to scale/modify those view factors can be extremely beneficial.

Lastly you run into the emissivity side of things.  Is the emissivity factor a function of temperature?  A function of wavelength?  Do you need to account for absorption in the radiation domain?

Luckily ANSYS does all of this.  ANSYS Mechanical allows you to easily define radiation to ambient or surface-to-surface.  If you’re using symmetry in your model the full radiating surface will be captured automatically.  You can define as many enclosures as possible, each with different emissivity factors (or emissivity vs Temperature).  There are more advanced features that can help with calculating view factors (simplify the radiating surface representation, use more ray traces, etc) and there is functionality to save the calculated view factors for later simulations.  ANSYS fluid products (CFX and Fluent) can also account for radiation and have the ability to capture frequency-based emissivity and participating media.

image

Automatic expansion of radiating surfaces across symmetry planes

image

Different enclosures to simplify view factor calculations

Long story short…you don’t have to know what the Stefan-Boltzman constant is if you want to include radiation in your model (bonus points if you do).  You don’t have to mess with a lot of settings to get your model to run.  Just insert radiation, select the surface, and run.  Additional options and technical support is there if necessary.

  • Multiple/Multi-physics

I’d expect that any structural/thermal/fluids/magnetics code should be able to solve the basic fundamental equations for the environment it simulates.  However, what happens when you need to combine physics, like a MEMs device.  Or maybe you want to take some guess-work/assumptions out of how one physics loads another, like what the actual pressure load is from a CFD simulation on a structural model.  Or maybe you want to capture the acoustic behavior of an electric motor, accounting for structural prestress/loads such as Joule heating and magnetic forces.

image

ANSYS allows you to couple multiple physics together, either using a single model or through data mapping between different meshes.  Many of the data mapping routines allow for bi-directional data passing so the results can converge.  So you can run an magnetic simulation on the holding force between a magnet and a plate, then capture the deflected shape due to an external load, and pass that deformed shape back to the magnetic simulation to capture the updated force (and repeat until converged).

image

If you have vendor-supplied data, or are using another tool to calculate some other results you can read in point cloud data and apply it to your model with minimal effort.

image

To make another long story short…you can remove assumptions and uncertainty by using ANSYS functionality.

  • Advanced Material Models

 

Any simulation tool should be able to handle simple linear material models.  But there are many different flavors of ‘nonlinear’ simulation.  Does the stiffness change due to deflection/motion (like a fishing rod)?  Are you working with ductile metals that experience plastic deformation?  Does the stiffness change due to parts coming into/out-of contact?  Are surfaces connected through some adhesive property that debonds under high loads?  Are you working with elastomers that utilize some polynomial form hyper-elasic formulation?  Are you working with shape memory alloys?  Are you trying to simulate porous media through some geomechanical model?  Are you trying to simulate a stochastic material variation failure in an impact/explosive simulation?

image

Large deflection stiffness calculations, plasticity, and contact status changes are easy in ANSYS.  Debonding has been available since ANSYS 11 (reminder, we’re at release 18.0 now).  ANSYS recently integrated some more advanced geomechanical models for dam/reservoir/etc simulations.  The explicit solver allows you to introduce stochastic variation in material strengths for impact/explosive simulations.

image

ANSYS also has all the major flavors of hyper-elastic material models.  You can choose from basic Neo-Hookean, Arruda-Boyce, Gent, all the way through multiple variations of Mooney-Rivlin, Yeoh, Ogden, and more.  In addition to having these material models available (and the curve fitting routines to properly extract the constants from test data) ANSYS also has the ability to dynamically remesh a model.  Most of the time when you’re analyzing the behavior of a hyperelastic part there is a lot of deformation, and what starts out as a well-shaped mesh can quickly turn into a bad mesh.  Using adaptive meshing, you can have the solve automatically pause the solution, remesh the deformed shape, map the previous stress state onto the new nodes/elements, and continue with the solution.  I should note that this nonlinear adaptive remesh is NOT just limited to hyperelastic simulations…it is just extremely helpful in these instances.

The ending of this story is pretty much the same as others.  If you have a complicated material response that you’re trying to capture you can model it in ANSYS.  If you already know how to characterize your material, just find the material model and enter the constants.  We’ve worked with several customers in getting their material tested and properly characterized.  So while most structural codes can do basic linear-elastic, and maybe some plastic…very few can capture all the material responses that ANSYS can.

  • MEMs/Piezo/Etc

I know I’ve already discussed multiple physics and advanced materials, but once you start making parts smaller you start to get coupling between physics that may not work well for vector-based coupling (passing load vectors/deformations from one mesh to another).  Luckily ANSYS has a range of multi-physics elements that can solve use either weak or strong coupling to solve a host of piezo or MEM-related problems (static, transient, modal, harmonic).  Some codes allow for this kind of coupling but either require you to write your own governing equations or pay for a bunch of modules to access.

If you have the ANSYS Enterprise-level license you can download a free extension that exposes all of these properties in the Mechanical GUI.  No scripting, no compiling, just straight-up menu clicks.

image

Using this extension you can define the full complex piezoelectric matrix, couple it with an anisotropic elasticity matrix, and use frequency dependent losses to capture the actual response of your structure.  Or if you want you can use simplified material definitions to get the best approximation possible (especially if you’re lacking a full material definition from your supplier).

 

Long story short…there are a lot of simulation products out there.  Pretty much any of them should be able to handle the basics (single part, structural/thermal, etc).  What differentiates the tools is in how easy it helps you implement more real-world conditions/physics into your analysis.  Software can be expensive, and it’s important that you don’t paint yourself into a corner by using a single point-solution or low-end tool.