rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes
ILocalizedOperator Class Referenceabstract

Detailed Description

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

Example
  • Grid based operators with local stencil for operator evaluations like most finite volume and finite element operators.
Definitions
  • Let \(\Sigma({\cal V}_h):=\{\sigma_i\}_{i=1}^H\) and \(\Sigma({\cal W}_h):=\{\tau_i\}_{i=1}^H\) be the DOFs of the discrete functions spaces \({\cal V}_h\) and \({\cal W}_h\), respectively.
  • We denote a map of interpolation DOF indices \({\cal J}:\{1,\ldots,M\} \to \{1,\ldots,H\}\) and
  • a map of restriction DOF indices \({\cal I}:\{1,\ldots,M\} \to \text{Pot}(\{1,\ldots,H\})\), such that

    \[\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.
  • Sometimes it is desirable, to reduce the complexity of the discrete function spaces from \(H\) to \(M\) and \(M_{\text{ext}}\). In this case, we obtain restricted DOF sets \(\hat{\Sigma}_{M_{\text{ext}}}({\cal V}_h)\) and \(\hat{\Sigma}_{M}({\cal W}_h)\), and indices map \(\hat{\cal J}_M\) and \(\hat{\cal I}_{M_{\text{ext}}}\).

Definition at line 17 of file ILocalizedOperator.m.

Inheritance diagram for ILocalizedOperator:
Inheritance graph
[legend]
Collaboration diagram for ILocalizedOperator:
Collaboration graph
[legend]

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

Member Function Documentation

function [ INC , INCoff , J ] = ILocalizedOperator.apply (   model,
  model_data,
  arg,
  NU_ind 
)
pure virtual

compute operator evaluation on argument function for given interpolation DOF indices specified by NU_ind

Parameters
argthe argument function \(u_h \in {\cal V}_h\)
NU_indinterpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) )
modelmodel
model_datamodel data
Return values
INCvector of DOFs with indices \(\nu_{\text{ind}}\) of an operator evaluation
INCoffoptionally stores the DOFs of a constant part of an operator. This has been added for compatibility with separable affine operators.
JJacobian \(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.

Here is the caller graph for this function:

function arg_size = ILocalizedOperator.arg_size (   model_data,
  NU_ind 
)
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\).

Parameters
NU_indinterpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) )
model_datamodel data
Return values
arg_sizelength of the required argument DOF vector for an apply() method call.

Implemented in LocalizedOperatorDefault.

function [ nmd , eind , eind_local ] = ILocalizedOperator.compute_TM_global (   model_data,
  TM_local 
)
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

Parameters
TM_locala set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\).
model_datamodel data
Return values
nmdupdated model_data structure with new index sets \({\cal I}_{M_{\text{ext}}}\) and \({\cal J}_M\)
einda subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} {\cal I}(m)\)
eind_localthe 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)\)
function eind = ILocalizedOperator.compute_TM_global_edge (   model_data,
  TM_local,
  local_stencil_size 
)
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

Parameters
model_datamodel data
TM_locala set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\).
local_stencil_sizeindicates how often the inclusion of edge-neighors shall be repeated. (Default: 1)
Return values
einda subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\)
Required fields of model_data:
  • grid —  a structure containing geometry information of a mesh used for discretizations

Definition at line 221 of file ILocalizedOperator.m.

function eind = ILocalizedOperator.compute_TM_global_vertex (   model_data,
  TM_local 
)
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.

Parameters
model_datamodel data
TM_locala set of local DOF indices at which the operator shall be interpolated \(T_{M_{\text{local}}}\).
Return values
einda subset of restriction DOF indices \(\cup_{m \in T_{M_{\text{local}}}} \hat{{\cal I}}_{M_{\text{ext}}}(m)\)
Required fields of model_data:
  • grid —  a structure containing geometry information of a mesh used for discretizations

Definition at line 180 of file ILocalizedOperator.m.

function opdata = ILocalizedOperator.copy_extract_opdata (   opdata_copy,
  rmodel,
  Mid 
)
static

Used by a copy constructor of IDetailedData objects which collect operator data with fill_opdata() methods.

Parameters
opdata_copyopdata structure to be copied
rmodelrmodel
MidId of the detailed_data structure, i.e. the interpolation DOFs, this operator is connected to. This can differ from the Id id.
Return values
opdatacopied struct storing arbitrary data on the operator

Definition at line 271 of file ILocalizedOperator.m.

function opdata = ILocalizedOperator.fill_opdata (   rmodel,
@IDetailedData  detailed_data 
)
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.

Parameters
rmodelrmodel
detailed_datadetailed data
Return values
opdatastruct storing arbitrary data on the operator

Definition at line 255 of file ILocalizedOperator.m.

function ipm = ILocalizedOperator.inner_product_matrix (   model_data)
pure virtual

return inner product matrix for range function space \({\cal Wh}\)

Parameters
model_datamodel data
Return values
ipmthe inner product matrix of the range function space

Implemented in LocalizedOperatorDefault.

function ret_size = ILocalizedOperator.ret_size (   model_data,
  NU_ind 
)
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\).

Parameters
NU_indinterpolation DOF indices \(\nu_{\text{ind}} \subset \text{range}(\hat{\cal J}_M)\). ( Default: [] meaning \(\{1,\ldots,H\}\) )
model_datamodel data
Return values
ret_sizelength of the return INC value of an apply() method call.

Implemented in LocalizedOperatorDefault.

Here is the caller graph for this function:

Member Data Documentation

ILocalizedOperator.id
static

a string name specifying the implemented operator

Note
This property is an abstract property without implementation.
Matlab documentation of property attributes.

Definition at line 62 of file ILocalizedOperator.m.


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