Solvers›Concepts

Analysis Types

Each Ferro Environment runs exactly one analysis type. Ferro runs four, all linear and all on a 3D solid mesh of a single element type (Tet4, Tet10, Hex8 or Hex20):

  • static — Linear static equilibrium: assemble the stiffness, apply loads and supports, solve K·u = f once. The default choice for "does this part survive this load."
  • modal — Natural frequencies and mode shapes of the unloaded structure.
  • buckling — Linear eigenvalue buckling: the load multiplier at which the structure's stiffness goes singular under a given load pattern.
  • prestressed_modal — Modal analysis of a structure under load (e.g. a pressurized or tensioned part): the static state under the environment's loads stiffens or softens it, shifting its natural frequencies.

A case with any other analysis type, a shell, beam or bar model, or a mesh that mixes element types is rejected before solving.

Materials

Every analysis takes preset, linear_elastic and temperature_dependent materials (the last evaluated at the environment's temperature). Static and modal also take orthotropic materials, including a different material per mesh region.

Solver Selection

Ferro picks a solver from the problem size:

  • Static: direct sparse Cholesky (via Faer) up to 50,000 free DOFs, a matrix-free AMG-preconditioned conjugate gradient solver above that
  • Modal, buckling and prestressed modal: direct shift-invert eigensolvers under 250,000 DOFs, a matrix-free block-Davidson eigensolver from there
  • Ties always use the matrix-free solvers

Matrix-free solves run on the GPU from 250,000 DOFs when one is available, and on the CPU otherwise.