pystra.reliability.sorm.SORM#

Use it: User guide · Worked example · Theory

class SORM(model, limit_state, *, options=None, form=None, on_failure='raise')[source]#

Bases: _FORMReuse, AnalysisObject

Second-order reliability method (SORM).

Approximates the failure surface in standard normal space using a quadratic surface, improving on the linear FORM approximation. Two approaches are available:

Curve-fitting (fit="curve", default): computes the Hessian of the limit-state function at the design point, extracts principal curvatures as eigenvalues, and applies the Breitung formula.

Point-fitting (fit="point"): locates fitting points directly on the failure surface on both sides of each principal axis using Newton iteration, then computes curvatures from their positions. This yields asymmetric curvatures (different on the positive and negative sides of each axis).

Both methods report the Breitung [Breitung1984] and the Hohenbichler-Rackwitz [Hohenbichler1988] failure probabilities and generalized reliability indices.

Parameters:
  • model (StochasticModel) – The stochastic model with random variables and correlations.

  • limit_state (LimitState) – The limit-state function.

  • options (SORMOptions | None) – The fit, the reported formula and the Hessian step.

  • form (FORM | None) – A completed, converged FORM analysis, whose design point, transformation and settings SORM reuses. If None, run() first runs FORM with options.form.

  • on_failure (Literal['raise', 'return']) – On nonconvergence, raise AnalysisError, which carries the unconverged record in .result, or return that record.

Notes

run() returns a SORMResult with the curvatures and each formula’s probability.

Methods

init_run

Initialize the model's isoprobabilistic transformation.

run

Run SORM with the fit in options.fit.

property form: FORM | None#

The last FORM analysis; assigning None requests a fresh FORM each run.

run()[source]#

Run SORM with the fit in options.fit.

Curve fitting uses the eigenvalues of the Hessian at the design point; point fitting locates points on the failure surface by Newton iteration. FORM is run first if no FORM analysis was supplied.

Returns:

The immutable record of this run.

Return type:

SORMResult

Raises:

AnalysisError – If FORM did not converge, a fitting point cannot be found, or the formula is undefined for the fitted curvatures, unless on_failure="return".

init_run()#

Initialize the model’s isoprobabilistic transformation.

Uses the explicit copula or calibrates the legacy Gaussian Nataf correlation. Must be called at the start of every run() method in subclasses.

Return type:

None