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.

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.

hasName()

Test if the object is named.

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.

__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.

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.

hasName()

Test if the object is named.

Returns:
hasNamebool

True if the name is not empty.

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.

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