Finite Element Analysis
Finite Element Analysis is a very computational intensive technique for solving a wide range of problems. This page will give you some suggestions for improving FEM performance of ISV codes such as Abaqus, ANSYS, and Nastran, as well as open-source codes such as OpenSees, Tahoe, OOFEM, Calculix, Impact, Elmer, Warp3D, MechSysNG, Kratos, PDD, Adventure, deal.ii GeoFEM, ParaFEM that are focused on solving solid mechanics problems with FEA techniques.
Popular Open Source Packages
- Elmer is an open source multiphysical simulation software developed by CSC. Elmer development was started 1995 in collaboration with Finnish Universities, research institutes and industry. Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by partial differential equations which Elmer solves by the Finite Element Method (FEM).
- Impact is an open source finite element program suite which can be used to predict most dynamic events such as car crashes or metal sheet punch operations. They usually involve large deformations and high velocities. Simulations are made on a virtual three dimensional model which can be created with a pre-processor or with the built-in Fembic language. Results are viewed in a post-processor.
- WARP3D is under continuing development as a research code for the solution of very large-scale, 3-D solid models subjected to static and dynamic loads. Specific features in the code oriented toward the investigation of fracture in metals include a robust finite strain formulation, a general J-integral computation facility (with inertia, thermal, face loading), interaction integrals for computation of linear-elastic fracture parameters, very general element extinction and node release facilities to model crack growth, nonlinear material models including viscoplastic and cyclic, cohesive elements and cohesive constitutive models, and the Gurson-Tvergaard dilatant plasticity model for void growth.
- PARAMESH is a package of Fortran 90 subroutines designed to provide an application developer with an easy route to extend an existing serial code which uses a logically cartesian structured mesh into a parallel code with adaptive mesh refinement(AMR). Alternatively, in its simplest use, and with minimal effort, it can operate as a domain decomposition tool for users who want to parallelize their serial codes, but who do not wish to use adaptivity. The package builds a hierarchy of sub-grids to cover the computational domain, with spatial resolution varying to satisfy the demands of the application. These sub-grid blocks form the nodes of a tree data-structure (quad-tree in 2D or oct-tree in 3D). Each grid block has a logically cartesian mesh.
- MOOSE or Multiphysics Object-Oriented Simulation Environment (MOOSE) is a finite-element, multiphysics framework primarily developed by Idaho National Laboratory. It provides a high-level interface to some of the most sophisticated nonlinear solver technology on the planet. MOOSE presents a straightforward API that aligns well with the real-world problems scientists and engineers need to tackle. Every detail about how an engineer interacts with MOOSE has been thought through, from the installation process through running your simulation on state of the art supercomputers, the MOOSE system will accelerate your research.
- ASL Advanced Simulation Library is a free and open source hardware accelerated multiphysics simulation software. Its computational engine is based, among others, on the Lattice Boltzmann Methods and is written in OpenCL which enable extraordinarily efficient deployment on a variety of massively parallel architectures, ranging from inexpensive FPGAs, DSPs and GPUs up to heterogeneous clusters and supercomputers. The engine is hidden entirely behind simple C++ classes, so that no OpenCL knowledge is required from application programmers. ASL can be utilized to model various coupled physical and chemical phenomena and employed in a multitude of fields: computational fluid dynamics, virtual sensing, industrial process data validation and reconciliation, image-guided surgery, computer-aided engineering, design space exploration, crystallography, etc..
Non-FEM Solver tips
The following list of items are not related to the actual FEM solver itself. But since solvers range so widely, these tips are somewhat generic and may or may not help your specific applicaiton.
FEM codes, for the most part, do a great deal of local IO. This is a result of several possibilities including the solver itself (an out-of-core solver) or retaining intermediate results to make post-processing, including stress recovery, much faster.
Based on some testing of commercial FEM codes, here are some tips for improving performance.
- Use RAID-0 for the local scratch space.
- If possible use EXT2 or XFS for the local IO