# Second-Order Reliability Methods

The SORM is an improvement over the FORM by accounting for the curved nature of the failure boundary given by $g(\vec{X}) = 0$ around the design point $\vec{x}^{*}$; thus, providing a better approximation of the probability of failure $P_{f}$.

## Curve-Fitting Method

The CF method fits a hyper-paraboloid surface with a vertex at the design point $\vec{x}^{*}$ and the principal curvatures matching the principal curvatures of the failure boundary given by $g(\vec{X}) = 0$ at that point. The probabilities $P_{f}$ of failure are estimated using Hohenbichler and Rackwitz (1988) and Breitung (1984) approximations of the exact solution provided by Tvedt (1990). The calculated probabilities of failure $P_{f}$ are then used to estimate the generalized reliability indices $\beta$, which account for the curved nature of the failure boundary given by $g(\vec{X}) = 0$ around the design point $\vec{x}^{*}$.

## Point-Fitting Method

The PF method fits a series of hyper-semiparaboloid surfaces with a vertex at the design point $\vec{x}^{*}$. The principal curvatures of each surface are estimated using fitting points found at the intersections of a hyper-cylinder with axis coinciding with the design point $\vec{u}^{*}$ and the failure boundary given by $g(\vec{U}) = 0$ in $U$-space. The PF method provides a better estimate of the probability of failure $P_{f}$ than the CF method since it provides a better approximation of highly non-linear failure boundaries given by $g(\vec{X}) = 0$ that are unsymmetrical about the design point $\vec{x}^{*}$.

A great description of both methods can be found in Der Kiureghian (2022).

## API

`Fortuna.solve`

— Method`solve(Problem::ReliabilityProblem, AnalysisMethod::SORM)`

Function used to solve reliability problems using Second-Order Reliability Method (SORM).

`Fortuna.SORM`

— Type`SORM <: AbstractReliabililyAnalysisMethod`

Type used to perform reliability analysis using Second-Order Reliability Method (SORM).

`Submethod::Fortuna.SORMSubmethod`

`Fortuna.CF`

— Type`CF <: SORMSubmethod`

Type used to perform reliability analysis using Curve-Fitting (CF) method.

`ϵ::Real`

: Step size used to compute the Hessian at the design point in $U$-space

`Fortuna.CFCache`

— Type`CFCache`

Type used to perform reliability analysis using Point-Fitting (PF) method.

`FORMSolution::iHLRFCache`

: Results of reliability analysis performed using First-Order Reliability Method (FORM)`β₂::Vector{Float64}`

: Generalized reliability indices $\beta$`PoF₂::Vector{Float64}`

: Probabilities of failure $P_{f}$`κ::Vector{Float64}`

: Principal curvatures $\kappa$

`Fortuna.PF`

— Type`PF <: SORMSubmethod`

Type used to perform reliability analysis using Point-Fitting (PF) method.

`Fortuna.PFCache`

— Type`PFCache`

Type used to perform reliability analysis using Point-Fitting (PF) method.

`FORMSolution::iHLRFCache`

: Results of reliability analysis performed using First-Order Reliability Method (FORM)`β₂::Vector{Float64}`

: Generalized reliability index $\beta$`PoF₂::Vector{Float64}`

: Probabilities of failure $P_{f}$`FittingPoints⁻::Matrix{Float64}`

: Fitting points on the negative side of the hyper-cylinder`FittingPoints⁺::Matrix{Float64}`

: Fitting points on the positive side of the hyper-cylinder`κ₁::Matrix{Float64}`

: Principal curvatures on the negative and positive sides`κ₂::Matrix{Float64}`

: Principal curvatures of each hyper-semiparabola