1%feature("docstring") OT::MultiFORM
2"FORM approximation with multiple design points.
3
4This algorithm searches for several design points by restarting the nearest-point search.
5For each design point we add a `bulge` function that penalizes the limit-state G around it:
6
7.. math::
8
9    G_m(u) = G(u) + \sum_{i=1}^m B_i(u)
10
11The bulge function can be chosed as:
12
13.. math::
14
15    B_i(u) = s_i (r_i^2 - \|u - u_i^{\ast}\|^2)^2
16
17Once these points are found a :ref:`form_approximation` is computed with each
18point and the probability of interest is computed as a series system
19probability: the union of the approximated events:
20
21.. math::
22
23    P(E_{sys}) = P(\bigcup_{i=1}^N E_i) = 1 - \Phi_k (\vect{\beta}; \vect{\vect{\rho}})
24
25Beware, as with the regular FORM method the search can fail,
26or the enumeration of design can be not incomplete.
27
28More details can be found in [kiureghian1998]_.
29
30Parameters
31----------
32solver : :class:`~openturns.OptimizationAlgorithm`
33    Optimization algorithm used to research the design point.
34event : :class:`~openturns.RandomVector`
35    Failure event
36physicalStartingPoint : sequence of float
37    Starting point of the optimization algorithm, declared in the physical
38    space.
39
40See also
41--------
42FORM, MultiFORMResult
43
44Examples
45--------
46>>> import openturns as ot
47>>> dim = 2
48>>> f = ot.SymbolicFunction(['x0', 'x1'], ['5.0-x1-0.5*(x0-0.1)^2'])
49>>> dist = ot.Normal(dim)
50>>> X = ot.RandomVector(dist)
51>>> Y = ot.CompositeRandomVector(f, X)
52>>> event = ot.ThresholdEvent(Y, ot.Less(), 0.0)
53>>> solver = ot.Cobyla()
54>>> starting_pt = dist.getMean()
55>>> algo = ot.MultiFORM(solver, event, starting_pt)
56>>> algo.run()
57>>> result = algo.getResult()
58>>> n_design_pts = len(result.getFORMResultCollection())
59>>> pf = result.getEventProbability()"
60
61// ---------------------------------------------------------------------
62
63%feature("docstring") OT::MultiFORM::getResult
64"Accessor to the result.
65
66Returns
67-------
68result : :class:`~openturns.MultiFORMResult`
69    Contains the global result as well as the sub FORM results."
70
71// ---------------------------------------------------------------------
72
73%feature("docstring") OT::MultiFORM::setMaximumDesignPointsNumber
74"Accessor to the maximum number of design points.
75
76Parameters
77----------
78max_dp : int
79    Maximum number of design points"
80
81// ---------------------------------------------------------------------
82
83%feature("docstring") OT::MultiFORM::getMaximumDesignPointsNumber
84"Accessor to the maximum number of design points.
85
86Returns
87-------
88max_dp : int
89    Maximum number of design points"
90
91