MFEM  v4.5.2
Finite element discretization library
Public Member Functions | List of all members
mfem::ParFiniteElementSpaceHierarchy Class Reference

#include <fespacehierarchy.hpp>

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

Public Member Functions

 ParFiniteElementSpaceHierarchy ()=default
 
 ParFiniteElementSpaceHierarchy (ParMesh *mesh, ParFiniteElementSpace *fespace, bool ownM, bool ownFES)
 Constructs a parallel space hierarchy with the given mesh and spaces on level zero. More...
 
void AddUniformlyRefinedLevel (int dim=1, int ordering=Ordering::byVDIM) override
 Adds one level to the hierarchy by uniformly refining the mesh on the previous level. More...
 
void AddOrderRefinedLevel (FiniteElementCollection *fec, int dim=1, int ordering=Ordering::byVDIM) override
 Adds one level to the hierarchy by using a different finite element order defined through FiniteElementCollection. More...
 
const ParFiniteElementSpaceGetFESpaceAtLevel (int level) const override
 Returns the finite element space at the given level. More...
 
ParFiniteElementSpaceGetFESpaceAtLevel (int level) override
 Returns the finite element space at the given level. More...
 
const ParFiniteElementSpaceGetFinestFESpace () const override
 Returns the finite element space at the finest level. More...
 
ParFiniteElementSpaceGetFinestFESpace () override
 Returns the finite element space at the finest level. More...
 
- Public Member Functions inherited from mfem::FiniteElementSpaceHierarchy
 FiniteElementSpaceHierarchy ()=default
 
 FiniteElementSpaceHierarchy (Mesh *mesh, FiniteElementSpace *fespace, bool ownM, bool ownFES)
 Constructs a space hierarchy with the given mesh and space on the coarsest level. More...
 
virtual ~FiniteElementSpaceHierarchy ()
 Destructor deleting all meshes and spaces that are owned. More...
 
int GetNumLevels () const
 Returns the number of levels in the hierarchy. More...
 
int GetFinestLevelIndex () const
 Returns the index of the finest level. More...
 
void AddLevel (Mesh *mesh, FiniteElementSpace *fespace, Operator *prolongation, bool ownM, bool ownFES, bool ownP)
 Adds one level to the hierarchy. More...
 
OperatorGetProlongationAtLevel (int level) const
 Returns the prolongation operator from the finite element space at level to the finite element space at level + 1. More...
 

Additional Inherited Members

- Protected Attributes inherited from mfem::FiniteElementSpaceHierarchy
Array< Mesh * > meshes
 
Array< FiniteElementSpace * > fespaces
 
Array< Operator * > prolongations
 
Array< bool > ownedMeshes
 
Array< bool > ownedFES
 
Array< bool > ownedProlongations
 

Detailed Description

Definition at line 91 of file fespacehierarchy.hpp.

Constructor & Destructor Documentation

◆ ParFiniteElementSpaceHierarchy() [1/2]

mfem::ParFiniteElementSpaceHierarchy::ParFiniteElementSpaceHierarchy ( )
default

◆ ParFiniteElementSpaceHierarchy() [2/2]

mfem::ParFiniteElementSpaceHierarchy::ParFiniteElementSpaceHierarchy ( ParMesh mesh,
ParFiniteElementSpace fespace,
bool  ownM,
bool  ownFES 
)

Constructs a parallel space hierarchy with the given mesh and spaces on level zero.

The ownership of the mesh and space may be transferred to the ParFiniteElementSpaceHierarchy by setting the according boolean variables.

Definition at line 132 of file fespacehierarchy.cpp.

Member Function Documentation

◆ AddOrderRefinedLevel()

void mfem::ParFiniteElementSpaceHierarchy::AddOrderRefinedLevel ( FiniteElementCollection fec,
int  dim = 1,
int  ordering = Ordering::byVDIM 
)
overridevirtual

Adds one level to the hierarchy by using a different finite element order defined through FiniteElementCollection.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 152 of file fespacehierarchy.cpp.

◆ AddUniformlyRefinedLevel()

void mfem::ParFiniteElementSpaceHierarchy::AddUniformlyRefinedLevel ( int  dim = 1,
int  ordering = Ordering::byVDIM 
)
overridevirtual

Adds one level to the hierarchy by uniformly refining the mesh on the previous level.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 140 of file fespacehierarchy.cpp.

◆ GetFESpaceAtLevel() [1/2]

const ParFiniteElementSpace & mfem::ParFiniteElementSpaceHierarchy::GetFESpaceAtLevel ( int  level) const
overridevirtual

Returns the finite element space at the given level.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 164 of file fespacehierarchy.cpp.

◆ GetFESpaceAtLevel() [2/2]

ParFiniteElementSpace & mfem::ParFiniteElementSpaceHierarchy::GetFESpaceAtLevel ( int  level)
overridevirtual

Returns the finite element space at the given level.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 170 of file fespacehierarchy.cpp.

◆ GetFinestFESpace() [1/2]

const ParFiniteElementSpace & mfem::ParFiniteElementSpaceHierarchy::GetFinestFESpace ( ) const
overridevirtual

Returns the finite element space at the finest level.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 177 of file fespacehierarchy.cpp.

◆ GetFinestFESpace() [2/2]

ParFiniteElementSpace & mfem::ParFiniteElementSpaceHierarchy::GetFinestFESpace ( )
overridevirtual

Returns the finite element space at the finest level.

Reimplemented from mfem::FiniteElementSpaceHierarchy.

Definition at line 183 of file fespacehierarchy.cpp.


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