SystemFORM

class SystemFORM(*args)

Approximation algorithm for system events based on FORM.

Each event E_i is represented by its reliability index \beta_i and the hyperplane defined by the \vect{\alpha_i} normal coefficients obtained via a preliminary FORM approximation.

For an union (series systems) the probability writes:

P(E_{sys}) = P(\bigcup_{i=1}^N E_i) = 1 - \Phi_k (\vect{\beta}; \vect{\vect{\rho}})

where \vect{\vect{\rho}}_{i,j} = \vect{\alpha_i}^T\vect{\alpha_j}

For an intersection (parallel system) the probability writes:

P(\bigcap_{i=1}^N E_i) = \Phi_k (-\vect{\beta}; \vect{\vect{\rho}})

In practice the event has to be defined under its disjonctive normal form (union of intersections). Each probability of intersection region is computed using the previous formula, then the Poincare formula is used to combine each union:

P(E_{sys}) = P(\bigcup_{i=1}^N E_i) = \sum_{i=1}^N P(E_i) - \sum_{i < j} P(E_i \cap E_j) + \dots + (-1)^N P(E_1 \cap E_2 \cap \dots \cap E_N)

More details can be found in [lemaire2009], at the chapter Reliability of systems.

Parameters
solverOptimizationAlgorithm

Optimization algorithm used to research the design point.

eventRandomVector

Failure system event, in disjunctive normal form (either a union of intersections, or a single intersection)

physicalStartingPointsequence of float

Starting point of the optimization algorithm, declared in the physical space.

See also

FORM, MultiFORMResult

Notes

As a leaf event may appear several times in the system event tree, and as a FORM calculus is run for each unique leaf event, there may be less items in the FORM results collection (returned by getFORMResultCollection()) than leaf events.

Examples

>>> import openturns as ot
>>> dim = 2
>>> X = ot.RandomVector(ot.Normal(dim))
>>> e1 = ot.ThresholdEvent(ot.CompositeRandomVector(ot.SymbolicFunction(['x1', 'x2'], ['(x1+2*x2)^2']), X), ot.Greater(), 5.0)
>>> e2 = ot.ThresholdEvent(ot.CompositeRandomVector(ot.SymbolicFunction(['x1', 'x2'], ['(x2+3*x1)^2']), X), ot.Greater(), 5.0)
>>> event = ot.IntersectionEvent([e1, e2])
>>> solver = ot.AbdoRackwitz()
>>> starting_pt = [0.1] * dim
>>> algo = ot.SystemFORM(solver, event, starting_pt)
>>> algo.run()
>>> result = algo.getResult()
>>> form_results = result.getFORMResultCollection()
>>> pf = result.getEventProbability()

Methods

getAnalyticalResult(self)

Accessor to the result.

getClassName(self)

Accessor to the object’s name.

getEvent(self)

Accessor to the event of which the probability is calculated.

getId(self)

Accessor to the object’s id.

getName(self)

Accessor to the object’s name.

getNearestPointAlgorithm(self)

Accessor to the optimization algorithm used to find the design point.

getPhysicalStartingPoint(self)

Accessor to the starting point of the optimization algorithm.

getResult(self)

Accessor to the result.

getShadowedId(self)

Accessor to the object’s shadowed id.

getVisibility(self)

Accessor to the object’s visibility state.

hasName(self)

Test if the object is named.

hasVisibleName(self)

Test if the object has a distinguishable name.

run(self)

Perform the research of the design point.

setEvent(self, systemEvent)

Accessor to the event of which the probability is calculated.

setName(self, name)

Accessor to the object’s name.

setNearestPointAlgorithm(self, solver)

Accessor to the optimization algorithm used to find the design point.

setPhysicalStartingPoint(self, …)

Accessor to the starting point of the optimization algorithm.

setShadowedId(self, id)

Accessor to the object’s shadowed id.

setVisibility(self, visible)

Accessor to the object’s visibility state.

__init__(self, \*args)

Initialize self. See help(type(self)) for accurate signature.

getAnalyticalResult(self)

Accessor to the result.

Returns
resultAnalyticalResult

Result structure which contains the results of the optimisation problem.

getClassName(self)

Accessor to the object’s name.

Returns
class_namestr

The object class name (object.__class__.__name__).

getEvent(self)

Accessor to the event of which the probability is calculated.

Returns
eventRandomVector

Event of which the probability is calculated.

getId(self)

Accessor to the object’s id.

Returns
idint

Internal unique identifier.

getName(self)

Accessor to the object’s name.

Returns
namestr

The name of the object.

getNearestPointAlgorithm(self)

Accessor to the optimization algorithm used to find the design point.

Returns
algorithmOptimizationAlgorithm

Optimization algorithm used to research the design point.

getPhysicalStartingPoint(self)

Accessor to the starting point of the optimization algorithm.

Returns
pointPoint

Starting point of the optimization algorithm, declared in the physical space.

getResult(self)

Accessor to the result.

Returns
resultMultiFORMResult

Contains the global result as well as the sub FORM results.

getShadowedId(self)

Accessor to the object’s shadowed id.

Returns
idint

Internal unique identifier.

getVisibility(self)

Accessor to the object’s visibility state.

Returns
visiblebool

Visibility flag.

hasName(self)

Test if the object is named.

Returns
hasNamebool

True if the name is not empty.

hasVisibleName(self)

Test if the object has a distinguishable name.

Returns
hasVisibleNamebool

True if the name is not empty and not the default one.

run(self)

Perform the research of the design point.

Notes

Performs the research of the design point and creates a AnalyticalResult, the structure result which is accessible with the method getAnalyticalResult().

setEvent(self, systemEvent)

Accessor to the event of which the probability is calculated.

Parameters
eventRandomVector

Event of which the probability is calculated.

setName(self, name)

Accessor to the object’s name.

Parameters
namestr

The name of the object.

setNearestPointAlgorithm(self, solver)

Accessor to the optimization algorithm used to find the design point.

Parameters
algorithmOptimizationAlgorithm

Optimization algorithm used to research the design point.

setPhysicalStartingPoint(self, physicalStartingPoint)

Accessor to the starting point of the optimization algorithm.

Parameters
pointsequence of float

Starting point of the optimization algorithm, declared in the physical space.

setShadowedId(self, id)

Accessor to the object’s shadowed id.

Parameters
idint

Internal unique identifier.

setVisibility(self, visible)

Accessor to the object’s visibility state.

Parameters
visiblebool

Visibility flag.