KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dscomponents.ACoreFun Class Referenceabstract

Basic interface for all dynamical system's core functions Inherits the AProjectable interface. More...

Detailed Description

Basic interface for all dynamical system's core functions Inherits the AProjectable interface.

Subclassers have to implement the clone method according to the rules explained in ICloneable, but only must re-implmement the project method if a custom projection process takes place, i.e. coefficients must be recomputed or such. Otherwise, the project implementation in this method is sufficient to wrap

Author
Daniel Wirtz
Date
2010-03-17
New in 0.6:
(Daniel Wirtz, 2012-07-16) Removed the CustomJacobian flag as either the default via finite differences is used or an overridden method.
New in 0.6:
(Daniel Wirtz, 2012-02-07)
  • Added a new property dscomponents.ACoreFun.CustomJacobian and implemented the default jacobian via finite differences.
  • Removed the IJacobian interface and adopted the affected classes.
  • Implemented a test function to compare both jacobians (custom and FD)
Change in 0.6:
(Daniel Wirtz, 2012-01-18) Fixed a bug so that PointerCoreFuns with no \(t\) or \(\mu\) argument can be evaluated and no index out of range errors occur. Also the output dimension is now automatically determined in that case.
Change in 0.6:
(Daniel Wirtz, 2011-11-30) Fixed a bug regarding the setter for JSparsityPattern, as previously passing an empty value was not allowed.
New in 0.6:
(Daniel Wirtz, 2011-11-27) New property ACoreFun.JSparsityPattern that allows to specify the sparsity pattern of the functions jacobian matrix. Is used for any solver that supports those patterns.
Change in 0.5:
(Daniel Wirtz, 2011-10-15) Improved the evaluate method and added a generic test method to test the multiargumentevaluation-capability (calls once with whole vector and then via singledim-loop, then compares diff up to eps)
New in 0.3:
(Daniel Wirtz, 2011-04-21) Integrated this class to the property default value changed supervision system Property classes and levels. This class now inherits from KerMorObject and has an extended constructor registering any user-relevant properties using KerMorObject.registerProps.
Change in 0.3:
(Syed Ammar, 2011-04-15) Implemented Setters for the properties of this class
Change in 0.3:
(Daniel Wirtz, 2011-04-13) The evaluate function supports multiargument evaluation now.
New in 0.3:
(Daniel Wirtz, 2011-04-12) Added a new set-protected property dscomponents.ACoreFun.MultiArgumentEvaluations. Allows for speedup in case the target function can be called with a matrix of vectors instead of a single vector only.
Todo:
Add test for non-custom projection (model with \(W'f(x,t,\mu)V\))

This class is part of the framework

KerMor - Model Order Reduction using Kernels

Definition at line 18 of file ACoreFun.m.

Public Member Functions

 ACoreFun (sys)
 
function  setSystem (sys)
 
function target = project (V, W, target)
 Sets the protected \(\vV,\vW\) matrices that can be utilized on core function evaluations after projection. More...
 
function fx = evaluate (x, t)
 Evaluates the f-approximation. Depending on a possible projection and the CustomProjection-property the function either calls the inner evaluation directly which assumes \(f = f^r(z)\) or projects the reduced state variable z into the original space and evaluates the function there, so via \(f = V'f(Vz)\). More...
 
function fx = evaluateMulti (colvec< double > x,double t,colvec< double > mu)
 Evaluates this function on multiple locations and maybe multiple times and parameters. More...
 
function  prepareSimulation (colvec< double > mu)
 A method that allows parameter-dependent computations to be performed before a simulation using this parameter starts. More...
 
function J = getStateJacobian (x, t)
 Default implementation of jacobian matrix evaluation via finite differences. More...
 
function J = getStateJacobianImpl (colvec< double > x,double t)
 Default implementation of state jacobians. uses finite differences. More...
 
function copy = clone (copy)
 The interface method with returns a copy of the current class instance. More...
 
function [ matrix< double > J ,
dx ] = 
getStateJacobianFD (x, t,rowvec< integer > partidx)
 Implementation of jacobian matrix evaluation via finite differences. More...
 
virtual function fx = evaluateCoreFun (colvec< double > x,double t)
 Actual method used to evaluate the dynamical sytems' core function. More...
 
function res = test_MultiArgEval (mudim)
 Convenience function that tests if a custom MultiArgumentEvaluation works as if called with single arguments. More...
 
function logical res = test_Jacobian (matrix< double > xa,rowvec< double > ta,matrix< double > mua)
 Tests the custom provided jacobian matrix against the default finite difference computed one. More...
 
- 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...
 
function copy = clone (copy)
 The interface method with returns a copy of the current class instance. More...
 

Public Attributes

logical TimeDependent = true
 Flag that indicates if the ACoreFun is (truly) time-dependent. More...
 
 CustomProjection = false
 Set this property if the projection process is customized by overriding the default project method. More...
 
sparse< logicalJSparsityPattern = "[]"
 Sparsity pattern for the jacobian matrix. More...
 
integer xDim = "[]"
 The current state space dimension of the function's argument \(x\). More...
 
integer fDim = "[]"
 The current output dimension of the function. More...
 
models.BaseFirstOrderSystem System
 The system associated with the current ACoreFun. More...
 
colvec< doublemu = "[]"
 The current model parameter mu for evaluations. Will not be persisted as only valid for runtime during simulations. More...
 
 Vcache
 
 Wcache
 
- 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...
 

Static Protected Member Functions

static function obj = loadobj (obj, from)
 
- 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)
 

Additional Inherited Members

- 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)
 

Constructor & Destructor Documentation

dscomponents.ACoreFun.ACoreFun (   sys)

Definition at line 233 of file ACoreFun.m.

References KerMorObject.KerMorObject(), DPCMObject.registerProps(), and setSystem().

Here is the call graph for this function:

Member Function Documentation

function copy = dscomponents.ACoreFun.clone (   target)
virtual

The interface method with returns a copy of the current class instance.

Parameters
targetIf 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.

Implements ICloneable.

Reimplemented in dscomponents.ParamTimeKernelCoreFun.

Definition at line 438 of file ACoreFun.m.

References CustomProjection, fDim, JSparsityPattern, System, TimeDependent, and xDim.

Referenced by project().

Here is the caller graph for this function:

function fx = dscomponents.ACoreFun.evaluate (   x,
  t 
)

Evaluates the f-approximation. Depending on a possible projection and the CustomProjection-property the function either calls the inner evaluation directly which assumes \(f = f^r(z)\) or projects the reduced state variable z into the original space and evaluates the function there, so via \(f = V'f(Vz)\).

Attention
If you override this method directly, you will have to make sure it computes the correct evaluation after projection has been performed.
See Also
CustomProjection
Change in 0.3:
(Daniel Wirtz, 2011-04-19) Fixed an error when no MultiArgumentEvaluations were supported and no parameter \(\mu\) was given (Crashed due to index out of bounds)
Parameters
xThe state variable vector/matrix (with colum state vectors)
tThe corresponding times for each state vector. Set to [] if no time is used.
muThe parameter(s) to use. Set to [] if the function does not support parameters.

Definition at line 296 of file ACoreFun.m.

References CustomProjection, evaluateCoreFun(), general.AProjectable.V, and general.AProjectable.W.

Referenced by models.muscle.Dynamics.evaluateComponentSet(), evaluateMulti(), spacereduction.Krylov.generateReducedSpaceImpl(), testing.DEIM.getDEIMErrorsAtXForParams(), getStateJacobianFD(), models.BaseSecondOrderSystem.ODEFun(), models.BaseFirstOrderSystem.ODEFun(), test_MultiArgEval(), and models.muscle.System.test_UnassembledEvaluation().

Here is the call graph for this function:

Here is the caller graph for this function:

function fx = dscomponents.ACoreFun.evaluateCoreFun ( colvec< double x,
double  t 
)
pure virtual

Actual method used to evaluate the dynamical sytems' core function.

Subclasses might implement this method and set the flag CustomProjection appropriately. However, for speed reasons, if both are true one might as well override the evaluate member directly as it basically cares for the cases when one of the flags is not true. In that case it is still important to set both flags to true as some components rely on them.

Parameters
xThe state variable vector \(\vx(t)\)
tThe current time(s) \(t \in [0, T]\)

Implemented in approx.KernelEI, models.muscle.Dynamics, models.pcdi.BaseCoreFun, models.pcd.CoreFun3D, dscomponents.PointerCoreFun, models.beam.DLTNonlinearCoreFun, and models.synth.RotationFun.

Referenced by evaluate().

Here is the caller graph for this function:

function fx = dscomponents.ACoreFun.evaluateMulti ( colvec< double x,
double  t,
colvec< double mu 
)

Evaluates this function on multiple locations and maybe multiple times and parameters.

The parameters t and mu can either be single or as many as there are columns in x. Overriding classes must adhere to this principle.

Override in subclasses if the "evaluate" can handle matrix arguments directly

Parameters
xThe state variable vector \(\vx(t)\)
tThe current time(s) \(t \in [0, T]\)
muThe currently used parameter \(\vmu\). Set to \([]\) if not used.

Definition at line 335 of file ACoreFun.m.

References evaluate(), fDim, mu, prepareSimulation(), and t.

Referenced by approx.KernelEI.approximateSystemFunction(), data.ApproxTrainData.computeFrom(), models.muscle.Dynamics.evaluateComponentSetMulti(), getStateJacobianFD(), models.BaseFullModel.off2_genTrainingData(), dscomponents.ACompEvalCoreFun.test_ComponentEvalMatch(), and test_MultiArgEval().

Here is the call graph for this function:

Here is the caller graph for this function:

function J = dscomponents.ACoreFun.getStateJacobian (   x,
  t 
)

Default implementation of jacobian matrix evaluation via finite differences.

Override in subclasses for custom (analytic) implementations or if the problem size is too large to fit a full matrix into memory.

Parameters
xThe state variable vector/matrix (with colum state vectors)
tThe corresponding times for each state vector. Set to [] if no time is used.
muThe parameter(s) to use. Set to [] if the function does not support parameters.
Return values
JThe jacobian matrix at \(x,t,\mu\).

Definition at line 395 of file ACoreFun.m.

References getStateJacobianImpl(), general.AProjectable.V, and general.AProjectable.W.

Referenced by approx.TPWLApprox.approximateSystemFunction(), testing.DEIM.compareDEIM_Full_Jacobian(), error.DEIMEstimator.getBeta(), models.ReducedSecondOrderSystem.getJacobian(), models.BaseSecondOrderSystem.getJacobian(), models.BaseFirstOrderSystem.getJacobian(), and test_Jacobian().

Here is the call graph for this function:

Here is the caller graph for this function:

function [ matrix< double > J , dx ] = dscomponents.ACoreFun.getStateJacobianFD (   x,
  t,
rowvec< integer partidx 
)

Implementation of jacobian matrix evaluation via finite differences.

1:xDim

Parameters
xThe state variable vector/matrix (with colum state vectors)
tThe corresponding times for each state vector. Set to [] if no time is used.
partidxAn index vector for desired derivative components. Can be used to compute full jacobians in parts that would otherwise not fit into memory
Default:
Parameters
muThe parameter(s) to use. Set to [] if the function does not support parameters.
Return values
JThe jacobian matrix at \(x,t,\mu\), possibly only the part specified by the partidx indices.
Note
This method has the MATLAB method attribute Sealed set to true. It cannot be overwritten.
matlab documentation of method attributes.

Definition at line 456 of file ACoreFun.m.

References evaluate(), evaluateMulti(), fDim, JSparsityPattern, mu, X, and xDim.

Referenced by approx.KernelEI.computeEmpiricalSparsityPattern(), getStateJacobianImpl(), and test_Jacobian().

Here is the call graph for this function:

Here is the caller graph for this function:

function J = dscomponents.ACoreFun.getStateJacobianImpl ( colvec< double x,
double  t 
)

Default implementation of state jacobians. uses finite differences.

Parameters
xThe state variable vector \(\vx(t)\)
tThe current time(s) \(t \in [0, T]\)

Definition at line 424 of file ACoreFun.m.

References getStateJacobianFD().

Referenced by getStateJacobian().

Here is the call graph for this function:

Here is the caller graph for this function:

static function obj = dscomponents.ACoreFun.loadobj (   obj,
  from 
)
staticprotected

Definition at line 773 of file ACoreFun.m.

References KerMorObject.KerMorObject().

Here is the call graph for this function:

function dscomponents.ACoreFun.prepareSimulation ( colvec< double mu)

A method that allows parameter-dependent computations to be performed before a simulation using this parameter starts.

Override in subclasses (with calling this method!) for customized behaviour

Parameters
muThe currently used parameter \(\vmu\). Set to \([]\) if not used.

Definition at line 380 of file ACoreFun.m.

References mu.

Referenced by approx.KernelEI.computeEmpiricalSparsityPattern(), models.BaseFullModel.computeTrajectory(), dscomponents.ACompEvalCoreFun.evaluateComponentsMulti(), dscomponents.ACompEvalCoreFun.evaluateJacobianSetMulti(), evaluateMulti(), models.muscle.Model.plotForceLengthCurve(), error.DEIMEstimator.prepareConstants(), approx.DEIM.prepareSimulation(), models.BaseSecondOrderSystem.prepareSimulation(), models.BaseFirstOrderSystem.prepareSimulation(), test_Jacobian(), and test_MultiArgEval().

Here is the caller graph for this function:

function target = dscomponents.ACoreFun.project (   V,
  W,
  target 
)

Sets the protected \(\vV,\vW\) matrices that can be utilized on core function evaluations after projection.

If the customized subclass sets the CustomProjection property to true, this method must be called with a 3rd argument, the target instance of a subclass upon which the projection process is to be performed.

See Also
CustomProjection
Change in 0.3:
(Daniel Wirtz, 2011-04-11) Modified the project method to also cater for the noncustomized projection case by cloning the current instance (general.AProjectable now inherits from ICloneable per default).
Parameters
VProjection matrix one
WProjection matrix two
targetThe target instance which is a clone of this current class. This parameter is required if custom projection is used.
Generated fields of target:

Definition at line 247 of file ACoreFun.m.

References clone(), CustomProjection, fDim, and xDim.

Referenced by models.ReducedSystem.build(), and error.IterationCompLemmaEstimator.prepareForReducedModel().

Here is the call graph for this function:

Here is the caller graph for this function:

function dscomponents.ACoreFun.setSystem (   sys)

Definition at line 242 of file ACoreFun.m.

References System.

Referenced by ACoreFun().

Here is the caller graph for this function:

function logical res = dscomponents.ACoreFun.test_Jacobian ( matrix< double xa,
rowvec< double ta,
matrix< double mua 
)

Tests the custom provided jacobian matrix against the default finite difference computed one.

Attention
This method trivially works if you did not overload the dscomponents.ACoreFun.getStateJacobian method (then it will check the default implementation against itself)
Parameters
xaA matrix of \(x_i,i=1\ldots n\)-values to try each.
taThe corresponding \(n\) times \(t_i\)
muaThe parameters \(\mu_i\). Default: []
Return values
resA flag indicating if each test had a relative error of less than 1e-5

Definition at line 605 of file ACoreFun.m.

References KerMor.App(), fDim, getStateJacobian(), getStateJacobianFD(), JSparsityPattern, k, PlotManager.LeaveOpen, prepareSimulation(), handle.sort, t, and xDim.

Here is the call graph for this function:

function res = dscomponents.ACoreFun.test_MultiArgEval (   mudim)

Convenience function that tests if a custom MultiArgumentEvaluation works as if called with single arguments.

Definition at line 577 of file ACoreFun.m.

References all(), evaluate(), evaluateMulti(), prepareSimulation(), and xDim.

Here is the call graph for this function:

Member Data Documentation

dscomponents.ACoreFun.CustomProjection = false

Set this property if the projection process is customized by overriding the default project method.

This affects the evaluation method of the ACoreFun.

Property class optional:
If the structure of the underlying function allows more efficient projection set this flag to true in the subclass constructor.
Note
This property has the MATLAB attribute SetObservable set to true.
This property has non-standard access specifiers: SetAccess = Protected, GetAccess = Public
Matlab documentation of property attributes.
Default: false
This property has custom functionality when its value is changed.

Definition at line 108 of file ACoreFun.m.

Referenced by dscomponents.AffLinCoreFun.AffLinCoreFun(), models.burgers.BurgersF.BurgersF(), models.burgers.BurgersF_NoA.BurgersF_NoA(), clone(), approx.DEIM.DEIM(), evaluate(), approx.KernelEI.KernelEI(), dscomponents.LinearCoreFun.LinearCoreFun(), dscomponents.ParamTimeKernelCoreFun.ParamTimeKernelCoreFun(), dscomponents.PointerCoreFun.PointerCoreFun(), project(), models.circ.RCLadderFun.RCLadderFun(), and approx.TPWLApprox.TPWLApprox().

dscomponents.ACoreFun.fDim = "[]"

The current output dimension of the function.

Must be set in inheriting classes on order to ensure functionality of KerMor classes and algorithms.

Property class critical:
Not setting this value in inheriting classes may cause errors in some KerMor algorithms.

Default: []

Note
This property has the MATLAB attribute SetObservable set to true.
This property has non-standard access specifiers: SetAccess = Protected, GetAccess = Public
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 171 of file ACoreFun.m.

Referenced by dscomponents.AffLinCoreFun.addMatrix(), clone(), data.ApproxTrainData.computeFrom(), models.BaseFullModel.computeTrajectory(), models.muscle.Constraint.configUpdated(), models.muscle.Dynamics.configUpdated(), testing.DEIM.DEIM(), models.beam.DLTNonlinearCoreFun.DLTNonlinearCoreFun(), models.motoneuron.Dynamics.Dynamics(), testing.DEIM.evaluateCoreFun(), evaluateMulti(), models.golf.Force.Force(), models.pcdi.CoreFun2D.getStateJacobian(), models.pcd.CoreFun2D.getStateJacobian(), models.pcdi.InhibitCoreFun2D.getStateJacobian(), general.DEIM.getStateJacobian(), getStateJacobianFD(), general.JacCompEvalWrapper.JacCompEvalWrapper(), dscomponents.LinearCoreFun.LinearCoreFun(), models.burgers.BurgersF_NoA.newDim(), models.burgers.BurgersF.newDim(), models.pcdi.InhibitCoreFun2D.newSysDimension(), models.pcdi.CoreFun2D.newSysDimension(), models.pcd.CoreFun1D.newSysDimension(), models.pcd.CoreFun2D.newSysDimension(), models.pcd.CoreFun3D.newSysDimension(), dscomponents.PointerCoreFun.PointerCoreFun(), project(), models.circ.RCLadderFun.RCLadderFun(), models.synth.RotationFun.RotationFun(), models.motorunit.SHDynamics.SHDynamics(), and test_Jacobian().

dscomponents.ACoreFun.JSparsityPattern = "[]"

Sparsity pattern for the jacobian matrix.

KerMor automatically detects nonempty values and forwards them as appropriate to any ODE solver.

Property class optional:
Some ODE solvers can work more efficiently if a sparsity pattern for the jacobian matrix of the core function can be provided.

Default: []

Todo:
maybe move this property to the IJacobian interface? (but: might have sparsity pattern but not actually a analytic jacobian..)
Note
This property has the MATLAB attribute SetObservable set to true.
This property has non-standard access specifiers: SetAccess = Protected, GetAccess = Public
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 127 of file ACoreFun.m.

Referenced by dscomponents.AffLinCoreFun.addMatrix(), clone(), testing.DEIM.compareDEIM_Full_Jacobian(), models.muscle.Constraint.configUpdated(), models.muscle.Dynamics.configUpdated(), testing.DEIM.DEIM(), models.beam.DLTNonlinearCoreFun.DLTNonlinearCoreFun(), models.golf.Force.Force(), general.DEIM.getStateJacobian(), getStateJacobianFD(), models.motoneuron.Dynamics.initJSparsityPattern(), models.motorunit.SHDynamics.initJSparsityPattern(), general.JacCompEvalWrapper.JacCompEvalWrapper(), dscomponents.LinearCoreFun.LinearCoreFun(), models.burgers.BurgersF_NoA.newDim(), models.burgers.BurgersF.newDim(), models.pcdi.InhibitCoreFun2D.newSysDimension(), models.pcdi.CoreFun2D.newSysDimension(), models.pcd.CoreFun1D.newSysDimension(), models.pcd.CoreFun2D.newSysDimension(), dscomponents.ACompEvalCoreFun.setPointSet(), test_Jacobian(), general.MatrixDEIM.updateOrderData(), models.BaseSecondOrderSystem.updateSparsityPattern(), and models.BaseFirstOrderSystem.updateSparsityPattern().

dscomponents.ACoreFun.mu = "[]"

The current model parameter mu for evaluations. Will not be persisted as only valid for runtime during simulations.

Default: []

See Also
evaluate
Note
This property has the MATLAB attribute Transient set to true.
This property has non-standard access specifiers: SetAccess = Private, GetAccess = Public
Matlab documentation of property attributes.

Definition at line 208 of file ACoreFun.m.

Referenced by models.pcd.BaseCoreFun.activationFun(), models.pcdi.BaseCoreFun.activationFun(), dscomponents.AffLinCoreFun.addMatrix(), testing.DEIM.analysis_DEIM_approx(), approx.TPWLApprox.approximateSystemFunction(), approx.KernelEI.computeEmpiricalSparsityPattern(), models.golf.Force.evaluate(), models.burgers.BurgersF.evaluate(), dscomponents.AffLinCoreFun.evaluate(), general.JacCompEvalWrapper.evaluate(), models.pcd.CoreFun1D.evaluate(), dscomponents.ParamTimeKernelCoreFun.evaluate(), models.pcdi.CoreFun2D.evaluate(), models.pcd.CoreFun2D.evaluate(), models.pcdi.InhibitCoreFun2D.evaluate(), dscomponents.ACompEvalCoreFun.evaluateComponentGradientsAt(), models.pcdi.CoreFun2D.evaluateComponentPartialDerivatives(), models.pcd.CoreFun2D.evaluateComponentPartialDerivatives(), dscomponents.ACompEvalCoreFun.evaluateComponentPartialDerivatives(), models.pcdi.InhibitCoreFun2D.evaluateComponentPartialDerivatives(), dscomponents.ACompEvalCoreFun.evaluateComponentPartialDerivativesMulti(), testing.DEIM.evaluateComponents(), models.burgers.BurgersF.evaluateComponents(), models.pcd.CoreFun1D.evaluateComponents(), models.pcdi.CoreFun2D.evaluateComponents(), models.pcd.CoreFun2D.evaluateComponents(), models.pcdi.InhibitCoreFun2D.evaluateComponents(), testing.DEIM.evaluateComponentsMulti(), models.burgers.BurgersF.evaluateComponentsMulti(), models.pcd.CoreFun1D.evaluateComponentsMulti(), models.pcdi.CoreFun2D.evaluateComponentsMulti(), models.pcd.CoreFun2D.evaluateComponentsMulti(), models.pcdi.InhibitCoreFun2D.evaluateComponentsMulti(), dscomponents.ACompEvalCoreFun.evaluateComponentsMulti(), models.synth.RotationFun.evaluateCoreFun(), testing.DEIM.evaluateCoreFun(), dscomponents.PointerCoreFun.evaluateCoreFun(), models.pcd.CoreFun3D.evaluateCoreFun(), approx.KernelEI.evaluateCoreFun(), dscomponents.ACompEvalCoreFun.evaluateJacobianSetMulti(), models.burgers.BurgersF.evaluateMulti(), dscomponents.AffLinCoreFun.evaluateMulti(), general.JacCompEvalWrapper.evaluateMulti(), models.pcd.CoreFun1D.evaluateMulti(), models.pcdi.CoreFun2D.evaluateMulti(), models.pcd.CoreFun2D.evaluateMulti(), models.pcdi.InhibitCoreFun2D.evaluateMulti(), evaluateMulti(), models.burgers.BurgersF.getStateJacobian(), dscomponents.AffLinCoreFun.getStateJacobian(), dscomponents.ParamTimeKernelCoreFun.getStateJacobian(), models.pcdi.CoreFun2D.getStateJacobian(), models.pcd.CoreFun2D.getStateJacobian(), models.pcdi.InhibitCoreFun2D.getStateJacobian(), getStateJacobianFD(), testing.DEIM.getTrajApproxErrorDEIMEstimates(), models.motoneuron.Dynamics.prepareSimulation(), models.motorunit.SHDynamics.prepareSimulation(), models.muscle.Dynamics.prepareSimulation(), prepareSimulation(), dscomponents.PointerCoreFun.project(), dscomponents.ACompEvalCoreFun.test_ComponentEvalMatch(), approx.DEIM.test_DEIM(), testing.DEIM.test_DEIMNoSpatialDependence(), approx.KernelEI.test_KernelEI(), dscomponents.PointerCoreFun.test_PointerCoreFun(), and approx.TPWLApprox.test_TWPLApprox().

dscomponents.ACoreFun.System

The system associated with the current ACoreFun.

Note
This property has non-standard access specifiers: SetAccess = Private, GetAccess = Public
Matlab documentation of property attributes.

Definition at line 193 of file ACoreFun.m.

Referenced by models.pcd.BaseCoreFun.activationFun(), error.alpha.Base.Base(), models.pcdi.CoreFun2D.clone(), models.pcdi.InhibitCoreFun2D.clone(), models.pcd.CoreFun2D.clone(), models.pcd.CoreFun1D.clone(), approx.DEIM.clone(), approx.KernelApprox.clone(), approx.TPWLApprox.clone(), dscomponents.ParamTimeKernelCoreFun.clone(), models.motorunit.SHDynamics.clone(), dscomponents.AffLinCoreFun.clone(), approx.KernelEI.clone(), clone(), approx.KernelEI.computeEmpiricalSparsityPattern(), models.beam.DLTNonlinearCoreFun.DLTNonlinearCoreFun(), models.pcd.CoreFun1D.evaluate(), models.pcdi.CoreFun2D.evaluate(), models.pcd.CoreFun2D.evaluate(), models.pcdi.InhibitCoreFun2D.evaluate(), models.motorunit.SHDynamics.evaluate(), models.pcdi.CoreFun2D.evaluateComponentPartialDerivatives(), models.pcd.CoreFun2D.evaluateComponentPartialDerivatives(), models.pcdi.InhibitCoreFun2D.evaluateComponentPartialDerivatives(), models.pcd.CoreFun1D.evaluateComponentsMulti(), models.pcdi.CoreFun2D.evaluateComponentsMulti(), models.pcd.CoreFun2D.evaluateComponentsMulti(), models.pcdi.InhibitCoreFun2D.evaluateComponentsMulti(), models.pcd.CoreFun3D.evaluateCoreFun(), models.pcd.CoreFun1D.evaluateMulti(), models.pcdi.CoreFun2D.evaluateMulti(), models.pcd.CoreFun2D.evaluateMulti(), models.pcdi.InhibitCoreFun2D.evaluateMulti(), models.motorunit.SHDynamics.getStateJacobian(), models.pcdi.CoreFun2D.getStateJacobian(), models.pcd.CoreFun2D.getStateJacobian(), models.pcdi.InhibitCoreFun2D.getStateJacobian(), models.motorunit.SHDynamics.initJSparsityPattern(), models.burgers.BurgersF_NoA.newDim(), models.burgers.BurgersF.newDim(), models.pcdi.InhibitCoreFun2D.newSysDimension(), models.pcdi.CoreFun2D.newSysDimension(), models.pcd.CoreFun1D.newSysDimension(), models.pcd.CoreFun2D.newSysDimension(), models.pcd.CoreFun3D.newSysDimension(), models.pcd.BaseCoreFun.plotActivationFun(), models.pcdi.BaseCoreFun.plotActivationFun(), setSystem(), and models.synth.KernelTestFun.showBaseFun().

dscomponents.ACoreFun.TimeDependent = true

Flag that indicates if the ACoreFun is (truly) time-dependent.

Set in subclasses to the correct value for your implementation. Most built-in KerMor classes set their values correctly or guess them.

This will cause different behaviour for e.g. ODE solvers.

Property class critical:
Not setting this value in implementing subclasses causes KerMor's ODE solvers to (possibly) produce wrong results due to wrong assumptions on the time dependence of the core function.

Default: true

Note
This property has the MATLAB attribute SetObservable set to true.
Matlab documentation of property attributes.

Definition at line 84 of file ACoreFun.m.

Referenced by dscomponents.AffLinCoreFun.addMatrix(), dscomponents.AffLinCoreFun.AffLinCoreFun(), models.pcd.BaseCoreFun.BaseCoreFun(), models.pcdi.BaseCoreFun.BaseCoreFun(), models.burgers.BurgersF.BurgersF(), models.burgers.BurgersF_NoA.BurgersF_NoA(), clone(), models.pcd.CoreFun1D.CoreFun1D(), approx.DEIM.DEIM(), dscomponents.AffLinCoreFun.evaluate(), dscomponents.AffLinCoreFun.evaluateMulti(), dscomponents.AffLinCoreFun.getStateJacobian(), approx.KernelEI.KernelEI(), dscomponents.LinearCoreFun.LinearCoreFun(), dscomponents.ParamTimeKernelCoreFun.ParamTimeKernelCoreFun(), dscomponents.PointerCoreFun.PointerCoreFun(), models.circ.RCLadderFun.RCLadderFun(), models.rbmatlab.RiemBurgFun.RiemBurgFun(), and models.synth.RotationFun.RotationFun().

dscomponents.ACoreFun.Vcache

Definition at line 225 of file ACoreFun.m.

dscomponents.ACoreFun.Wcache

Definition at line 227 of file ACoreFun.m.

dscomponents.ACoreFun.xDim = "[]"

The current state space dimension of the function's argument \(x\).

Must be set in inheriting classes on order to ensure functionality of KerMor classes and algorithms.

Property class critical:
Not setting this value in inheriting classes may cause errors in some KerMor algorithms.

Default: []

Note
This property has the MATLAB attribute SetObservable set to true.
This property has non-standard access specifiers: SetAccess = Protected, GetAccess = Public
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 151 of file ACoreFun.m.

Referenced by dscomponents.AffLinCoreFun.addMatrix(), clone(), models.BaseFullModel.computeTrajectory(), models.muscle.Constraint.configUpdated(), models.muscle.Dynamics.configUpdated(), testing.DEIM.DEIM(), models.beam.DLTNonlinearCoreFun.DLTNonlinearCoreFun(), models.motoneuron.Dynamics.Dynamics(), models.pcd.CoreFun3D.evaluateCoreFun(), models.golf.Force.Force(), models.pcdi.CoreFun2D.getStateJacobian(), models.pcd.CoreFun2D.getStateJacobian(), models.pcdi.InhibitCoreFun2D.getStateJacobian(), getStateJacobianFD(), general.JacCompEvalWrapper.JacCompEvalWrapper(), dscomponents.LinearCoreFun.LinearCoreFun(), models.burgers.BurgersF_NoA.newDim(), models.burgers.BurgersF.newDim(), models.pcdi.InhibitCoreFun2D.newSysDimension(), models.pcdi.CoreFun2D.newSysDimension(), models.pcd.CoreFun1D.newSysDimension(), models.pcd.CoreFun2D.newSysDimension(), models.pcd.CoreFun3D.newSysDimension(), dscomponents.PointerCoreFun.PointerCoreFun(), project(), models.circ.RCLadderFun.RCLadderFun(), models.synth.RotationFun.RotationFun(), dscomponents.ACompEvalCoreFun.setPointSet(), models.motorunit.SHDynamics.SHDynamics(), dscomponents.ACompEvalCoreFun.test_ComponentEvalMatch(), test_Jacobian(), and test_MultiArgEval().


The documentation for this class was generated from the following file: