pystra.form.Form#

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

Bases: AnalysisObject

First Order Reliability Method (FORM)

Let \({\\bf Z}\) be a set of uncorrelated and standardized normally distributed random variables \(( Z_1 ,\dots, Z_n )\) in the normalized z-space, corresponding to any set of random variables \({\\bf X} = ( X_1 , \dots , X_n )\) in the physical x-space, then the limit state surface in x-space is also mapped on the corresponding limit state surface in z-space.

The reliability index \(\\beta\) is the minimum distance from the z-origin to the failure surface. This distance \(\\beta\) can directly be mapped to a probability of failure

\[\begin{split}p_f \\approx p_{f1} = \Phi(-\\beta)\end{split}\]

this corresponds to a linearization of the failure surface. The linearization point is the design point \({\\bf z}^*\). This procedure is called First Order Reliability Method (FORM) and \(\beta\) is the First Order Reliability Index. [Madsen2006]

Attributes:
  • stochastic_model (StochasticModel): Information about the model

  • limit_state (LimitState): Information about the limit state

  • analysis_option (AnalysisOption): Option for the structural analysis

Methods

computeAlpha

Compute alpha vector

computeBeta

Compute beta value

computeFailureProbability

Compute probability of failure

computeGamma

Compute gamma vector

computeJacobian

Compute the Jacobian

computeLimitState

Evaluate limit-state function and its gradient

computeSearchDirection

Determine search direction

computeStartingPoint

Compute starting point for the algorithm

computeStepSize

Calculate the step size for the calculation

computeTransformation

Compute transformation from u to x space

getAlpha

Returns the alpha vector

getBeta

Returns the beta value

getDesignPoint

Returns the design point, defaults to u-space

getFailure

Returns the probability of failure

getNoFunctionCalls

Returns the number of function evaluations used

getStepSize

Determine step size

init_run

Derived classes call this at top of their run()

run

Executes the FORM analysis

showDetailedOutput

Get detailed output to console

showResults

Show results

run()[source]#

Executes the FORM analysis

computeStartingPoint()[source]#

Compute starting point for the algorithm

computeTransformation()[source]#

Compute transformation from u to x space

computeJacobian()[source]#

Compute the Jacobian

computeLimitState()[source]#

Evaluate limit-state function and its gradient

computeAlpha()[source]#

Compute alpha vector

computeGamma()[source]#

Compute gamma vector

computeSearchDirection()[source]#

Determine search direction

getStepSize()[source]#

Determine step size

computeStepSize(G, gradient, u, d)[source]#

Calculate the step size for the calculation

Returns:
  • step_size (float): Returns the value of the step size.

computeBeta()[source]#

Compute beta value

computeFailureProbability()[source]#

Compute probability of failure

showResults()[source]#

Show results

showDetailedOutput()[source]#

Get detailed output to console

getBeta()[source]#

Returns the beta value

Returns:
  • beta (float): Returns the beta value

getFailure()[source]#

Returns the probability of failure

Returns:
  • Pf (float): Returns the probability of failure

getDesignPoint(uspace=True)[source]#

Returns the design point, defaults to u-space

Returns:
  • u (float): Returns the design point in u- or x-space

getAlpha(as_dict=False)[source]#

Returns the alpha vector

Returns:
  • alpha (np.array): Returns the alpha vector

getNoFunctionCalls()[source]#

Returns the number of function evaluations used

Returns:
  • n (int): Returns the number of function evaluations

init_run()#

Derived classes call this at top of their run()