extension class implementing the POD-greedy algorithm extension routines
Public Member Functions | |
POD (SnapshotsGenerator.Trajectories generator, id) | |
constructor for the POD-greedy extension algorithms. More... | |
function
Greedy.DataTree.Detailed.RBLeafNode detailed_data = | init_basis (Greedy.User.IReducedModel rmodel,ModelData model_data, M_train) |
creates an initial detailed data node storing an initial reduced basis More... | |
function | prepare_reduced_data (Greedy.User.IReducedModel rmodel,Greedy.DataTree.DetailedRBLeafNode detailed_data) |
prepares reduced data that is necessary for the execution of other methods if indicated by needs_preparation. More... | |
function
Uapprox = | generate_reduced (Greedy.User.IReducedModel rmodel,Greedy.User.IReducedData reduced_data,Greedy.User.IDetailedData detailed_data, U) |
generates a reduced function \(v_{\text{red}}(\mu)\). More... | |
function [
max_errs , max_err_sequence , max_mu_index ] = | error_estimators (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data, M_train) |
computes a posteriori error estimators for the reduced simulations for every parameter vector from a given parameter set \({\cal M}_{\text{train}}\). More... | |
function [
breakloop , reason ] = | pre_check_for_end (Greedy.User.IReducedModel rmodel,Greedy.DataTree.Detailed.RBLeafNode detailed_data) |
checks whether the basis generation process has come to an end. More... | |
function
ret_detailed_data = | basis_extension (Greedy.User.IReducedModel rmodel,Greedy.DataTree.Detailed.RBLeafNode detailed_data, max_err_seq, mu) |
extends the reduced basis space from a given function \(v_{h}(\mu)\). More... | |
Public Member Functions inherited from Greedy.Plugin.PODCommon | |
PODCommon (SnapshotsGenerator.Trajectories generator) | |
constructor for an PODCommon instance More... | |
function
Greedy.DataTree.Detailed.RBLeafNode detailed_data = | finalize (IReducedModel rmodel,Greedy.DataTree.Detailed.RBLeafNode detailed_data) |
function called after the last extension process More... | |
Public Member Functions inherited from Greedy.Plugin.Default | |
Default (SnapshotsGenerator.Cached generator) | |
constructor for a greedy extension object More... | |
function [
max_errs , max_err_sequence , max_mu_index ] = | error_indicators (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data,ParameterSampling.Interface parameter_set, reuse_reduced_data) |
computes error indicators for the reduced simulations for every parameter vector from a given parameter set \({\cal M}_{\text{train}}\). More... | |
function errs = | compute_error (Greedy.User.IReducedModel rmodel,Greedy.User.ReducedData reduced_data,Greedy.User.IDetailedData detailed_data) |
computes the "true" error between a reduced and a detailed function \(\| v_h(t^k;\mu) - v_{\text{red}}(t^k;\mu) \|\). More... | |
Public Member Functions inherited from Greedy.Plugin.Interface | |
Interface (SnapshotsGenerator.Cached generator) | |
constructor for a greedy extension object More... | |
virtual function
Greedy.DataTree.Detailed.INode detailed_data = | init_basis (Greedy.User.IReducedModel rmodel,ModelData model_data,ParameterSampling.Interface M_train) |
creates an initial detailed data node storing an initial reduced basis More... | |
virtual function | prepare_reduced_data (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data) |
prepares reduced data that is necessary for the execution of other methods if indicated by needs_preparation. More... | |
virtual function [ max_errs , max_err_sequence , max_mu_index ] = | error_indicators (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data, parameter_set, reuse_reduced_data) |
computes error indicators for the reduced simulations for every parameter vector from a given parameter set \({\cal M}_{\text{train}}\). More... | |
virtual function
Uapprox = | generate_reduced (Greedy.User.IReducedModel rmodel,Greedy.User.ReducedData reduced_data,Greedy.User.IDetailedData detailed_data, U) |
generates a reduced function \(v_{\text{red}}(\mu)\). More... | |
virtual function [ breakloop , reason ] = | pre_check_for_end (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data) |
checks whether the basis generation process has come to an end. More... | |
virtual function
Greedy.User.IDetailedData detailed_data = | basis_extension (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data, max_err_seq, mu) |
extends the reduced basis space from a given function \(v_{h}(\mu)\). More... | |
virtual function
Greedy.User.IDetailedData detailed_data = | finalize (Greedy.User.IReducedModel rmodel,Greedy.User.IDetailedData detailed_data) |
function called after the last extension process More... | |
Public Attributes | |
stop_Nmax = inf | |
maximum number of generated reduced basis vectors. More... | |
noof_pca_modes = 1 | |
number of most significant POD modes to be added to the reduced basis in each extension step. More... | |
Public Attributes inherited from Greedy.Plugin.Default | |
Greedy.User.ReducedData | reduced_data = "[]" |
temporary handle to the last object computed by prepare_reduced_data(). More... | |
needs_preparation | |
boolean indicating whether the prepare_reduced_data() method needs to be computed before error_indicators can be computed. More... | |
indicator_mode = "error" | |
string specifying which indicators shall be used by the error_indicators() method. More... | |
use_l2_error = true | |
boolean flag indicating whether the \(L^2(\Omega)\)-norm is used by compute_error(). More... | |
relative_error = false | |
boolean flag specifying whether we want to use the relative error for error_indicators() and compute_error() methods. More... | |
Public Attributes inherited from Greedy.Plugin.Interface | |
id | |
a string identifying the basis extension algorithm, should be unique over all instances of Interface implementations. More... | |
relative_error | |
boolean flag specifying whether we want to use the relative error for error_indicators() and compute_error() methods. More... | |
indicator_mode | |
string specifying which indicators shall be used by the error_indicators() method. More... | |
needs_preparation | |
boolean indicating whether the prepare_reduced_data() method needs to be computed before error_indicators can be computed. More... | |
::SnapshotsGenerator.Cached | generator |
an object generating possible (high dimension) basis functions | |
Static Public Attributes | |
static const | info_fields = {"'stop_Nmax', 'noof_pca_modes'"} |
cell array of field names which shall be copied to the detailed data node structure on creation in init_basis() method. More... | |
static const | generated_basis_type = "rb" |
string specifying the detailed data produced by this basis generation algorithm object. More... | |
Static Public Attributes inherited from Greedy.Plugin.Interface | |
static const | generated_basis_type |
string specifying the detailed data produced by this basis generation algorithm object. More... | |
Greedy.Plugin.POD.POD | ( | SnapshotsGenerator.Trajectories | generator, |
id | |||
) |
function ret_detailed_data = Greedy.Plugin.POD.basis_extension | ( | Greedy.User.IReducedModel | rmodel, |
Greedy.DataTree.Detailed.RBLeafNode | detailed_data, | ||
max_err_seq, | |||
mu | |||
) |
extends the reduced basis space from a given function \(v_{h}(\mu)\).
This generates a new basis function \(\varphi_{n+1} \in {\cal W}_h\) from the sequence of detailed functions \(v_h(t^k,\mu)\) for \(k=0,\ldots,K\) as returned by the SnapshotsGenerator.Cached generator.
rmodel | an object specifying the basis generation process. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
max_err_seq | sequence of error indicators as returned as second return argument of error_indicators() |
mu | paramter vector \(\mu\). |
detailed_data | updated data tree node . |
|
virtual |
computes a posteriori error estimators for the reduced simulations for every parameter vector from a given parameter set \({\cal M}_{\text{train}}\).
An a posteriori error estimator estimates an error
\[\eta^k(\mu) \geq \| v_h(t^k;\mu) - v_{\text{red}}(t^k;\mu) \|\]
for every time step \(0\leq t^0, \ldots, t^K = T\) and every parameter \(\mu \in {\cal M}\). The norm is a problem specific norm determined by the options in rmodel
.
This function's main use is to find a parameter vector
\[\mu_{\max} = \arg \sup_{\mu \in {\cal M}_{\text{train}} } \max_{k=0,\ldots,K} \eta^k(\mu).\]
rmodel | an object specifying the basis generation process. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
M_train | a set of parameter vectors \({\cal M}_{\text{train}}\) as returned by ParameterSampling.Interface.space . |
max_errs | a matrix of size n_parameters x model.nt+1 storing the error indicator \(\eta^k(\mu)\) for every \(k=0,\ldots,K\) and \(\mu \in {\cal M}_{\text{train}}\). |
max_err_sequence | a sequence of error indicators \(\eta^k(\mu_{\max})\) for every \(k=0,\ldots,K\). |
max_mu_index | the index of the parameter vector \(\mu_{\max}\) in the parameter_set.set matrix. |
The estimator \(\eta_{N,M,M'}\) used here is described in [DHO11], Chapter 5.
Implements Greedy.Plugin.Default.
function Uapprox = Greedy.Plugin.POD.generate_reduced | ( | Greedy.User.IReducedModel | rmodel, |
Greedy.User.IReducedData | reduced_data, | ||
Greedy.User.IDetailedData | detailed_data, | ||
U | |||
) |
generates a reduced function \(v_{\text{red}}(\mu)\).
rmodel | an object specifying the basis generation process. The parameter \(\mu\) for which the error shall be computed must be set by set_mu(rmodel, mu) before. |
reduced_data | an object storing all (low-dimensional) reduced matrices and vectors needed for reduced simulations. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
U | optional DOF vector, for example operator evaluations. |
Uapprox | A sequence of Dof vectors of the functions \(v_{\text{red}}(\cdot;t^k,\mu)\). |
Definition at line 156 of file POD.m.
function Greedy.DataTree.Detailed.RBLeafNode detailed_data = Greedy.Plugin.POD.init_basis | ( | Greedy.User.IReducedModel | rmodel, |
ModelData | model_data, | ||
M_train | |||
) |
creates an initial detailed data node storing an initial reduced basis
rmodel | an object specifying the basis generation process. |
M_train | an object specifying the parameter vector set \({\cal M}_{\text{train}}\) from which the basis functions are obtained. |
model_data | Matlab structure storing (possibly) high dimensional data needed by IDetailedModel.detailed_simulation(). |
detailed_data | an object storing the initial reduced basis vectors. |
Computes the initial data functions for all parameters from the training set M_train
and initializes the reduced basis with an orthonormalization of these DOF vectors. The result is stored in a detailed data tree leaf node object.
function [ breakloop , reason ] = Greedy.Plugin.POD.pre_check_for_end | ( | Greedy.User.IReducedModel | rmodel, |
Greedy.DataTree.Detailed.RBLeafNode | detailed_data | ||
) |
checks whether the basis generation process has come to an end.
Global break conditions (error_tolerance, timeout and validation ratio) are handled by Greedy.Algorithm .
rmodel | object specifying how the reduced simulations can be computed. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
breakloop | boolean flag indicating whether the basis generation process is finished for this reduced basis space. |
reason | descriptive text telling about the reasons why, the extension process needs to break. |
function Greedy.Plugin.POD.prepare_reduced_data | ( | Greedy.User.IReducedModel | rmodel, |
Greedy.DataTree.DetailedRBLeafNode | detailed_data | ||
) |
prepares reduced data that is necessary for the execution of other methods if indicated by needs_preparation.
rmodel | an object specifying the basis generation process. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
|
static |
string specifying the detailed data produced by this basis generation algorithm object.
This should be one of
ei
: for empirical interpolation basisrb
: for reduced basiseirb
: for combination fo empirical interpolation and reduced basisDependent
set to true. SetAccess = Private, GetAccess = Public
Default: "rb"
|
static |
cell array of field names which shall be copied to the detailed data node structure on creation in init_basis() method.
Default: {"'stop_Nmax', 'noof_pca_modes'"}
Greedy.Plugin.POD.noof_pca_modes = 1 |
number of most significant POD modes to be added to the reduced basis in each extension step.
Default: 1
Greedy.Plugin.POD.stop_Nmax = inf |