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()

Accessor to the result.

getClassName()

Accessor to the object's name.

getEvent()

Accessor to the event of which the probability is calculated.

getId()

Accessor to the object's id.

getName()

Accessor to the object's name.

getNearestPointAlgorithm()

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

getPhysicalStartingPoint()

Accessor to the starting point of the optimization algorithm.

getResult()

Accessor to the result.

getShadowedId()

Accessor to the object's shadowed id.

getVisibility()

Accessor to the object's visibility state.

hasName()

Test if the object is named.

hasVisibleName()

Test if the object has a distinguishable name.

run()

Perform the research of the design point.

setEvent(systemEvent)

Accessor to the event of which the probability is calculated.

setName(name)

Accessor to the object's name.

setNearestPointAlgorithm(solver)

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

setPhysicalStartingPoint(physicalStartingPoint)

Accessor to the starting point of the optimization algorithm.

setShadowedId(id)

Accessor to the object's shadowed id.

setVisibility(visible)

Accessor to the object's visibility state.

__init__(*args)
getAnalyticalResult()

Accessor to the result.

Returns:
resultAnalyticalResult

Result structure which contains the results of the optimisation problem.

getClassName()

Accessor to the object’s name.

Returns:
class_namestr

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

getEvent()

Accessor to the event of which the probability is calculated.

Returns:
eventRandomVector

Event of which the probability is calculated.

getId()

Accessor to the object’s id.

Returns:
idint

Internal unique identifier.

getName()

Accessor to the object’s name.

Returns:
namestr

The name of the object.

getNearestPointAlgorithm()

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

Returns:
algorithmOptimizationAlgorithm

Optimization algorithm used to research the design point.

getPhysicalStartingPoint()

Accessor to the starting point of the optimization algorithm.

Returns:
pointPoint

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

getResult()

Accessor to the result.

Returns:
resultMultiFORMResult

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

getShadowedId()

Accessor to the object’s shadowed id.

Returns:
idint

Internal unique identifier.

getVisibility()

Accessor to the object’s visibility state.

Returns:
visiblebool

Visibility flag.

hasName()

Test if the object is named.

Returns:
hasNamebool

True if the name is not empty.

hasVisibleName()

Test if the object has a distinguishable name.

Returns:
hasVisibleNamebool

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

run()

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(systemEvent)

Accessor to the event of which the probability is calculated.

Parameters:
eventRandomVector

Event of which the probability is calculated.

setName(name)

Accessor to the object’s name.

Parameters:
namestr

The name of the object.

setNearestPointAlgorithm(solver)

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

Parameters:
algorithmOptimizationAlgorithm

Optimization algorithm used to research the design point.

setPhysicalStartingPoint(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(id)

Accessor to the object’s shadowed id.

Parameters:
idint

Internal unique identifier.

setVisibility(visible)

Accessor to the object’s visibility state.

Parameters:
visiblebool

Visibility flag.

Examples using the class

Time variant system reliability problem

Time variant system reliability problem

Create unions or intersections of events

Create unions or intersections of events