There are roughly three ways to change a model such that it runs faster
- reduce the detail level of the model
- make use of modeling abstractions
- use aggressive techniques to arrive more quickly at nearly the correct solution
Reduce Detail Level
The typical guidance for how much detail a model needs is to run a convergence study, increasing detail until the result that an analyst cares about is no longer changing as more detail is introduced. I generally agree, although a smart analyst should still build up a feel for about how much is necessary for certain features that are commonly modeled in their work. A few other tips:- If an analyst is comfortable working with second order elements, they will typically achieve more accurate results with less run time than simply adding more elements
- If only a portion of the model is of interest, then Abaqus Surface-Surface ties can allow for a faster transition to the less detailed global model
Many situations do not converge to a solution, and will continue to change their result no matter how fine the level of detail, as the elasticity solution is undefined at a point of interest. These situations are:
- A perfectly sharp corner
- A point in space that can see three material models, with empty space counting as one material model. These are commonly encountered in soldered joints, composite layups, and other situations where bonding unites two dissimilar materials. For these situations correlation studies using physical test specimens are usually used, and they will indicate the level of detail one should use in a corresponding FEA model
- A point constraint or point load
Modeling Abstractions
SuperelementsIf a portion of the model is fixed and will not vary throughout the design process, you can create a superelement (or DMIG as they are sometimes referred to in Nastran) to find the structural response at the interface to that portion of the model
Submodeling
If the portion of interest in an Abaqus model is much smaller than the global model which determines the loads that go into it, and design changes in a submodel will not effect the global model, a submodel can provide insight into the behavior of the small portion of the model without having to compute the global solution
Modal Techniques
If the modal density of a model is not too high, modal transients or dynamics can save significant run time. This is particularly with the advanced eigensolvers that are becoming more common in solvers such as Abaqus, Nastran, and Optistruct. Note that modal density refers to how many modes lie within a frequency range of interest, relative to how many degrees of freedom there are in the model.
Aggressive Techniques
Some of these are a little wild and could lead to inaccurate results. Be careful.- Use the unsymmetric solver in Abaqus when dealing with models which have strong nonlinear behavior. Certain nonlinearities absolutely require it, others just converge faster with an unsymmetric solver, with fewer steps, even though each step will require slightly more work
- Use an iterative solver for large compact models, such as engine blocks
- Reduce convergence criteria for nonlinear analyses. If a model is nearly converged but not quite you can just call it good enough and move on with these tricks
- For models where a body is positioned only by contact with friction, try lightly constraining the body with a spring or constraint while converging the contact solution, then removing the constraint at the last step. It will change the final result, as contact is path dependent
- Use variable mass scaling in Abaqus explicit to set a minimum stable time increment when there are a few small elements controlling the minimum stable time increment. The size of the scaling and the number of small elements may effect the accuracy of this technique
Great post.
ReplyDeleteOne trick I use to get more visibility for my blog is I add the term: FEA, Nastran, Abaqus, or Optistruct to my blog post titles.
Google likes this a lot.