MFEM
v4.1.0
Finite element discretization library
|
Transfer data between a coarse mesh and an embedded refined mesh using L2 projection. More...
#include <fespace.hpp>
Classes | |
class | L2Projection |
class | L2Prolongation |
Public Member Functions | |
L2ProjectionGridTransfer (FiniteElementSpace &coarse_fes, FiniteElementSpace &fine_fes) | |
virtual const Operator & | ForwardOperator () |
Return an Operator that transfers GridFunctions from the domain FE space to GridFunctions in the range FE space. More... | |
virtual const Operator & | BackwardOperator () |
Return an Operator that transfers GridFunctions from the range FE space back to GridFunctions in the domain FE space. More... | |
Public Member Functions inherited from mfem::GridTransfer | |
GridTransfer (FiniteElementSpace &dom_fes_, FiniteElementSpace &ran_fes_) | |
virtual | ~GridTransfer () |
Virtual destructor. More... | |
void | SetOperatorType (Operator::Type type) |
Set the desired Operator::Type for the construction of all operators defined by the underlying transfer algorithm. More... | |
virtual const Operator & | TrueForwardOperator () |
Return an Operator that transfers true-dof Vectors from the domain FE space to true-dof Vectors in the range FE space. More... | |
virtual const Operator & | TrueBackwardOperator () |
Return an Operator that transfers true-dof Vectors from the range FE space back to true-dof Vectors in the domain FE space. More... | |
Protected Attributes | |
L2Projection * | F |
Forward, coarse-to-fine, operator. More... | |
L2Prolongation * | B |
Backward, fine-to-coarse, operator. More... | |
Protected Attributes inherited from mfem::GridTransfer | |
FiniteElementSpace & | dom_fes |
Domain FE space. More... | |
FiniteElementSpace & | ran_fes |
Range FE space. More... | |
Operator::Type | oper_type |
Desired Operator::Type for the construction of all operators defined by the underlying transfer algorithm. It can be ignored by derived classes. More... | |
OperatorHandle | fw_t_oper |
Forward true-dof operator. More... | |
OperatorHandle | bw_t_oper |
Backward true-dof operator. More... | |
bool | parallel |
Additional Inherited Members | |
Protected Member Functions inherited from mfem::GridTransfer | |
bool | Parallel () const |
const Operator & | MakeTrueOperator (FiniteElementSpace &fes_in, FiniteElementSpace &fes_out, const Operator &oper, OperatorHandle &t_oper) |
Transfer data between a coarse mesh and an embedded refined mesh using L2 projection.
The forward, coarse-to-fine, transfer uses L2 projection. The backward, fine-to-coarse, transfer is defined locally (on a coarse element) as B = (F^t M_f F)^{-1} F^t M_f, where F is the forward transfer matrix, and M_f is the mass matrix on the union of all fine elements comprising the coarse element. Note that the backward transfer operator, B, is a left inverse of the forward transfer operator, F, i.e. B F = I. Both F and B are defined in physical space and, generally, vary between different mesh elements.
This class currently only fully supports L2 finite element spaces and fine meshes that are a uniform refinement of the coarse mesh. Generally, the coarse and fine FE spaces can have different orders, however, in order for the backward operator to be well-defined, the number of the fine dofs (in a coarse element) should not be smaller than the number of coarse dofs.
If used on H1 finite element spaces, the transfer will be performed locally, and the value of shared (interface) degrees of freedom will be determined by the value of the last transfer to be performed (according to the element numbering in the finite element space). As a consequence, the mass conservation properties for this operator from the L2 case do not carry over to H1 spaces.
Definition at line 859 of file fespace.hpp.
|
inline |
Definition at line 908 of file fespace.hpp.
|
virtual |
Return an Operator that transfers GridFunctions from the range FE space back to GridFunctions in the domain FE space.
Implements mfem::GridTransfer.
Definition at line 2745 of file fespace.cpp.
|
virtual |
Return an Operator that transfers GridFunctions from the domain FE space to GridFunctions in the range FE space.
Implements mfem::GridTransfer.
Definition at line 2739 of file fespace.cpp.
|
protected |
Backward, fine-to-coarse, operator.
Definition at line 905 of file fespace.hpp.
|
protected |
Forward, coarse-to-fine, operator.
Definition at line 904 of file fespace.hpp.