pystra.ls.LineSampling#

class LineSampling(analysis_options=None, limit_state=None, stochastic_model=None, form=None)[source]#

Bases: AnalysisObject

Line Sampling (LS) reliability analysis.

Line Sampling exploits the important direction \(\boldsymbol{\alpha}\) obtained from FORM. For each of N random samples drawn uniformly in the (n-1)-dimensional hyperplane perpendicular to \(\boldsymbol{\alpha}\), a one-dimensional root-finding problem locates the limit-state surface along the parallel line.

The failure-probability estimate is

\[\hat{p}_f = \frac{1}{N} \sum_{i=1}^{N} \Phi(-c_i)\]

where \(c_i\) is the signed distance from the foot-point of sample i to the limit-state surface along \(\boldsymbol{\alpha}\), and \(\Phi\) is the standard normal CDF.

Parameters:
  • stochastic_model (StochasticModel)

  • limit_state (LimitState)

  • analysis_options (AnalysisOptions)

  • form (Form, optional) – A pre-computed FORM result. If None, FORM is run automatically to obtain the important direction \(\boldsymbol{\alpha}\) and the initial guess for the root search.

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\).

Type:

float

alpha#

Important direction used in the analysis.

Type:

ndarray, shape (nrv,)

n_samples#

Number of lines (samples) used.

Type:

int

References

Koutsourelakis, P. S., Pradlwarter, H. J., & Schuëller, G. I. (2004). Reliability of structures in high dimensions, Part I: algorithms and applications. Probabilistic Engineering Mechanics, 19(4), 409–417.

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 Line Sampling analysis.

showResults

Print a summary of Line Sampling results to the console.

run()[source]#

Execute the Line Sampling analysis.

getBeta()[source]#

Return the reliability index \(\beta\).

getFailure()[source]#

Return the probability of failure.

showResults()[source]#

Print a summary of Line Sampling 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.