diff --git a/docs/code/reliability/form/plot_FORM_structural_reliability.py b/docs/code/reliability/form/plot_FORM_structural_reliability.py index 29ff7238..b52fb3da 100644 --- a/docs/code/reliability/form/plot_FORM_structural_reliability.py +++ b/docs/code/reliability/form/plot_FORM_structural_reliability.py @@ -3,7 +3,7 @@ 3. FORM - Structural Reliability ============================================== -The benchmark problem is a simple structural reliability problem +The benchmark problem is a simple structural reliability problem (example 7.1 in :cite:`FORM_XDu`) defined in a two-dimensional parameter space consisting of a resistance :math:`R` and a stress :math:`S`. The failure happens when the stress is higher than the resistance, leading to the following limit-state function: @@ -61,7 +61,7 @@ # %% md # # With everything defined we are ready to run the first-order reliability method and print the results. -# The analytic solution to this problem is :math:`\bm{u}^*=(-2, 1)` with a reliability index of +# The analytic solution to this problem is :math:`\textbf{u}^*=(-2, 1)` with a reliability index of # :math:`\beta_{HL}=2.2361` and a probability of failure :math:`P_{f, \text{form}} = \Phi(-\beta_{HL}) = 0.0127` # %% @@ -75,8 +75,8 @@ # %% md # -# This problem can be visualized in the following plots that show the FORM results in both :math:`\bm{X}` and -# :math:`\bm{U}` space. +# This problem can be visualized in the following plots that show the FORM results in both :math:`\textbf{X}` and +# :math:`\textbf{U}` space. # %% diff --git a/docs/source/bibliography.bib b/docs/source/bibliography.bib index 39d445a8..92af2063 100644 --- a/docs/source/bibliography.bib +++ b/docs/source/bibliography.bib @@ -879,3 +879,11 @@ @article{Kle2D author = {Zhibao Zheng and Hongzhe Dai}, keywords = {Multi-dimensional random field, Karhunen–Loève expansion, Random field simulation, Fredholm integral equation}, } + +@misc{FORM_XDu, + title = "Probabilistic Engineering Design, Chapter 7, First Order and Second Reliability Methods", + author = "Xiaoping Du", + year = 2005, + publisher = "University of Missouri – Rolla", + howpublished = "\url{https://pdesign.sitehost.iu.edu/me360/ch7.pdf}" +} diff --git a/docs/source/reliability/form.rst b/docs/source/reliability/form.rst index 99b3afab..23bcb7c2 100644 --- a/docs/source/reliability/form.rst +++ b/docs/source/reliability/form.rst @@ -2,7 +2,7 @@ FORM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In FORM, the performance function is linearized according to +In FORM :cite:`FORM_XDu`, the performance function is linearized according to .. math:: G(\textbf{U}) \approx G(\textbf{U}^\star) + \nabla G(\textbf{U}^\star)(\textbf{U}-\textbf{U}^\star)^\intercal @@ -17,9 +17,9 @@ is the norm of the design point known as the Hasofer-Lind reliability index calc Hasofer-Lind-Rackwitz-Fiessler (HLRF) algorithm. The convergence criteria used for HLRF algorithm are: -.. math:: \text{tolerance}_U:\ ||\textbf{U}^{k} - \textbf{U}^{k-1}||_2 \leq 10^{-3} +.. math:: \text{tolerance}_{\textbf{U}}:\ ||\textbf{U}^{k} - \textbf{U}^{k-1}||_2 \leq 10^{-3} .. math:: \text{tolerance}_\beta:\ ||\beta_{HL}^{k} - \beta_{HL}^{k-1}||_2 \leq 10^{-3} -.. math:: \text{tolerance}_{\nabla G(U)}:\ ||\nabla G(\textbf{U}^{k})- \nabla G(\textbf{U}^{k-1})||_2 \leq 10^{-3} +.. math:: \text{tolerance}_{\nabla G(\textbf{U})}:\ ||\nabla G(\textbf{U}^{k})- \nabla G(\textbf{U}^{k-1})||_2 \leq 10^{-3} diff --git a/docs/source/reliability/sorm.rst b/docs/source/reliability/sorm.rst index 80f51b13..75664e70 100644 --- a/docs/source/reliability/sorm.rst +++ b/docs/source/reliability/sorm.rst @@ -1,10 +1,10 @@ SORM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In SORM the performance function is approximated by a second-order Taylor series around the design point according to +In SORM :cite:`FORM_XDu` the performance function is approximated by a second-order Taylor series around the design point according to -.. math:: G(\textbf{U}) = G(\textbf{U}^\star) + \nabla G(\textbf{U}^\star)(\textbf{U}-\textbf{U}^\star)^\intercal + \frac{1}{2}(\textbf{U}-\textbf{U}^\star)\textbf{H}(\textbf{U}-\textbf{U}^\star) +.. math:: G(\textbf{U}) = G(\textbf{U}^\star) + \nabla G(\textbf{U}^\star)(\textbf{U}-\textbf{U}^\star)^\intercal + \frac{1}{2}(\textbf{U}-\textbf{U}^\star)\textbf{H}(\textbf{U}-\textbf{U}^\star)(\textbf{U}-\textbf{U}^\star)^T where :math:`\textbf{H}` is the Hessian matrix of the second derivatives of :math:`G(\textbf{U})` evaluated at :math:`\textbf{U}^*`. After the design point :math:`\textbf{U}^*` is identified and the probability of failure diff --git a/src/UQpy/reliability/taylor_series/FORM.py b/src/UQpy/reliability/taylor_series/FORM.py index a453568d..c10c895c 100644 --- a/src/UQpy/reliability/taylor_series/FORM.py +++ b/src/UQpy/reliability/taylor_series/FORM.py @@ -115,7 +115,7 @@ def __init__( """Design point in the parameter space X.""" self.error_record: list = [] """Record of the error defined by - criteria :math:`\\text{tolerance}_U, \\text{tolerance}_\\beta, \\text{tolerance}_{\\nabla G(U)}`.""" + criteria :math:`\\text{tolerance}_\\textbf{U}, \\text{tolerance}_\\beta, \\text{tolerance}_{\\nabla G(\\textbf{U})}`.""" self.failure_probability: list = [] """FORM probability of failure :math:`\\Phi(-\\beta)`.""" self.g0 = None