pystra.system_form.SystemFORM#

class SystemFORM(system, stochastic_model, analysis_options=None, *, 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 Nataf transform. Homogeneous nested series/parallel systems are flattened; mixed topologies are rejected. Use original-system Monte Carlo for general topologies.

Parameters:
  • system (SeriesSystem or ParallelSystem) – System failure event.

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

  • analysis_options (AnalysisOptions, optional) – Component FORM settings. DDM gradients must use full model ordering.

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

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

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

component_results#

Component names mapped to completed Form objects (beta, alpha, design points and convergence residuals).

Type:

dict

correlation#

Correlation of linearized normal scores, alpha @ alpha.T. This is neither the physical-variable nor binary-failure correlation matrix.

Type:

ndarray

bounds#

Ditlevsen bounds for a series system; marginal/Frechet bounds for a parallel system. These bound the linearized event only.

Type:

tuple

intersections#

Pairwise failure probabilities of the component tangent planes.

Type:

ndarray

Notes

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

getBeta

Return -Phi^-1(Pf), the equivalent system reliability index.

getFailure

Return the system FORM probability after a successful run.

init_run

Initialise the Nataf transformation before the analysis loop.

run

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

showResults

Print the approximation and bounds for its linearized event.

run()[source]#

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

getFailure()[source]#

Return the system FORM probability after a successful run.

getBeta()[source]#

Return -Phi^-1(Pf), the equivalent system reliability index.

showResults()[source]#

Print the approximation and bounds for its linearized event.

init_run()#

Initialise the Nataf transformation before the analysis loop.

Computes the modified (Nataf) correlation matrix and its factorisation. Must be called at the start of every run() method in subclasses.