pystra.reliability.system_form.SystemFORM#

Use it: User guide · Worked example · Theory

class SystemFORM(model, system, *, options=None, on_failure='raise', maxpts=1000000, abseps=1e-10, releps=1e-05)[source]#

Bases: AnalysisObject

Approximate a series or parallel system using component tangent planes.

All components use the same complete stochastic model and transformation into independent normal coordinates, including the same Rosenblatt order. Homogeneous nested series/parallel systems are flattened; mixed topologies are rejected. Use original-system Monte Carlo for general topologies.

Parameters:
  • model (StochasticModel) – Shared variables, constants and dependence model.

  • system (SeriesSystem | ParallelSystem) – System failure event.

  • options (FORMOptions | None) – Component FORM settings. DDM gradients must use full model ordering.

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

  • maxpts (int) – Maximum integration points per multivariate normal CDF call.

  • abseps (float) – Requested absolute and relative integration tolerances. These are numerical targets, not certified error bounds or FORM model errors.

  • releps (float) – Requested absolute and relative integration tolerances. These are numerical targets, not certified error bounds or FORM model errors.

Notes

run() returns a SystemFORMResult with each component’s FORM record, the correlation of the linearized normal scores (neither the physical-variable nor the binary-failure correlation), the bounds on the linearized event and the pairwise intersections.

Exact up to integration error for affine limit states in standard normal space. Nonlinear components remain first-order approximations, and FORM can find a local rather than global design point. Normal integration may vary between runs; tight tolerances do not certify rare-tail accuracy.

Methods

init_run

Initialize the model's isoprobabilistic transformation.

run

Run each unique component once, then integrate the system event.

run()[source]#

Run each unique component once, then integrate the system event.

Returns a SystemFORMResult.

Return type:

SystemFORMResult

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