Solvers›Concepts

Analysis Types

Each Ferro Environment runs exactly one analysis type. This page covers what each one models and when to reach for it.

Structural

  • static — Linear static equilibrium: assemble the stiffness matrix, apply loads and supports, solve K·u = f once. The default choice for "does this part survive this load."
  • nonlinear — Static equilibrium with geometric and/or material nonlinearity, solved incrementally rather than in one linear step. Use it when displacements are large enough, or the material is far enough into plasticity, that a linear assumption stops being accurate.
  • contact — Static or nonlinear analysis where two or more bodies can touch, separate, or slide against each other during loading, rather than being rigidly connected.
  • arc_length — A nonlinear solve that can trace a load-displacement curve past a limit point (snap-through/snap-back), where a standard load-controlled nonlinear solve would fail to converge.

Dynamics

  • modal — Natural frequencies and mode shapes of the unloaded structure. Usually the first thing you run before harmonic or random-vibration analysis.
  • complex_modal — Modal analysis for systems with non-proportional damping or gyroscopic effects, where mode shapes and frequencies come out complex rather than real-valued.
  • prestressed_modal — Modal analysis on a structure that's already under load (e.g. a rotating or pressurized part), since stiffness — and therefore natural frequency — shifts under prestress.
  • harmonic — Steady-state response to a sinusoidal load at a sweep of frequencies. Answers "how much does this vibrate at frequency X."
  • transient — Time-domain response to an arbitrary time-varying load, where you need the full history rather than just the steady state.
  • time_dependent — General time-stepping analysis for problems where the governing physics itself changes over time.
  • random_vibration — Statistical response to a random (PSD-defined) load environment, common for qualifying hardware against launch or transport vibration specs.
  • response_spectrum — Peak response estimate from a response-spectrum input (common in seismic and shock qualification), without a full time-domain solve.

Stability

  • buckling — Linear eigenvalue buckling: the load multiplier at which the structure's stiffness matrix goes singular under a given load pattern.

Thermal

  • thermal — Steady-state heat conduction (and, depending on boundary conditions, convection) through a solid.
  • thermal_transient — Time-dependent heat conduction, for parts that haven't reached thermal equilibrium.
  • thermal_structural — Coupled analysis where a thermal solve's temperature field feeds into a structural solve as a thermal load (thermal expansion/stress).

Fatigue & Design

  • fatigue — Life estimation under cyclic loading, typically driven off the stress results of a prior static or transient analysis.
  • topology_optimization — Material layout optimization: given a design space, loads, and constraints, finds where material should and shouldn't be to minimize weight (or another objective) while meeting stiffness/stress targets.

Not Yet Implemented

acoustic_modal and acoustic_harmonic parse as valid analysis types but currently return an unsupported-analysis error at solve time — the request schema anticipates them, but the solver doesn't implement them yet.

Solver Selection

Ferro picks a linear solver automatically based on problem size and structure:

  • Direct sparse Cholesky (via Faer) for symmetric systems under 50,000 DOFs
  • Conjugate Gradient with IC(0) preconditioning for symmetric systems above that threshold
  • GMRES for non-symmetric systems
  • MUMPS is available as an opt-in feature for very large problems