pystra.reliability.subset_simulation.SubsetSimulation#

Use it: User guide · Worked example · Theory

class SubsetSimulation(model, limit_state, *, options=None, p0=0.1, proposal_sigma=1.0, rng=None)[source]#

Bases: AnalysisObject

Subset Simulation (SS) reliability analysis.

Subset Simulation decomposes the rare failure event \(F = \{g(\mathbf{u}) \le 0\}\) into a sequence of more frequent nested intermediate events \(F_1 \supset F_2 \supset \cdots \supset F_m = F\):

\[p_f = P(F_1)\prod_{j=2}^{m} P(F_j \mid F_{j-1})\]

The intermediate thresholds \(y_1 > y_2 > \cdots > y_m = 0\) are chosen adaptively so that each conditional probability is approximately equal to the target level \(p_0\). Conditional samples are generated via the Modified Metropolis–Hastings (MMH) algorithm operating component-wise in standard normal space.

Parameters:
  • model (StochasticModel)

  • limit_state (LimitState)

  • options (SimulationOptions | None) – n_samples is the number of samples per level.

  • p0 (float) – Target conditional failure probability per subset level (default 0.1).

  • proposal_sigma (float) – Half-width of the uniform proposal kernel used in MMH, measured in standard-deviation units of the standard normal space (default 1.0).

  • rng (int | integer | Sequence[int] | ndarray | SeedSequence | BitGenerator | Generator | None) – Random source; NumPy’s global generator is not used. A seed recreates the same stream on every run, a generator advances its own state, and None draws fresh entropy.

Notes

The number of samples per level is options.n_samples. run() returns a SimulationResult; its diagnostics include the thresholds and conditional probabilities.

References

Au, S. K., & Beck, J. L. (2001). Estimation of small failure probabilities in high dimensions by subset simulation. Probabilistic Engineering Mechanics, 16(4), 263–277.

Methods

init_run

Initialize the model's isoprobabilistic transformation.

run

Run subset simulation and return a SimulationResult.

run()[source]#

Run subset simulation and return a SimulationResult.

Return type:

SimulationResult

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