MFEM
v4.6.0
Finite element discretization library
|
Transfer data in L2 and H1 finite element spaces between a coarse mesh and an embedded refined mesh using L2 projection. More...
#include <transfer.hpp>
Classes | |
class | L2Projection |
class | L2ProjectionH1Space |
class | L2ProjectionL2Space |
class | L2Prolongation |
Public Member Functions | |
L2ProjectionGridTransfer (FiniteElementSpace &coarse_fes_, FiniteElementSpace &fine_fes_, bool force_l2_space_=false) | |
virtual | ~L2ProjectionGridTransfer () |
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... | |
virtual bool | SupportsBackwardsOperator () const |
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... | |
bool | force_l2_space |
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 in L2 and H1 finite element spaces 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 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 coarse element. For L2 spaces, M_f is the mass matrix on the union of all fine elements comprising the coarse element. For H1 spaces, M_f is a diagonal (lumped) mass matrix computed through row-summation. 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 for L2 spaces, vary between different mesh elements.
This class supports H1 and L2 finite element spaces. Fine meshes are a uniform refinement of the coarse mesh, usually created through Mesh::MakeRefined. 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 fine dofs (in a coarse element) should not be smaller than the number of coarse dofs.
Definition at line 170 of file transfer.hpp.
|
inline |
Definition at line 379 of file transfer.hpp.
|
virtual |
Definition at line 1107 of file transfer.cpp.
|
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 1119 of file transfer.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 1113 of file transfer.cpp.
|
virtual |
Reimplemented from mfem::GridTransfer.
Definition at line 1155 of file transfer.cpp.
|
protected |
Backward, fine-to-coarse, operator.
Definition at line 375 of file transfer.hpp.
|
protected |
Forward, coarse-to-fine, operator.
Definition at line 374 of file transfer.hpp.
|
protected |
Definition at line 376 of file transfer.hpp.