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, solveK·u = fonce. 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.