1.1 Geometry Simplifications and Defeaturing
1.1.1 In many cases CAD geometry for design and manufacture contains too much detail for simulation. For example, small holes, chamfers or fillets have little effect on the overall stiffness and performance of the structure and hence can be safely defeatured. This makes meshing easier and reduces the size of the overall FE model.
1.2 Model Dimensionality and Symmetry
1.2.1 Start simple and build confidence and complexity as needed. Use 2D, axisymmetric and/or symmetry if applicable. For example, use an axisymmetric model as a stepping stone for a 3D model.
1.2.2 The use of symmetry depends on both the geometry and loading. Using symmetry can significantly reduce the size of the model and runtimes.
1.3 Meshing (element type/refinement)
1.3.1 Depending on the complexity and dimensionality of the parts, either solid (tet/brick) elements, shells (tri/quad) or beams can be used. If the parts are blocky and fully three-dimensional, solid elements must be used. If the parts are plate-like or slender, shell elements or beams are recommended, respectively.
1.3.2 For solid parts it’s preferable to mesh with brick elements, but this depends on the complexity of the parts. Linear bricks are good elements and C3D8R are the recommended choice, but they can suffer from hourglassing problems at high loads. The enhanced hourglass control method is normally the best choice (*SECTION CONTROLS, HOURGLASS=ENHANCED). If the parts are ‘chunky’ and large plasticity is involved C3D8 can sometimes be a valid choice, but be aware that these elements are generally over-stiff in bended.
1.3.3 If the parts can’t be mesh with bricks, then quadratic tetrahedral elements (C3D10) must be used. Linear tets are over-stiff in bending and are generally not recommended. I would also avoid the old C3D10M elements, as they are actually bi-linear and not quadratic. They were developed to overcome the contact issues with lagragian contact, but if you are using penalty contact and/or surface-to-surface contact, these elements are no longer required.
1.3.4 Its good practice to refine the mesh in regions of high stress and/or plasticity. This then allows the model to accurately capture the high stress and strain gradients.
1.4 Constraints (ties/couplings)
1.4.1 Unless parts share nodes, parts will simply pass through each without contact (or ties) activated in the model.
1.4.2 Ties can be used to connect parts so that they are effectively glued together throughout the simulation. They can also be used to join two dissimilar meshes. For example, a part may be too complex to fully mesh with a single continuous brick mesh, so either a hybrid brick and tet mesh or two disconnected brick meshes can be glued together. It’s recommended to place the tie connection in a region of low stress gradients.
1.4.3 Couplings (either distributing or rigid) or MPCs can be used to apply the far-field loading and constraints. In an elastic-plastic run this allows the load versus displacement response to be plotted in order to access the global stiffness.
1.5 Boundary Conditions and Loads
1.5.1 Displacement control is generally more stable and easier to solve that load control. Therefore its recommended to either apply a displacement load and monitor the reaction force to see if you’ve reached the desired load or initialize the model under displacement control (to bring all the parts into contact) and then switch to load control to apply the full load.
2.1 Type (contact pair/general contact)
2.1.1 Contact pairs (*CONTACT PAIR). This is the traditional way of defining contact in a model. The user must select two surfaces (slave and a master) for a contact pair. Any number of contact pairs can be defined, however for a large assembly the number of contact pairs can grow significantly.
2.1.2 The ‘Find Contact Pairs’ tool in Abaqus/CAE can be used to quickly create contact pairs. Note that if a particular contact pair is omitted from the model, the parts will pass straight through each other, so care must be taken to ensure all the contact pairs are correctly defined.
2.1.2 General Contact (*CONTACT). This is the newer method of defining contact in a model. By default user simply allows the solver to detect contact between all the parts in
the model. It can be tailored further using contact inclusions (*CONTACT INCLUSIONS) and contact exclusions (*CONTACT EXCLUSIONS), if needed.
2.2 Approach (node-to-surface/surface-to-surface)
2.2.1 Node to surface contact (*CONTACT PAIR, TYPE=NODE TO SURFACE). The node to surface approach enforces contact between slave nodes and the master element faces. As constraints are only formed at the slave nodes, master nodes are then free to penetrate the slave surface. Careful choice is then needed when choosing the slave and master surfaces. To reduce possible penetration of the master nodes, it’s recommended that the slave surface is the finer mesh. If the meshes are matching or similar the choice is arbitrary.
2.2.2 Surface to surface contact (*CONTACT PAIR, TYPE=SURFACE TO SURFACE). With this approach, contact is enforced using a weighted-average method over the contacting element faces. It is slightly more expensive (computationally) than node to surface contact, but generally gives more accurate results and is more tolerant of sharp corners and the need for a finer mesh on the slave surface is less important.
2.2.3 Surface to surface contact has in most cases superseded node to surface contact nowadays and it is also used within general contact in Abaqus/Standard. There will still be situations when the older node-to-surface approach is better than the surface to surface approach and vice versa.
2.2.4 Matching meshes give the best results, but it’s not a strict requirement of either approach. If a matching mesh is not possible, choose the slave surface as the more refined mesh.
2.3 Tracking Method (small sliding/finite sliding)
2.3.1 Small sliding contact (*CONTACT PAIR, SMALL SLIDING). This method, as the name suggests, is designed for problems where relative sliding of parts is small compared to the size of elements in the contact zone. For example, contact between an engine block and the cylinder head. This method is generally faster than the finite sliding algorithm, but can give unexpected or undesirable results, if contact sliding is present in the model. Hence, care must be taken using this method.
2.3.2 Finite sliding contact (*CONTACT PAIR). This method is the general purpose algorithm which can be used in all contact situations, including large sliding problems. It’s more expensive that the small sliding algorithm, but much more versatile.
2.4 Enforcement Method (lagrangian/penalty)
2.4.1 Node to surface contact (with the default surface interactions) will result in the Lagrangian contact method being employed. This method uses Lagrange multipliers to ‘constrain’ the slave nodes from penetrating master surface. These relationships are switched on or off depending on whether the slave nodes are in contact with the master surface segments. This method usually requires more severe discontinuity iterations (SDI’s) but once there is no change in the contact status, equilibrium usually converges quickly. The penetration of slave nodes is controlled very accurately but the method can lead to over-constraint problems when other equations/MPC’s/constraints conflict with it. (e.g. doubled-up contacts with matched meshes).
2.4.2 Surface to surface contact and general contact exclusively uses the penalty method. The penalty method is essentially a non-linear ‘spring’ type enforcement method where contacting nodes see a very stiff contact spring and non-contacting nodes see a very small stiffness. This method is less strict that the Lagrangian method and hence small amounts of penetration are expected. However, in many cases this penetration can be neglected when compared to the size of the model and the displacement magnitudes. Penalty contact generally is more forgiving and requires less SDI’s to settle the contact. It may need more equilibrium iterations though, so there is a trade-off.
2.4.3 Penalty contact is also available for node-to-surface contact, and this can improve convergence and removes the over-constraint issue.
2.4.4 Penalty contact is available using either a linear or a nonlinear (*SURFACE BEHAVIOR, PENALTY=LINEAR/NONLINEAR) contact pressure overclosure relationship. Nonlinear penalty contact is highly recommended, as it uses a low initial contact stiffness which helps establish contact and then high contact stiffness at higher loads to prevent severe penetration.
2.5.1 Adding friction (*FRICTION) to the model generally makes the problem more nonlinear. It has the benefit of potentially removing rigid body modes; however convergence of the contact algorithm is generally harder than without friction.
2.5.2 Adding friction also adds unsymmetric terms to the equations. Abaqus automatically activates the unsymmetric solver when the friction is greater than 0.2. Turning on the unsymmetric solver can help in lower friction runs, or when you have slip reversal or highly curved master surfaces (*STEP, UNSYMM=YES).
2.6 Contact Adjustment
2.6.1 Contact adjustment (*CONTACT PAIR, ADJUST=value) is strongly recommended when parts are initially touching. This eliminates any small gaps and penetrations introduced into the model due to meshing and the accuracy of the preprocessor. In addition it removes rigid body modes and helps establish initial contact.
2.7 Shrink fit
2.7.1 In the first step of the analysis, contact shrink fit (*CONTACT INTERFERENCE, SHRINK) can be used to resolve any overlaps in the parts over the duration of the step. By default (if this keyword is omitted), contact overclosures are instantaneously removed, which can cause divergence of the first increment and automatic cutback of the increment size won’t necessarily help.
2.8 Contact Stabilization
2.8.1 If the parts cannot be moved into initial contact or rigid body modes exist in the model, use of contact stabilization can help (*CONTACT CONTROLS, STABILIZE =factor). Based on experience I would starting with a factor of 0.01 (1%) and not default=1, as I’ve noticed that the default stabilization is generally too high, which causes other problems. For example, contact can be held apart by stabilization until >99% through the analysis until the stabilization gets low enough (by default, contact stabilization ramps off over the step) that parts are able to move and hence the solver can’t handle everything happening at once. Also, be aware that if the model still has rigid body modes at the end of the step, contact stabilization will have automatically ramped off (by default) and hence the model will start to diverge.
2.8.2 Contact stabilization is defined at the step level and doesn’t automatically propagate from step to step. So care must be taken to ensure that the desired contact stabilization is applied when used over multiple steps.
2.8.3 Always check the viscous dissipation energy output (ALLVD) against the internal energy (ALLIE) to make sure the model doesn’t have too much contact stabilization.
2.9 Contact Extension Zone.
2.9.1 Care should be taken to ensure that the master surface is larger than the patch of slave nodes, to stop the slave nodes sliding off the master surface during sliding. This is especially true when the slave material is relatively compliant compared to the master material. For the finite sliding algorithm Abaqus automatically extends the master surface
by 10% of the perimeter element size. It can be altered in the range 0-20% using the following keyword *CONTACT PAIR, EXTENSION ZONE=factor.
2.9.2 As the extension zone is based on the element size in the contact region, refining the master surface mesh may cause divergence earlier in the simulation.
2.9.3 Not an issue with the small slidng algorithm, but this method is not recommended for large sliding problems.
3.1.1 Typically as more load is applied to the model, contact becomes well established and contact convergence generally becomes easier. There are cases however when this is not true, for example a ‘snap-fit’ problem contact can be lost during the simulation and the load path changes significantly. This will cause sudden divergence problems unless methods of handling the release in kinetic energy are employed, e.g. using stabilization or implicit dynamics.
3.1.2 It’s a good idea to move the parts in relation to one another (in the preprocessor) so that small overlaps (0.02mm say) exist and then define a ‘pre-step’ with ‘shrink-fit’ to get the contact to converge before applying the main load. Within this ‘prep-step’ you can fix both ends of the structure held so that some stress develops in the overlapped structure.
3.1.3 If a model is having problems solving, it’s a good idea to use the Job Diagnostics tool in Abaqus/Viewer or open the job message file (*.msg) to try to diagnose the problem. Find the first unconverged increment and look for regularly reported contact pairs/nodes which are having problems and/or nodes with the highest residual forces that struggling to converge. Then decide if it’s a contact or equilibrium issue. Finally look at the location of these nodes in the model to address the issue. There are many reasons for divergence and its very problem specific. For example, if the nodes are at the edge of contact, they could be slipping off the master surface and hence you may need to extend the master surface accordingly.
3.2 Limit Load
3.2.1 At high loads divergence can sometimes be attributed to the loss of global stiffness (excessive plasticity), as the limit load is reached.
3.2.2 To examine the global response of the structure, plot the force vs displacement or moment vs rotation to ensure that the model has enough stiffness to carry the imposed
loads. If the gradient is very shallow then the structure is approaching its limit load and the reason for Abaqus failing to converge will be due to the physics of the problem and not a numerical issue.
3.3 Rigid body modes/zero pivots
3.3.1 For a static analysis it is important to make sure that none of the parts can move as rigid bodies. A complete model with no planes of symmetry, each part will have 6 rigid body modes. Therefore, the user must properly restrain the model by applying suitable boundary conditions, contact or even weak springs. Note, contact only restrains the model in the normal direction when contact is established and in the tangential direction if friction is present and the nodes are ‘sticking’ and not ‘slipping’.
3.3.2 Zero pivots are typically the product of over/underconstraints, or an ill-conditioned problem. If you see ‘zero pivot’ messages in the .msg file, this could indicate that rigid body modes still exist in the model. This means that one or all the parts are not fully restrained. For example, unrestrained bearings or bushes floating away or rotating freely about their own axis. Those parts then need suitable restraints.
3.3.3 Utilizing symmetry can help, as one symmetry plane will reduce the rigid body modes by half (6 down to 3) and a second symmetry will reduce it by two-thirds (3 down to 1).
3.3.4 These messages can safely be ignored in unconverged increments, but must be carefully checked in converged increments.
3.4 Negative eigenvalues
3.4.1 There are many causes of negative eigenvalue warnings. For example if nonlinear material definitions are used then loss of load carrying capability of a material may be a likely cause. Similarly if a mechanism relying on contact to constrain its parts is being modelled, then negative eigenvalues may be due to rigid body modes resulting from improperly initialised contact. However, in a complex simulation involving contact, material degradation and nonlinear geometry it may be difficult to find the root of a negative eigenvalue warning. This problem is made even worse for negative eigenvalue warnings as, unlike other warnings such as zero pivots or numerical singularities, a negative eigenvalue cannot be traced back to a particular degree of freedom in the model it is a property of the system of linearised equilibrium equations.
3.4.2 Negative eigenvalue warnings indicate that there could be a release of internal energy from the model. A general list of common causes:
– Loss of model stiffness or solution uniqueness, i.e. buckling.
– Spurious buckling modes in a buckling analysis where the model is not stiff and linear elastic in its initial state.
– Unstable material response including perfect plasticity, hyperelastic materials at high strain and cracking.
– Anisotropic material definition with comparatively low shear moduli.
– Use of improperly constrained pre-tension nodes. The structure may fall apart and negative eigenvalue warnings result.
– Rigid body modes
3.4.3 These messages can safely be ignored in unconverged increments, but must be carefully checked in converged increments.
3.5 Unsymm solver
3.5.1 The unsymmeric solver (*STEP, UNSYMM=YES) can help convergence in certain situations. For example, friction less than 0.2, extreme plasticity, highly curved contact master surfaces and certain material models, e.g. Mohr Coulomb plasticity model.