Interface for a localized operator that fulfills the so-called \(H\)-independent DOF dependence.
A discrete operator \({\cal L}_h:{\cal V}_h \to {\cal W}_h\) fulfills the \(H\)-independent DOF dependence if any operator evaluation restricted to a single DOF \(\tau[{\cal L}_h[u_h]]\) can be computed with a constant complexity \(J\) independently of the dimension \(H\) for all DOFs \(\tau \in \Sigma({\cal W}_h)\) and functions \(u_h \in {\cal V}_h\).
\[\tau_{{\cal J}(m)}\left[ {\cal L}_h \left[ \sum_{m' \in {\cal I}(m)} \sigma_{m'}[u_h] \psi_{m'} \right] \right] = \tau_{{\cal J}(m)}[{\cal L}_h[u_h]]\]
for all \(m=1,\ldots,M\) and \(u_h \in {\cal V}_h\). Here \(\psi_i \in {\cal V}_h, i=1,\ldots,H\) are basis functions of the discrete argument function space.Definition at line 17 of file ILocalizedOperator.m.
Public Member Functions | |
virtual function [ INC , INCoff , J ] = | apply (model, model_data, arg, NU_ind) |
compute operator evaluation on argument function for given interpolation DOF indices specified by NU_ind More... | |
virtual function
ret_size = | ret_size (model_data, NU_ind) |
returns the length of the return INC value of an apply() method call. More... | |
virtual function
arg_size = | arg_size (model_data, NU_ind) |
returns the length of the required argument DOF vector for an apply() method call. More... | |
virtual function [ nmd , eind , eind_local ] = | compute_TM_global (model_data, TM_local) |
computes a subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\) More... | |
virtual function ipm = | inner_product_matrix (model_data) |
return inner product matrix for range function space \({\cal Wh}\) More... | |
Static Public Member Functions | |
static function eind = | compute_TM_global_vertex (model_data, TM_local) |
Specialization of compute_TM_global() for grid based finite volume operators. More... | |
static function eind = | compute_TM_global_edge (model_data, TM_local, local_stencil_size) |
Specialization of compute_TM_global() for grid based finite volume operators. More... | |
static function opdata = | fill_opdata (rmodel,@IDetailedData detailed_data) |
This method can be called during empirical interpolation in order to collect arbitrary data (for example parameter independent or constant data) in a detailed data node. More... | |
static function opdata = | copy_extract_opdata (opdata_copy, rmodel, Mid) |
Used by a copy constructor of IDetailedData objects which collect operator data with fill_opdata() methods. More... | |
Static Public Attributes | |
static const | id |
a string name specifying the implemented operator More... | |
|
pure virtual |
compute operator evaluation on argument function for given interpolation DOF indices specified by NU_ind
arg | the argument function \(u_h \in {\cal V}_h\) |
NU_ind | interpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) ) |
model | model |
model_data | model data |
INC | vector of DOFs with indices \(\nu_{\text{ind}}\) of an operator evaluation |
INCoff | optionally stores the DOFs of a constant part of an operator. This has been added for compatibility with separable affine operators. |
J | Jacobian \(D[{\cal L}_h]|_{u_h}\) restricted to the vector of interpolation DOFs. This ought to be a matrix of size \(M_{\text{ext}}\times M\) with \(M_{\text{ext}}:= \text{card}( \cup_{m\in\nu_{\text{ind}}} {\cal J}(m))\). |
Implemented in LocalizedOperatorDefault.
|
pure virtual |
returns the length of the required argument DOF vector for an apply() method call.
This should usually return \(\text{card}( \cup_{m\in\nu_{\text{ind}}} {\cal J}(m))\) or \(H\).
NU_ind | interpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) ) |
model_data | model data |
arg_size | length of the required argument DOF vector for an apply() method call. |
Implemented in LocalizedOperatorDefault.
|
pure virtual |
computes a subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\)
The most common use-case is the computation of indices for grid cells in the reduced grid model_data.grid_local_ext
. For most operators the neighbors of the interpolation DOFs need to be computed somehow. Default implementations for this exist as
TM_local | a set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\). |
model_data | model data |
nmd | updated model_data structure with new index sets \({\cal I}_{M_{\text{ext}}}\) and \({\cal J}_M\) |
eind | a subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} {\cal I}(m)\) |
eind_local | the new localized set of restriciton DOF indices (relative to the new model_data \(\cup_{m \in T_{M_{\text{local}}}} {\cal I}_{M_{\text{ext}}}(m)\) |
|
static |
Specialization of compute_TM_global() for grid based finite volume operators.
If each DOF is connected to a grid cell of an underlying grid, this method selects to a set of DOFs all DOFs connected to grid cells neighboring the edges of all selected grid cells. The inclusion of edge-neighbors is repeated as often as indicated by local_stencil_size
model_data | model data |
TM_local | a set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\). |
local_stencil_size | indicates how often the inclusion of edge-neighors shall be repeated. (Default: 1) |
eind | a subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\) |
grid —
a structure containing geometry information of a mesh used for discretizations Definition at line 221 of file ILocalizedOperator.m.
|
static |
Specialization of compute_TM_global() for grid based finite volume operators.
If each DOF is connected to a grid cell of an underlying grid, this method selects to a set of DOFs all DOFs connected to grid cells neighboring the vertices of all selected grid cells.
model_data | model data |
TM_local | a set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\). |
eind | a subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\) |
grid —
a structure containing geometry information of a mesh used for discretizations Definition at line 180 of file ILocalizedOperator.m.
|
static |
Used by a copy constructor of IDetailedData objects which collect operator data with fill_opdata() methods.
opdata_copy | opdata structure to be copied |
rmodel | rmodel |
Mid | Id of the detailed_data structure, i.e. the interpolation DOFs, this operator is connected to. This can differ from the Id id. |
opdata | copied struct storing arbitrary data on the operator |
Definition at line 271 of file ILocalizedOperator.m.
|
static |
This method can be called during empirical interpolation in order to collect arbitrary data (for example parameter independent or constant data) in a detailed data node.
rmodel | rmodel |
detailed_data | detailed data |
opdata | struct storing arbitrary data on the operator |
Definition at line 255 of file ILocalizedOperator.m.
|
pure virtual |
return inner product matrix for range function space \({\cal Wh}\)
model_data | model data |
ipm | the inner product matrix of the range function space |
Implemented in LocalizedOperatorDefault.
|
pure virtual |
returns the length of the return INC
value of an apply() method call.
This should usually return \(\text{card}(\nu_{\text{ind}})\) or \(H\).
NU_ind | interpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) ) |
model_data | model data |
ret_size | length of the return INC value of an apply() method call. |
Implemented in LocalizedOperatorDefault.
|
static |
a string name specifying the implemented operator
Definition at line 62 of file ILocalizedOperator.m.