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]
SORMis a child class of theTaylorSeriesclass. Input: TheSORMclass requires an object of typeFORMas 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 typeDistributionContinuous1DorJointIndependent.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_uof 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_betaof 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_gradientof 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.