.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_reliability_sensitivity/reliability/plot_stiffened_panel.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_reliability_sensitivity_reliability_plot_stiffened_panel.py: Estimate a buckling probability =============================== .. GENERATED FROM PYTHON SOURCE LINES 6-11 In this example, we estimate the probability that the output of a function exceeds a given threshold with the FORM method, the SORM method and an advanced sampling method. We consider the :ref:`stiffened panel model `. .. GENERATED FROM PYTHON SOURCE LINES 14-16 Define the model ---------------- .. GENERATED FROM PYTHON SOURCE LINES 18-24 .. code-block:: Python from openturns.usecases import stiffened_panel import openturns as ot import openturns.viewer as viewer ot.Log.Show(ot.Log.NONE) .. GENERATED FROM PYTHON SOURCE LINES 25-26 We load the stiffened panel model from the usecases module : .. GENERATED FROM PYTHON SOURCE LINES 26-30 .. code-block:: Python panel = stiffened_panel.StiffenedPanel() distribution = panel.distribution model = panel.model .. GENERATED FROM PYTHON SOURCE LINES 31-32 See the input distribution .. GENERATED FROM PYTHON SOURCE LINES 32-34 .. code-block:: Python distribution .. raw:: html
JointDistribution
  • name=JointDistribution
  • dimension: 10
  • description=[E (Pa),nu (-),h_c (m),ell (m),f_1 (m),f_2 (m),t (m),a (m),b_0 (m),p (m)]#10
  • copula: IndependentCopula(dimension = 10)
Index Variable Distribution
0 E (Pa) TruncatedNormal(mu = 1.1e+11, sigma = 5.5e+10, a = 9.9e+10, b = 1.21e+11)
1 nu (-) Uniform(a = 0.3675, b = 0.3825)
2 h_c (m) Uniform(a = 0.0285, b = 0.0315)
3 ell (m) Uniform(a = 0.04655, b = 0.05145)
4 f_1 (m) Uniform(a = 0.0266, b = 0.0294)
5 f_2 (m) Uniform(a = 0.00627, b = 0.00693)
6 t (m) Uniform(a = 8.02e-05, b = 8.181e-05)
7 a (m) Uniform(a = 0.6039, b = 0.6161)
8 b_0 (m) Uniform(a = 0.04455, b = 0.04545)
9 p (m) Uniform(a = 0.03762, b = 0.03838)


.. GENERATED FROM PYTHON SOURCE LINES 35-36 See the model .. GENERATED FROM PYTHON SOURCE LINES 36-38 .. code-block:: Python model.getOutputDescription() .. raw:: html
[(N_{xy})_{cr}]


.. GENERATED FROM PYTHON SOURCE LINES 39-40 Draw the distribution of a sample of the output. .. GENERATED FROM PYTHON SOURCE LINES 40-46 .. code-block:: Python sampleSize = 1000 inputSample = distribution.getSample(sampleSize) outputSample = model(inputSample) graph = ot.HistogramFactory().build(outputSample).drawPDF() _ = viewer.View(graph) .. image-sg:: /auto_reliability_sensitivity/reliability/images/sphx_glr_plot_stiffened_panel_001.png :alt: (N_{xy})_{cr} PDF :srcset: /auto_reliability_sensitivity/reliability/images/sphx_glr_plot_stiffened_panel_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 47-49 Define the event ---------------- .. GENERATED FROM PYTHON SOURCE LINES 51-52 Then we create the event whose probability we want to estimate. .. GENERATED FROM PYTHON SOURCE LINES 54-60 .. code-block:: Python vect = ot.RandomVector(distribution) criticalLoad = ot.CompositeRandomVector(model, vect) minimumCriticalLoad = 165.0 event = ot.ThresholdEvent(criticalLoad, ot.Less(), minimumCriticalLoad) event.setName("buckling") .. GENERATED FROM PYTHON SOURCE LINES 61-63 Estimate the probability with FORM ---------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 65-66 Define a solver. .. GENERATED FROM PYTHON SOURCE LINES 68-75 .. code-block:: Python optimAlgo = ot.Cobyla() optimAlgo.setMaximumCallsNumber(1000) optimAlgo.setMaximumAbsoluteError(1.0e-10) optimAlgo.setMaximumRelativeError(1.0e-10) optimAlgo.setMaximumResidualError(1.0e-10) optimAlgo.setMaximumConstraintError(1.0e-10) .. GENERATED FROM PYTHON SOURCE LINES 76-77 Run FORM. .. GENERATED FROM PYTHON SOURCE LINES 79-87 .. code-block:: Python startingPoint = distribution.getMean() algo = ot.FORM(optimAlgo, event, startingPoint) n0 = model.getCallsNumber() algo.run() n1 = model.getCallsNumber() result = algo.getResult() standardSpaceDesignPoint = result.getStandardSpaceDesignPoint() .. GENERATED FROM PYTHON SOURCE LINES 88-89 Retrieve results. .. GENERATED FROM PYTHON SOURCE LINES 91-95 .. code-block:: Python result = algo.getResult() probability = result.getEventProbability() print("Pf (FORM)=%.3e" % probability, "nb evals=", n1 - n0) .. rst-class:: sphx-glr-script-out .. code-block:: none Pf (FORM)=7.620e-04 nb evals= 1 .. GENERATED FROM PYTHON SOURCE LINES 96-97 Importance factors. .. GENERATED FROM PYTHON SOURCE LINES 99-102 .. code-block:: Python graph = result.drawImportanceFactors() view = viewer.View(graph) .. image-sg:: /auto_reliability_sensitivity/reliability/images/sphx_glr_plot_stiffened_panel_002.png :alt: Importance Factors from Design Point - buckling :srcset: /auto_reliability_sensitivity/reliability/images/sphx_glr_plot_stiffened_panel_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 103-105 Estimate the probability with SORM ---------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 107-108 Run SORM. .. GENERATED FROM PYTHON SOURCE LINES 110-115 .. code-block:: Python algo = ot.SORM(optimAlgo, event, startingPoint) n0 = model.getCallsNumber() algo.run() n1 = model.getCallsNumber() .. GENERATED FROM PYTHON SOURCE LINES 116-117 Retrieve results. .. GENERATED FROM PYTHON SOURCE LINES 119-123 .. code-block:: Python result = algo.getResult() probability = result.getEventProbabilityBreitung() print("Pf (SORM)=%.3e" % probability, "nb evals=", n1 - n0) .. rst-class:: sphx-glr-script-out .. code-block:: none Pf (SORM)=7.027e-05 nb evals= 1 .. GENERATED FROM PYTHON SOURCE LINES 124-126 We see that the FORM and SORM approximations give significantly different results. Use a simulation algorithm to get a confidence interval. .. GENERATED FROM PYTHON SOURCE LINES 128-130 Estimate the probability with PostAnalyticalControlledImportanceSampling ------------------------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 132-144 .. code-block:: Python algo = ot.PostAnalyticalControlledImportanceSampling(result) algo.setBlockSize(100) algo.setMaximumOuterSampling(100) algo.setMaximumCoefficientOfVariation(0.1) n0 = model.getCallsNumber() algo.run() n1 = model.getCallsNumber() result = algo.getResult() Pf = result.getProbabilityEstimate() print("Pf (sim) = %.3e" % Pf, "nb evals=", n1 - n0) width = result.getConfidenceLength(0.95) print("C.I (95%)=[" + "%.3e" % (Pf - 0.5 * width), ",%.3e" % (Pf + 0.5 * width), "]") .. rst-class:: sphx-glr-script-out .. code-block:: none Pf (sim) = 5.914e-05 nb evals= 0 C.I (95%)=[3.060e-05 ,8.769e-05 ] .. _sphx_glr_download_auto_reliability_sensitivity_reliability_plot_stiffened_panel.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_stiffened_panel.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_stiffened_panel.py `