# KarhunenLoeveP1Algorithm¶

class KarhunenLoeveP1Algorithm(*args)

Computation of Karhunen-Loeve decomposition using P1 approximation.

Parameters
meshMesh

The mesh that discretizes the domain .

covarianceCovarianceModel

The covariance function to decompose.

sfloat,

The threshold used to select the most significant eigenmodes, defined in KarhunenLoeveAlgorithm.

Notes

The Karhunen-Loeve algorithm solves the Fredholm problem associated to the covariance function : see KarhunenLoeveAlgorithm to get the notations.

The Karhunen-Loeve approximation uses the functional basis where are the basis functions of the finite element space associated to , which vertices are .

The covariance function is approximated by its approximation on :

The Galerkin approach and the collocation one are equivalent in the approach and both lead to the following formulation:

where with , .

Though the eigenvalues computation is performed by LAPACK by default, several other solvers can be used. The solver to use must be specified by setting KarhunenLoeveP1Algorithm-EigenvaluesSolver key in ResourceMap. Some solvers set limits to the number of eigenvalues they can compute with regards to the size of the problem. The following table summarizes the supported solvers and their maximum number of eigenvalues for a problem of size :

Solver

ResourceMap key

Maximum EV number

Lapack

LAPACK

Spectra

SPECTRA

For large dimension problems, it can be useful to generate the covariance matrix of the problem as a HMatrix instead of a standard dense matrix. In this case, one can set KarhunenLoeveP1Algorithm-CovarianceMatrixStorage key in ResourceMap to HMAT (instead of DENSE).

Examples

Create a Karhunen-Loeve P1 algorithm:

>>> import openturns as ot
>>> mesh = ot.IntervalMesher([10]*2).build(ot.Interval([-1.0]*2, [1.0]*2))
>>> s = 0.01
>>> model = ot.AbsoluteExponential([1.0]*2)
>>> algorithm = ot.KarhunenLoeveP1Algorithm(mesh, model, s)


Run it!

>>> algorithm.run()
>>> result = algorithm.getResult()


Methods

 getClassName(self) Accessor to the object’s name. Accessor to the covariance model. getId(self) Accessor to the object’s id. getMesh(self) Accessor to the mesh. getName(self) Accessor to the object’s name. getNbModes(self) Accessor to number of modes to compute. getResult(self) Get the result structure. getShadowedId(self) Accessor to the object’s shadowed id. getThreshold(self) Accessor to the threshold used to select the most significant eigenmodes. 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) Computation of the eigenvalues and eigenfunctions values at nodes. setCovarianceModel(self, covariance) Accessor to the covariance model. setName(self, name) Accessor to the object’s name. setNbModes(self, nbModes) Accessor to number of modes to compute. setShadowedId(self, id) Accessor to the object’s shadowed id. setThreshold(self, threshold) Accessor to the limit ratio on eigenvalues. setVisibility(self, visible) Accessor to the object’s visibility state.
__init__(self, \*args)

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

getClassName(self)

Accessor to the object’s name.

Returns
class_namestr

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

getCovarianceModel(self)

Accessor to the covariance model.

Returns
covModelCovarianceModel

The covariance model.

getId(self)

Accessor to the object’s id.

Returns
idint

Internal unique identifier.

getMesh(self)

Accessor to the mesh.

Returns
meshMesh

The mesh that discretizes the domain .

getName(self)

Accessor to the object’s name.

Returns
namestr

The name of the object.

getNbModes(self)

Accessor to number of modes to compute.

Returns
nint

The number of modes to compute.

getResult(self)

Get the result structure.

Returns
resKLKarhunenLoeveResult

The structure containing all the results of the Fredholm problem.

Notes

The structure contains all the results of the Fredholm problem.

getShadowedId(self)

Accessor to the object’s shadowed id.

Returns
idint

Internal unique identifier.

getThreshold(self)

Accessor to the threshold used to select the most significant eigenmodes.

Returns
sfloat, positive

The threshold .

Notes

OpenTURNS truncates the sequence at the index defined in (3).

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)

Computation of the eigenvalues and eigenfunctions values at nodes.

Notes

Runs the algorithm and creates the result structure KarhunenLoeveResult.

setCovarianceModel(self, covariance)

Accessor to the covariance model.

Parameters
covModelCovarianceModel

The covariance model.

setName(self, name)

Accessor to the object’s name.

Parameters
namestr

The name of the object.

setNbModes(self, nbModes)

Accessor to number of modes to compute.

Parameters
nint

The number of modes to compute.

setShadowedId(self, id)

Accessor to the object’s shadowed id.

Parameters
idint

Internal unique identifier.

setThreshold(self, threshold)

Accessor to the limit ratio on eigenvalues.

Parameters
sfloat,

The threshold defined in (3).

setVisibility(self, visible)

Accessor to the object’s visibility state.

Parameters
visiblebool

Visibility flag.