KerMor
0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
|
DEIM: Implements the DEIM-Algorithm from [2]. More...
DEIM: Implements the DEIM-Algorithm from [2].
Additionally allows to estimate the DEIM error a-posteriori by using the next \(M'\) orders of the current DEIM approximation.
This class is part of the framework
Homepage
http://www.morepas.org/software/index.htmlDocumentation
http://www.morepas.org/software/kermor/index.htmlLicense
KerMor license conditions Public Member Functions | |
function | computeDEIM (dscomponents.ACompEvalCoreFun f,matrix< double > fxi) |
Implementation of the DEIM algorithm. More... | |
function fx = | evaluate (colvec< double > x,double t) |
function fx = | evaluateMulti (colvec< double > x,double t,colvec< double > mu) |
function J = | getStateJacobian (colvec< double > x,double t) |
function pts = | getInterpolationPoints (matrix< double > u) |
Computes the interpolation indices according to the DEIM algorithm. More... | |
function err = | getEstimatedError (colvec< double > x,double t,colvec< double > mu) |
function DEIM target = | project (matrix< double > V,matrix< double > W,DEIM target) |
Pojects instance according to the projection biorthogonal matrices \(V,W\). More... | |
function copy = | clone (copy) |
The interface method with returns a copy of the current class instance. More... | |
function | plotSummary (pm, context) |
Public Member Functions inherited from KerMorObject | |
KerMorObject () | |
Constructs a new KerMor object. More... | |
function | display () |
disp(object2str(this)); More... | |
function bool = | eq (B) |
Checks equality of two KerMor objects. More... | |
function bool = | ne (B) |
Checks if two KerMorObjects are different. More... | |
function cn = | getClassName () |
Returns the simple class name of this object without packages. More... | |
Public Member Functions inherited from DPCMObject | |
DPCMObject () | |
Creates a new DPCM object. More... | |
DPCMObject () | |
Public Member Functions inherited from general.AProjectable | |
function handle target = | project (matrix< double > V,matrix< double > W,handle target) |
Returns a NEW INSTANCE of the projected object that does not rely on data of the old one via references (everything must be copied to ensure separability of reduced(=projected) versions and full versions, unless. More... | |
Public Attributes | |
integer | MaxOrder = 40 |
The maximum order up to which the DEIM approximation should be computed. More... | |
rowvec< integer > | Order |
The actual order \(M\) for the current DEIM approximation. More... | |
rowvec< double > | SingularValues = "[]" |
The singular values returned by the SVD decomposition to compute the DEIM POD basis. More... | |
matrix< double > | U |
The U matrix for the current Order. More... | |
matrix< double > | U_nonproj |
If projection is applied, this contains the non-projected full \(d \times m\) matrix \(U_m(P_m^tU_m)^{-1}\) for use in subclasses. More... | |
matrix< double > | Uerr1 |
Some matrices for M+M' error estimation. More... | |
Uerr2 | |
M1 | |
M2 | |
dscomponents.ACompEvalCoreFun | f |
The function which DEIM is applied to. More... | |
rowvec< double > | Residuals |
The maximum residuals obtained along the magic points computation. More... | |
EVENT | OrderUpdated |
Gets fired whenever this DEIM instance has updated it's order matrices. More... | |
Public Attributes inherited from DPCMObject | |
WorkspaceVariableName = "" | |
The workspace variable name of this class. Optional. More... | |
ID = "[]" | |
An ID that allows to uniquely identify this DPCMObject (at least within the current MatLab session/context). More... | |
PropertiesChanged = "[]" | |
The Dictionary containing all the property settings as key/value pairs. More... | |
Public Attributes inherited from handle | |
addlistener | |
Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More... | |
notify | |
Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More... | |
delete | |
Handle object destructor method that is called when the object's lifecycle ends. More... | |
disp | |
Handle object disp method which is called by the display method. See the MATLAB disp function. More... | |
display | |
Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More... | |
findobj | |
Finds objects matching the specified conditions from the input array of handle objects. More... | |
findprop | |
Returns a meta.property objects associated with the specified property name. More... | |
fields | |
Returns a cell array of string containing the names of public properties. More... | |
fieldnames | |
Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More... | |
isvalid | |
Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More... | |
eq | |
Relational functions example. See details for more information. More... | |
transpose | |
Transposes the elements of the handle object array. More... | |
permute | |
Rearranges the dimensions of the handle object array. See the MATLAB permute function. More... | |
reshape | |
hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More... | |
sort | |
ort the handle objects in any array in ascending or descending order. More... | |
Public Attributes inherited from general.AProjectable | |
V | |
The \(V\) matrix of the biorthogonal pair \(V,W\). More... | |
W | |
The \(W\) matrix of the biorthogonal pair \(V,W\). More... | |
Protected Member Functions | |
function | updateOrderData () |
Update approximation order as specified in fOrder. As a consequence some matrices have to be recalculated. More... | |
Protected Member Functions inherited from KerMorObject | |
function | checkType (obj, type) |
Object typechecker. More... | |
Protected Member Functions inherited from DPCMObject | |
function | registerProps (varargin) |
Call this method at any class that defines DPCM observed properties. More... | |
function | registerProps (varargin) |
Static Protected Member Functions | |
static function obj = | loadobj (obj, varargin) |
Static Protected Member Functions inherited from DPCMObject | |
static function obj = | loadobj (obj, from) |
Re-register any registered change listeners! More... | |
static function obj = | loadobj (obj, from) |
Static Protected Member Functions inherited from general.AProjectable | |
static function obj = | loadobj (obj, from) |
Protected Attributes | |
matrix< double > | u |
The full approximation base. More... | |
rowvec< double > | pts |
Interpolation points. More... | |
|
virtual |
The interface method with returns a copy of the current class instance.
target | If clone was called for a subclass of this class, target must contain the new instance of the subclass that is to be the cloned result. |
Reimplemented from general.AProjectable.
Definition at line 397 of file DEIM.m.
References dscomponents.ACompEvalCoreFun.clone(), f, M1, M2, MaxOrder, pts, SingularValues, u, U, U_nonproj, Uerr1, and Uerr2.
Referenced by project().
function general.DEIM.computeDEIM | ( | dscomponents.ACompEvalCoreFun | f, |
matrix< double > | fxi | ||
) |
Implementation of the DEIM algorithm.
f | the function DEIM is applied to |
fxi | the snapshot data or general.ABlockSVD |
Definition at line 244 of file DEIM.m.
References f, getInterpolationPoints(), MaxOrder, Order, pts, SingularValues, dscomponents.ACompEvalCoreFun.test_ComponentEvalMatch(), u, and updateOrderData().
Referenced by approx.DEIM.approximateSystemFunction().
Definition at line 303 of file DEIM.m.
References dscomponents.ACompEvalCoreFun.evaluateComponentSet(), f, and U.
Referenced by testing.DEIM.computeDEIMErrors().
Definition at line 308 of file DEIM.m.
References dscomponents.ACompEvalCoreFun.evaluateComponentSetMulti(), f, and U.
Definition at line 356 of file DEIM.m.
References dscomponents.ACompEvalCoreFun.evaluateComponentSetMulti(), f, Uerr1, and Uerr2.
Referenced by testing.DEIM.computeDEIMErrors().
Computes the interpolation indices according to the DEIM algorithm.
u | matrix, columns are the orthonormal basis vectors computed via POD from the snapshot data |
Definition at line 325 of file DEIM.m.
References KerMor.App(), Utils.implode(), pts, Residuals, and u.
Referenced by computeDEIM().
Definition at line 313 of file DEIM.m.
References dscomponents.ACompEvalCoreFun.evaluateComponentSetGradientsAt(), f, dscomponents.ACoreFun.fDim, dscomponents.ACoreFun.JSparsityPattern, U, and general.AProjectable.V.
|
staticprotected |
Definition at line 571 of file DEIM.m.
References KerMorObject.KerMorObject().
|
virtual |
Implements IReductionSummaryPlotProvider.
Definition at line 420 of file DEIM.m.
References MaxOrder, Residuals, and SingularValues.
Pojects instance according to the projection biorthogonal matrices \(V,W\).
V | The \(V\) matrix of the biorthogonal pair \(V,W\) |
W | The \(W\) matrix of the biorthogonal pair \(V,W\) |
target | Specify the subclasses projection target instance if project is overridden in a subclass and the subclass has been cloned. Default: this |
Definition at line 365 of file DEIM.m.
References clone(), f, and dscomponents.ACompEvalCoreFun.project().
|
protected |
Update approximation order as specified in fOrder. As a consequence some matrices have to be recalculated.
Definition at line 438 of file DEIM.m.
References KerMor.App(), F, f, DPCMObject.ID, M1, M2, handle.notify, pts, dscomponents.ACompEvalCoreFun.setPointSet(), t, u, U, U_nonproj, Uerr1, Uerr2, general.AProjectable.V, and general.AProjectable.W.
Referenced by computeDEIM().
general.DEIM.f |
The function which DEIM is applied to.
Is a subclass of dscomponents.ACompEvalCoreFun
SetAccess = Private, GetAccess = Public
Definition at line 214 of file DEIM.m.
Referenced by clone(), computeDEIM(), evaluate(), evaluateMulti(), getEstimatedError(), getStateJacobian(), error.DEIMEstimator.prepareConstants(), approx.DEIM.prepareSimulation(), project(), general.MatrixDEIM.updateOrderData(), and updateOrderData().
general.DEIM.M1 |
Definition at line 207 of file DEIM.m.
Referenced by clone(), general.MatrixDEIM.updateOrderData(), and updateOrderData().
general.DEIM.M2 |
Definition at line 209 of file DEIM.m.
Referenced by clone(), general.MatrixDEIM.updateOrderData(), and updateOrderData().
general.DEIM.MaxOrder = 40 |
The maximum order up to which the DEIM approximation should be computed.
This corresponds to the maximum number \(m\) that can be choosen as approximation order.
Default: 40
SetObservable
set to true. Definition at line 60 of file DEIM.m.
Referenced by clone(), computeDEIM(), testing.DEIM.computeDEIMErrors(), and plotSummary().
general.DEIM.Order |
The actual order \(M\) for the current DEIM approximation.
As second element, the order \(M'\) of the error estimation DEIM approximation can be specified. If not given, \(M'=0\) is automatically set.
Default: []
Dependent
set to true. Definition at line 81 of file DEIM.m.
Referenced by computeDEIM(), and testing.DEIM.computeDEIMErrors().
general.DEIM.OrderUpdated |
|
protected |
Interpolation points.
SetAccess = Private, GetAccess = Protected
Definition at line 135 of file DEIM.m.
Referenced by clone(), computeDEIM(), getInterpolationPoints(), and updateOrderData().
general.DEIM.Residuals |
The maximum residuals obtained along the magic points computation.
SetAccess = Private, GetAccess = Public
Definition at line 229 of file DEIM.m.
Referenced by getInterpolationPoints(), and plotSummary().
general.DEIM.SingularValues = "[]" |
The singular values returned by the SVD decomposition to compute the DEIM POD basis.
This value is set when general.DEIM.computeDEIM is called.
Default: []
SetAccess = Private, GetAccess = Public
Definition at line 102 of file DEIM.m.
Referenced by clone(), computeDEIM(), and plotSummary().
|
protected |
The full approximation base.
SetAccess = Private, GetAccess = Protected
Definition at line 122 of file DEIM.m.
Referenced by clone(), computeDEIM(), getInterpolationPoints(), and updateOrderData().
general.DEIM.U |
The U matrix for the current Order.
SetAccess = Protected, GetAccess = Public
Definition at line 165 of file DEIM.m.
Referenced by clone(), evaluate(), evaluateMulti(), getStateJacobian(), general.MatrixDEIM.setSimilarityTransform(), and updateOrderData().
general.DEIM.U_nonproj |
If projection is applied, this contains the non-projected full \(d \times m\) matrix \(U_m(P_m^tU_m)^{-1}\) for use in subclasses.
SetAccess = Protected, GetAccess = Public
Definition at line 178 of file DEIM.m.
Referenced by clone(), general.MatrixDEIM.setSimilarityTransform(), general.MatrixDEIM.updateOrderData(), and updateOrderData().
general.DEIM.Uerr1 |
Some matrices for M+M' error estimation.
SetAccess = Protected, GetAccess = Public
Definition at line 192 of file DEIM.m.
Referenced by clone(), getEstimatedError(), and updateOrderData().
general.DEIM.Uerr2 |
Definition at line 204 of file DEIM.m.
Referenced by clone(), getEstimatedError(), and updateOrderData().