pystra.ss.SubsetSimulation#
- class SubsetSimulation(analysis_options=None, limit_state=None, stochastic_model=None, p0=0.1, proposal_sigma=1.0)[source]#
Bases:
AnalysisObjectSubset 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
Return the reliability index \(\beta\).
Return the probability of failure.
Initialise the Nataf transformation before the analysis loop.
Execute the Subset Simulation analysis.
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.