SORM
In SORM [15] the performance function is approximated by a second-order Taylor series around the design point according to
where \(\textbf{H}\) is the Hessian matrix of the second derivatives of \(G(\textbf{U})\) evaluated at \(\textbf{U}^*\). After the design point \(\textbf{U}^*\) is identified and the probability of failure \(P_{f, \text{form}}\) is calculated with FORM a correction is made according to
where \(\kappa_i\) is the i-th curvature.
The SORM
class is imported using the following command:
>>> from UQpy.reliability.taylor_series.SORM import SORM
Methods
- class SORM(form_object, df_step=0.01)[source]
SORM
is a child class of theTaylorSeries
class. Input: TheSORM
class requires an object of typeFORM
as input.- Parameters:
- classmethod build_from_first_order(cls, distributions, runmodel_object, seed_x=None, seed_u=None, df_step=0.01, corr_x=None, corr_z=None, n_iterations=100, tolerance_u=None, tolerance_beta=None, tolerance_gradient=None)[source]
- Parameters:
distributions (
Union
[None
,Distribution
,list
[Distribution
]]) – Marginal probability distributions of each random variable. Must be an object of typeDistributionContinuous1D
orJointIndependent
.runmodel_object (
RunModel
) – The computational model. It should be of typeRunModel
.seed_x (
Union
[ndarray
,list
,None
]) – The initial starting point for the Hasofer-Lind algorithm. Either seed_u or seed_x must be provided. If seed_u is provided, it should be a point in the uncorrelated standard normal space of U. If seed_x is provided, it should be a point in the parameter space of X.seed_u (
Union
[ndarray
,list
,None
]) – Either seed_u or seed_x must be provided. If seed_u is provided, it should be a point in the uncorrelated standard normal space of U. If seed_x is provided, it should be a point in the parameter space of X.df_step (
Union
[int
,float
]) – Finite difference step in standard normal space. Default: \(0.01\)corr_x (
Union
[ndarray
,list
,None
]) – Covariance matrix If corr_x is provided, it is the correlation matrix (\(\mathbf{C_X}\)) of the random vector X .corr_z (
Union
[ndarray
,list
,None
]) – Covariance matrix If corr_z is provided, it is the correlation matrix (\(\mathbf{C_Z}\)) of the standard normal random vector Z . Default: corr_z is specified as the identity matrix. Default: corr_z is specified as the identity matrix.n_iterations (
int
) – Maximum number of iterations for the HLRF algorithm. Default: \(100\)tolerance_u (
Union
[float
,int
,None
]) – Convergence threshold for criterion \(||\mathbf{U}^{k} - \mathbf{U}^{k-1}||_2 \leq\)tolerance_u
of the HLRF algorithm. Default: \(1.0e-3\)tolerance_beta (
Union
[float
,int
,None
]) – Convergence threshold for criterion \(||\beta_{HL}^{k}-\beta_{HL}^{k-1}||_2 \leq\)tolerance_beta
of the HLRF algorithm. Default: \(1.0e-3\)tolerance_gradient (
Union
[float
,int
,None
]) – Convergence threshold for criterion \(||\nabla G(\mathbf{U}^{k})- \nabla G(\mathbf{U}^{k-1})||_2 \leq\)tolerance_gradient
of the HLRF algorithm. Default: \(1.0e-3\)
Any number of tolerances can be provided. Only the provided tolerances will be considered for the convergence of the algorithm. In case none of the tolerances are provided then they are considered equal to \(1e-3\) and all are checked for the convergence.