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