#include <eim.hpp>
Empirical interpolation of a function to obtain an affine decomposition.
We are given a function
of sufficient regularity.
To begin, we choose
, and define
,
, and
; we assume that
. Then, for
, we set
, where
is a suitably fine parameter sample over
. We then set
,
, and
. Note that, thanks to our truth approximation,
is the solution of a standard linear program.
We suppose that
is chosen such that the dimension of
exceeds
.
We now construct nested sets of interpolation points
,
. We first set
,
,
. Then for
, we solve the linear system
,
, and set
,
,
, and
,
.
Our coefficient function approximation is the interpolant of
over
:
, where
,
. We define
.
Inheritance diagram for Feel::EIM< ModelType >:Public Member Functions | |
Constructors, destructor | |
| EIM () | |
| EIM (po::variables_map const &vm, model_type *model, sampling_ptrtype sampling, double __tol=1e-8) | |
| EIM (EIM const &__bbf) | |
| ~EIM () | |
Accessors | |
| size_type | nDOF () const |
| std::vector< element_type > const & | q () const |
| element_type const & | q (size_type __m) const |
| size_type | mMax () const |
| bool | isOfflineDone () const |
Mutators | |
| void | setTrainSet (sampling_ptrtype pset) |
Public Member Functions inherited from Feel::CRBDB | |
| CRBDB () | |
| default constructor | |
| CRBDB (std::string prefixdir, std::string name, std::string dbprefix, po::variables_map const &vm) | |
| constructor from command line options | |
| CRBDB (CRBDB const &) | |
| copy constructor | |
| virtual | ~CRBDB () |
| destructor | |
| CRBDB & | operator= (CRBDB const &o) |
| copy operator | |
| std::string const & | prefixDirectory () const |
| std::string const & | name () const |
| std::string const & | dbFilename () const |
| fs::path | dbLocalPath () const |
| fs::path | dbSystemPath () const |
| fs::path | lookForDB () const |
| po::variables_map | vm () |
| po::variables_map | vm () const |
| bool | isDBLoaded () const |
| void | setDBFilename (std::string const &filename) |
| set the DB filename | |
Static Public Attributes | |
| static const uint16_type | nDim = ModelType::nDim |
Protected Attributes | |
| matrix_type | M_B |
| std::vector< element_type > | M_g |
| std::vector< size_type > | M_index_max |
| bool | M_is_read |
| bool | M_is_written |
| size_type | M_M |
| model_type * | M_model |
| std::string | M_name |
| bool | M_offline_done |
| std::vector< element_type > | M_q |
| std::vector< node_type > | M_t |
| double | M_tol |
| sampling_ptrtype | M_trainset |
| po::variables_map | M_vm |
| size_type | M_WN |
| size_type | MM_max |
Methods | |
| class | boost::serialization::access |
| void | saveDB () |
| bool | loadDB () |
| vector_type | beta (parameter_type const &mu) const |
| Online stage of the coefficient-function interpolation. More... | |
| vector_type | beta (parameter_type const &mu, solution_type const &T) const |
| vector_type | beta (parameter_type const &mu, size_type M) const |
| vector_type | beta (parameter_type const &mu, solution_type const &T, size_type M) const |
| std::vector< double > | studyConvergence (parameter_type const &mu, solution_type &solution) const |
| void | computationalTimeStatistics (std::string appname) |
| element_type | residual (size_type M) const |
| parameter_residual_type | computeBestFit (sampling_ptrtype trainset, int __M) |
| element_type | operator() (parameter_type const &mu, int N) const |
| element_type | operator() (parameter_type const &mu, solution_type const &T, int N) const |
| void | orthonormalize (std::vector< element_type > &) |
| template<class Archive > | |
| void | serialize (Archive &__ar, const unsigned int __version) |
Additional Inherited Members | |
Protected Member Functions inherited from Feel::CRBDB | |
| template<class Archive > | |
| void | load (Archive &ar, const unsigned int version) |
| template<class Archive > | |
| void | save (Archive &ar, const unsigned int version) const |
| void | setIsLoaded (bool isloaded) |
|
inline |
Online stage of the coefficient-function interpolation.
Our coefficient function approximation is the interpolant of
over
:
, where
,
. We define
.
Note that
is given and $D^$ is handled by the parameterset_type data structure.
References Feel::EIM< ModelType >::beta().
|
inline |
Check whether the offline stage has been executed and the database created.
true if the offline has been executed and the DB saved, false otherwise
|
inlinevirtual |
| void Feel::EIM< ModelType >::orthonormalize | ( | std::vector< element_type > & | __Z | ) |
orthonormalize
References Feel::inner_product().
|
inline |
return the set of reduced basis functions associated with the eim
|
inline |
return the m-th reduced basis function associated with the eim
|
inlinevirtual |
save the CRB database
Reimplemented from Feel::CRBDB.
References Feel::CRBDB::dbFilename(), and Feel::CRBDB::dbLocalPath().
1.8.5