Skip to main content

Module structural_solver

Module structural_solver 

Source
Expand description

Structural (Solid Mechanics) Time-Stepping Solver

Composes the strength / plasticity / creep / fatigue / buckling models into a single time-stepping loop that follows a component through its service life:

  1. Apply the current load case → nominal stress via beam_stress.
  2. Yield check via plastic::radial_return_1d (permanent strain accumulates each step).
  3. Creep integration via plastic::NortonCreep and the long-term Findley model from creep_longterm (temperature-shifted).
  4. Fatigue damage accumulation via Miner’s rule (fatigue).
  5. Buckling check via buckling::analyze_column — instability trip.

Output: StructuralReport per step and a final StructuralHistory with lifetime totals.

Creep is modelled only where calibrated parameters exist. new installs the PLA presets (FindleyParameters::pla_25c_moderate, NortonCreep::pla_room_temp) only for the crate’s PLA preset material (MaterialProperties::pla(), identified by its Fdm category and its "PLA" name). Any other material starts with creep not modelled: both creep models carry zero coefficients, creep_modelled() is false and every report has creep_strain == 0. with_creep supplies parameters for any material. Before this change every material received the PLA creep presets.

Fatigue: new selects the S-N curve with SnCurve::for_material, i.e. the SUS304 / A5052 metal presets for the crate’s MaterialProperties::sus304() / a5052() (sheet-metal category and preset name) and SnCurve::from_fdm_material for every other material. with_sn_curve overrides it. The per-step Miner damage, StructuralSolver::fatigue_strength_mpa (Basquin inverse) and StructuralSolver::fatigue_spectrum_report all use the selected curve. Before this change the two metal presets also got the polymer rule of thumb (S_e = 0.3 UTS, N_e = 10^6, m = 5).

Buckling: the column check in step uses end_condition (K) and the material’s Young’s modulus. Local plate buckling and snap-through are queries on the solver (StructuralSolver::plate_buckling_mpa, StructuralSolver::snap_through_load_n) evaluated with the solver’s material; they do not trip a failure in step.

Structs§

StructuralHistory
Lifetime accumulation.
StructuralReport
Per-step diagnostic snapshot.
StructuralSolver
Structural solver configuration bundle.