#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
.
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) |
![]() | |
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 | |
![]() | |
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().