MFEM  v4.3.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
mfem::LORBase Class Reference

Abstract base class for LORDiscretization and ParLORDiscretization classes, which construct low-order refined versions of bilinear forms. More...

#include <lor.hpp>

Inheritance diagram for mfem::LORBase:
[legend]
Collaboration diagram for mfem::LORBase:
[legend]

Public Member Functions

const OperatorHandleGetAssembledSystem () const
 Returns the assembled LOR system. More...
 
void AssembleSystem (BilinearForm &a_ho, const Array< int > &ess_dofs)
 Assembles the LOR system. More...
 
const Array< int > & GetDofPermutation () const
 Returns the permutation that maps LOR DOFs to high-order DOFs. More...
 
bool RequiresDofPermutation () const
 
FiniteElementSpaceGetFESpace () const
 Returns the low-order refined finite element space. More...
 
 ~LORBase ()
 

Protected Types

enum  FESpaceType {
  H1, ND, RT, L2,
  INVALID
}
 

Protected Member Functions

void ConstructLocalDofPermutation (Array< int > &perm_) const
 
void ConstructDofPermutation () const
 
void SetupNonconforming ()
 
FESpaceType GetFESpaceType () const
 Returns the type of finite element space: H1, ND, RT or L2. More...
 
int GetLOROrder () const
 Returns the order of the LOR space. 1 for H1 or ND, 0 for L2 or RT. More...
 
 LORBase (FiniteElementSpace &fes_ho_)
 

Protected Attributes

FiniteElementSpacefes_ho
 
Meshmesh
 
FiniteElementCollectionfec
 
FiniteElementSpacefes
 
BilinearForma
 
OperatorHandle A
 
Array< int > perm
 
bool nonconforming = false
 

Detailed Description

Abstract base class for LORDiscretization and ParLORDiscretization classes, which construct low-order refined versions of bilinear forms.

Definition at line 22 of file lor.hpp.

Member Enumeration Documentation

Enumerator
H1 
ND 
RT 
L2 
INVALID 

Definition at line 62 of file lor.hpp.

Constructor & Destructor Documentation

mfem::LORBase::LORBase ( FiniteElementSpace fes_ho_)
protected

Definition at line 343 of file lor.cpp.

mfem::LORBase::~LORBase ( )

Definition at line 363 of file lor.cpp.

Member Function Documentation

void mfem::LORBase::AssembleSystem ( BilinearForm a_ho,
const Array< int > &  ess_dofs 
)

Assembles the LOR system.

Definition at line 241 of file lor.cpp.

void mfem::LORBase::ConstructDofPermutation ( ) const
protected

Construct the permutation that maps LOR DOFs to high-order DOFs. See GetDofPermutation.

Definition at line 181 of file lor.cpp.

void mfem::LORBase::ConstructLocalDofPermutation ( Array< int > &  perm_) const
protected

Constructs the local DOF (ldof) permutation. In parallel this is used as an intermediate step in computing the DOF permutation (see ConstructDofPermutation and GetDofPermutation).

Definition at line 77 of file lor.cpp.

const OperatorHandle & mfem::LORBase::GetAssembledSystem ( ) const

Returns the assembled LOR system.

Definition at line 235 of file lor.cpp.

const Array< int > & mfem::LORBase::GetDofPermutation ( ) const

Returns the permutation that maps LOR DOFs to high-order DOFs.

This permutation is constructed the first time it is requested, and then is cached. For H1 and L2 finite element spaces (or for nonconforming spaces) this is the identity. In these cases, RequiresDofPermutation will return false. However, if the DOF permutation is requested, an identity permutation will be built and returned.

For vector finite element spaces (ND and RT), the DOF permutation is nontrivial. Returns an array perm such that, given an index i of a LOR dof, perm[i] is the index of the corresponding HO dof.

Definition at line 223 of file lor.cpp.

FiniteElementSpace& mfem::LORBase::GetFESpace ( ) const
inline

Returns the low-order refined finite element space.

Definition at line 122 of file lor.hpp.

LORBase::FESpaceType mfem::LORBase::GetFESpaceType ( ) const
protected

Returns the type of finite element space: H1, ND, RT or L2.

Definition at line 60 of file lor.cpp.

int mfem::LORBase::GetLOROrder ( ) const
protected

Returns the order of the LOR space. 1 for H1 or ND, 0 for L2 or RT.

Definition at line 71 of file lor.cpp.

bool mfem::LORBase::RequiresDofPermutation ( ) const

Returns true if the LOR spaces requires a DOF permutation (if the corresponding LOR and HO DOFs are numbered differently), false otherwise. Note: permutations are not required in the case of nonconforming spaces, since the DOF numbering is incorporated into the prolongation operators.

Definition at line 229 of file lor.cpp.

void mfem::LORBase::SetupNonconforming ( )
protected

Sets up the prolongation and restriction operators required for nonconforming spaces.

Definition at line 281 of file lor.cpp.

Member Data Documentation

BilinearForm* mfem::LORBase::a
protected

Definition at line 68 of file lor.hpp.

OperatorHandle mfem::LORBase::A
protected

Definition at line 69 of file lor.hpp.

FiniteElementCollection* mfem::LORBase::fec
protected

Definition at line 66 of file lor.hpp.

FiniteElementSpace* mfem::LORBase::fes
protected

Definition at line 67 of file lor.hpp.

FiniteElementSpace& mfem::LORBase::fes_ho
protected

Definition at line 64 of file lor.hpp.

Mesh* mfem::LORBase::mesh
protected

Definition at line 65 of file lor.hpp.

bool mfem::LORBase::nonconforming = false
protected

Definition at line 71 of file lor.hpp.

Array<int> mfem::LORBase::perm
mutableprotected

Definition at line 70 of file lor.hpp.


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