pystra.ss.SubsetSimulation#

class SubsetSimulation(analysis_options=None, limit_state=None, stochastic_model=None, p0=0.1, proposal_sigma=1.0)[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:
  • stochastic_model (StochasticModel)

  • limit_state (LimitState)

  • analysis_options (AnalysisOptions)

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

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

Pf#

Estimated probability of failure.

Type:

float

beta#

Reliability index \(\beta = -\Phi^{-1}(p_f)\).

Type:

float

cov#

Estimated coefficient of variation of \(\hat{p}_f\) (ignoring Markov-chain correlations; a lower bound on the true CoV).

Type:

float

thresholds#

Intermediate thresholds \(y_1, \ldots, y_m\) used at each level.

Type:

list of float

conditional_probs#

Conditional failure probability estimate at each level.

Type:

list of float

n_levels#

Total number of subset levels (including level 0).

Type:

int

Notes

The number of samples per level is taken from analysis_options.getSamples().

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

getBeta

Return the reliability index \(\beta\).

getFailure

Return the probability of failure.

init_run

Initialise the Nataf transformation before the analysis loop.

run

Execute the Subset Simulation analysis.

showResults

Print a summary of Subset Simulation results to the console.

run()[source]#

Execute the Subset Simulation analysis.

getBeta()[source]#

Return the reliability index \(\beta\).

getFailure()[source]#

Return the probability of failure.

showResults()[source]#

Print a summary of Subset Simulation results to the console.

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.