FEM EquationElasticity

From FreeCAD Documentation

FEM EquationElasticity

Menu location
Solve → Mechanical equations → Elasticity equation
Default shortcut
Introduced in version
See also
Deformation equation, FEM tutorial


This equation describes the mechanical properties of solid bodies.

For info about the math of the equation, see the Elmer models manual, section Linear Elasticity.


  1. After adding an Elmer solver as described here, select it in the tree view.
  2. Now either use the toolbar button or the menu Solve → Mechanical equations → Elasticity equation.
  3. Change the equation's solver settings or the general solver settings if necessary.

Note: For analyses of nonlinear elasticity you must use the Deformation equation (introduced in version 0.21). The Elasticity equation is only for linear elasticity.

Note: If you use more than one CPU core for the solver (introduced in version 0.21), you cannot use the default solver settings. However, using just one CPU and the default solver settings is in many cases faster than using several CPUs because the elasticity solver is only fast when DataLinear Solver Type is set to Direct (the default, described here). For multi-CPU solving one can only use the DataLinear Direct Method MUMPS. However, MUMPS is not freely available as a direct download.

Solver Settings

For the general solver settings, see the Elmer solver settings.

The elasticity equation provides these special settings:

  • DataCalculate Pangle: If the principal angles should be calculated.
  • DataCalculate Principal: If all stresses should be calculated.
  • DataCalculate Strains: If strains will be calculated. This will also calculate the stresses, even if DataCalculate Principal or DataCalculate Stresses is false.
  • DataCalculate Stresses: If stresses should be calculated. Compared to DataCalculate Principal the Tresca yield criterion and the principal stress will not be calculated.
  • DataConstant Bulk System: See the Elmer manual for more info.
  • DataDisplace Mesh: If mesh can be deformed. This is by default true and must be set to false for eigenfrequency analyses.
  • DataFix Displacement: If displacements or forces are set. thereby DataModel Lumping is automatically used.
  • DataGeometric Stiffness: Considers the geometric stiffness of the body.
  • DataIncompressible: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom DataVariable.
  • DataMaxwell Material: Compute the viscoelastic material model.
  • DataModel Lumping: Uses model lumping.
  • DataModel Lumping Filename: File to save the results from the model lumping.
  • DataStability Analysis: If true DataEigen Analysis becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.
  • DataUpdate Transient System: See the Elmer manual for more info.
  • DataVariable: The variable for the elasticity equation. Only change this if DataIncompressible is set to true in accordance to the Elmer manual.


  • DataEigen Analysis: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).
  • DataEigen System Complex: Should be true if the eigen system is complex. it must be false for a damped eigen value analyses.
  • DataEigen System Compute Residuals: Computes residuals of the eigen value system.
  • DataEigen System Damped: Set a damped eigen analysis. Can only be used if DataLinear Solver Type is Iterative.
  • DataEigen System Select: Selection of which eigenvalues are computed. Note that the selection of Largest* cause an infinite run for recent Elmer solver (as of August 2022).
  • DataEigen System Tolerance: Convergence tolerance for iterative eigensystem solve. The default is 100 times the DataLinear Tolerance.
  • DataEigen System Values: The number of the highest eigenmode that should be calculated.


  • DataPlane Stress: Computes solution according to the plane stress situation. Applies only for 2D geometry.

Analysis Feature Information

The elasticity equation takes the following analysis features into account if they are set:


  • Except for calculations in 2D, for all the above analysis features it is important that they act on a face. Features in 3D set to lines or vertices are not recognized by the Elmer solver.

Eigenmode Analysis

To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to

  1. Set DataEigen Analysis to true
  2. Set DataDisplace Mesh to false
  3. Set DataEigen System Values to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.
  4. Add a fixed boundary condition and set at least one face of the body as fixed.
  5. Run the solver.

It is highly recommended to use DataLinear Solver Type set to Direct (the default) because this is much faster and the results are more accurate.

Buckling Analysis

To perform a buckling analysis, you need to do the same as for an Eigenmode Analysis, and additionally:

  • Set DataStability Analysis to true


The available results depend on the solver settings. If none of the DataCalculate * settings was set to true, only the displacement is calculated. Otherwise also the corresponding results will be available. If DataEigen Analysis was set to true all results will be available for every calculated eigenmode.

If DataEigen Analysis was set to true, the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document SolverElmerOutput that will be created in the tree view after the solver has finished.

Note: The eigenmode displacement vector has an arbitrary value since the result is

whereas is the eigenvector and is a complex number.