MFEM  v3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Public Attributes | List of all members
mfem::ParFiniteElementSpace Class Reference

Abstract parallel finite element space. More...

#include <pfespace.hpp>

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

Public Member Functions

 ParFiniteElementSpace (ParMesh *pm, const FiniteElementCollection *f, int dim=1, int order=Ordering::byNODES)
 
MPI_Comm GetComm ()
 
int GetNRanks ()
 
int GetMyRank ()
 
ParMeshGetParMesh ()
 
int TrueVSize ()
 
int * GetDofOffsets ()
 
int * GetTrueDofOffsets ()
 
int GlobalVSize ()
 
int GlobalTrueVSize ()
 
int GetDofSign (int i)
 
virtual void GetElementDofs (int i, Array< int > &dofs) const
 Returns indexes of degrees of freedom in array dofs for i'th element. More...
 
virtual void GetBdrElementDofs (int i, Array< int > &dofs) const
 Returns indexes of degrees of freedom for i'th boundary element. More...
 
virtual void GetFaceDofs (int i, Array< int > &dofs) const
 
HypreParMatrixDof_TrueDof_Matrix ()
 The true dof-to-dof interpolation matrix. More...
 
HypreParVectorNewTrueDofVector ()
 
void DivideByGroupSize (double *vec)
 Scale a vector of true dofs. More...
 
GroupCommunicatorGroupComm ()
 Return a reference to the internal GroupCommunicator (on VDofs) More...
 
GroupCommunicatorScalarGroupComm ()
 Return a new GroupCommunicator on Dofs. More...
 
void Synchronize (Array< int > &ldof_marker) const
 
virtual void GetEssentialVDofs (const Array< int > &bdr_attr_is_ess, Array< int > &ess_dofs) const
 Determine the boundary degrees of freedom. More...
 
int GetLocalTDofNumber (int ldof)
 
int GetGlobalTDofNumber (int ldof)
 Returns the global tdof number of the given local degree of freedom. More...
 
int GetGlobalScalarTDofNumber (int sldof)
 
int GetMyDofOffset ()
 
void ExchangeFaceNbrData ()
 
int GetFaceNbrVSize () const
 
void GetFaceNbrElementVDofs (int i, Array< int > &vdofs) const
 
const FiniteElementGetFaceNbrFE (int i) const
 
int * GetFaceNbrGlobalDofMap ()
 
void Lose_Dof_TrueDof_Matrix ()
 
void LoseDofOffsets ()
 
void LoseTrueDofOffsets ()
 
virtual void Update ()
 
virtual FiniteElementSpaceSaveUpdate ()
 Return a copy of the current FE space and update. More...
 
virtual ~ParFiniteElementSpace ()
 
- Public Member Functions inherited from mfem::FiniteElementSpace
 FiniteElementSpace (Mesh *m, const FiniteElementCollection *f, int dim=1, int order=Ordering::byNODES)
 
MeshGetMesh () const
 Returns the mesh. More...
 
NURBSExtensionGetNURBSext ()
 
NURBSExtensionStealNURBSext ()
 
SparseMatrixGetConformingProlongation ()
 
const SparseMatrixGetConformingProlongation () const
 
SparseMatrixGetConformingRestriction ()
 
const SparseMatrixGetConformingRestriction () const
 
int GetVDim () const
 Returns vector dimension. More...
 
int GetOrder (int i) const
 Returns the order of the i'th finite element. More...
 
int GetNDofs () const
 Returns number of degrees of freedom. More...
 
int GetVSize () const
 
int GetNConformingDofs () const
 
int GetConformingVSize () const
 
int GetOrdering () const
 Return the ordering method. More...
 
const FiniteElementCollectionFEColl () const
 
int GetNVDofs () const
 
int GetNEDofs () const
 
int GetNFDofs () const
 
int GetNE () const
 Returns number of elements in the mesh. More...
 
int GetNV () const
 Returns number of nodes in the mesh. More...
 
int GetNBE () const
 Returns number of boundary elements in the mesh. More...
 
int GetElementType (int i) const
 Returns the type of element i. More...
 
void GetElementVertices (int i, Array< int > &vertices) const
 Returns the vertices of element i. More...
 
int GetBdrElementType (int i) const
 Returns the type of boundary element i. More...
 
ElementTransformationGetElementTransformation (int i) const
 Returns ElementTransformation for the i'th element. More...
 
void GetElementTransformation (int i, IsoparametricTransformation *ElTr)
 
ElementTransformationGetBdrElementTransformation (int i) const
 Returns ElementTransformation for the i'th boundary element. More...
 
int GetAttribute (int i) const
 
int GetBdrAttribute (int i) const
 
void GetEdgeDofs (int i, Array< int > &dofs) const
 
void GetVertexDofs (int i, Array< int > &dofs) const
 
void GetElementInteriorDofs (int i, Array< int > &dofs) const
 
void GetEdgeInteriorDofs (int i, Array< int > &dofs) const
 
void DofsToVDofs (Array< int > &dofs) const
 
void DofsToVDofs (int vd, Array< int > &dofs) const
 
int DofToVDof (int dof, int vd) const
 
int VDofToDof (int vdof) const
 
void GetElementVDofs (int i, Array< int > &dofs) const
 Returns indexes of degrees of freedom in array dofs for i'th element. More...
 
void GetBdrElementVDofs (int i, Array< int > &dofs) const
 Returns indexes of degrees of freedom for i'th boundary element. More...
 
void GetFaceVDofs (int iF, Array< int > &dofs) const
 Returns indexes of degrees of freedom for i'th face element (2D and 3D). More...
 
void GetEdgeVDofs (int iE, Array< int > &dofs) const
 Returns indexes of degrees of freedom for i'th edge. More...
 
void GetElementInteriorVDofs (int i, Array< int > &vdofs) const
 
void GetEdgeInteriorVDofs (int i, Array< int > &vdofs) const
 
void BuildElementToDofTable ()
 
void BuildDofToArrays ()
 
const TableGetElementToDofTable () const
 
int GetElementForDof (int i)
 
int GetLocalDofForDof (int i)
 
const FiniteElementGetFE (int i) const
 Returns pointer to the FiniteElement associated with i'th element. More...
 
const FiniteElementGetBE (int i) const
 Returns pointer to the FiniteElement for the i'th boundary element. More...
 
const FiniteElementGetFaceElement (int i) const
 
const FiniteElementGetEdgeElement (int i) const
 
const FiniteElementGetTraceElement (int i, int geom_type) const
 Return the trace element from element 'i' to the given 'geom_type'. More...
 
SparseMatrixGlobalRestrictionMatrix (FiniteElementSpace *cfes, int one_vdim=-1)
 
void ConvertToConformingVDofs (const Array< int > &dofs, Array< int > &cdofs)
 
void ConvertFromConformingVDofs (const Array< int > &cdofs, Array< int > &dofs)
 
void EliminateEssentialBCFromGRM (FiniteElementSpace *cfes, Array< int > &bdr_attr_is_ess, SparseMatrix *R)
 
SparseMatrixGlobalRestrictionMatrix (FiniteElementSpace *cfes, Array< int > &bdr_attr_is_ess, int one_vdim=-1)
 Generate the global restriction matrix with eliminated essential bc. More...
 
SparseMatrixD2C_GlobalRestrictionMatrix (FiniteElementSpace *cfes)
 
SparseMatrixD2Const_GlobalRestrictionMatrix (FiniteElementSpace *cfes)
 
SparseMatrixH2L_GlobalRestrictionMatrix (FiniteElementSpace *lfes)
 
virtual void UpdateAndInterpolate (int num_grid_fns,...)
 
void UpdateAndInterpolate (GridFunction *gf)
 A shortcut for passing only one GridFunction to UndateAndInterpolate. More...
 
void Save (std::ostream &out) const
 
virtual ~FiniteElementSpace ()
 

Public Attributes

int num_face_nbr_dofs
 
Table face_nbr_element_dof
 
Table face_nbr_gdof
 
Table send_face_nbr_ldof
 

Additional Inherited Members

- Static Public Member Functions inherited from mfem::FiniteElementSpace
static void AdjustVDofs (Array< int > &vdofs)
 
- Protected Member Functions inherited from mfem::FiniteElementSpace
void MarkDependency (const SparseMatrix *D, const Array< int > &row_marker, Array< int > &col_marker)
 
void UpdateNURBS ()
 
void Constructor ()
 
void Destructor ()
 
 FiniteElementSpace (FiniteElementSpace &)
 
void ConstructRefinementData (int k, int cdofs, RefinementType type)
 Constructs new refinement data using coarse element k as a template. More...
 
DenseMatrixLocalInterpolation (int k, int cdofs, RefinementType type, Array< int > &rows)
 Generates the local interpolation matrix for coarse element k. More...
 
SparseMatrixNC_GlobalRestrictionMatrix (FiniteElementSpace *cfes, NCMesh *ncmesh)
 
- Protected Attributes inherited from mfem::FiniteElementSpace
Meshmesh
 The mesh that FE space lives on. More...
 
int vdim
 Vector dimension (number of unknowns per degree of freedom). More...
 
int ndofs
 Number of degrees of freedom. Number of unknowns are ndofs*vdim. More...
 
int ordering
 
const FiniteElementCollectionfec
 
int nvdofs
 
int nedofs
 
int nfdofs
 
int nbdofs
 
int * fdofs
 
int * bdofs
 
Array< RefinementData * > RefData
 Collection of currently known refinement data. More...
 
Tableelem_dof
 
TablebdrElem_dof
 
Array< int > dof_elem_array
 
Array< int > dof_ldof_array
 
NURBSExtensionNURBSext
 
int own_ext
 
SparseMatrixcP
 
SparseMatrixcR
 

Detailed Description

Abstract parallel finite element space.

Definition at line 28 of file pfespace.hpp.

Constructor & Destructor Documentation

mfem::ParFiniteElementSpace::ParFiniteElementSpace ( ParMesh pm,
const FiniteElementCollection f,
int  dim = 1,
int  order = Ordering::byNODES 
)

Definition at line 47 of file pfespace.cpp.

virtual mfem::ParFiniteElementSpace::~ParFiniteElementSpace ( )
inlinevirtual

Definition at line 173 of file pfespace.hpp.

Member Function Documentation

void mfem::ParFiniteElementSpace::DivideByGroupSize ( double *  vec)

Scale a vector of true dofs.

Definition at line 401 of file pfespace.cpp.

HypreParMatrix * mfem::ParFiniteElementSpace::Dof_TrueDof_Matrix ( )

The true dof-to-dof interpolation matrix.

Definition at line 303 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::ExchangeFaceNbrData ( )

Definition at line 496 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::GetBdrElementDofs ( int  i,
Array< int > &  dofs 
) const
virtual

Returns indexes of degrees of freedom for i'th boundary element.

Reimplemented from mfem::FiniteElementSpace.

Definition at line 234 of file pfespace.cpp.

MPI_Comm mfem::ParFiniteElementSpace::GetComm ( )
inline

Definition at line 99 of file pfespace.hpp.

int* mfem::ParFiniteElementSpace::GetDofOffsets ( )
inline

Definition at line 106 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GetDofSign ( int  i)
inline

Definition at line 110 of file pfespace.hpp.

void mfem::ParFiniteElementSpace::GetElementDofs ( int  i,
Array< int > &  dofs 
) const
virtual

Returns indexes of degrees of freedom in array dofs for i'th element.

Reimplemented from mfem::FiniteElementSpace.

Definition at line 223 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::GetEssentialVDofs ( const Array< int > &  bdr_attr_is_ess,
Array< int > &  ess_dofs 
) const
virtual

Determine the boundary degrees of freedom.

Reimplemented from mfem::FiniteElementSpace.

Definition at line 430 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::GetFaceDofs ( int  i,
Array< int > &  dofs 
) const
virtual

Returns the indexes of the degrees of freedom for i'th face including the dofs for the edges and the vertices of the face.

Reimplemented from mfem::FiniteElementSpace.

Definition at line 245 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::GetFaceNbrElementVDofs ( int  i,
Array< int > &  vdofs 
) const

Definition at line 689 of file pfespace.cpp.

const FiniteElement * mfem::ParFiniteElementSpace::GetFaceNbrFE ( int  i) const

Definition at line 695 of file pfespace.cpp.

int* mfem::ParFiniteElementSpace::GetFaceNbrGlobalDofMap ( )
inline

Definition at line 163 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GetFaceNbrVSize ( ) const
inline

Definition at line 160 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GetGlobalScalarTDofNumber ( int  sldof)

Returns the global tdof number of the given local degree of freedom in the scalar vesion of the current finite element space. The input should be a scalar local dof.

Definition at line 462 of file pfespace.cpp.

int mfem::ParFiniteElementSpace::GetGlobalTDofNumber ( int  ldof)

Returns the global tdof number of the given local degree of freedom.

Definition at line 448 of file pfespace.cpp.

int mfem::ParFiniteElementSpace::GetLocalTDofNumber ( int  ldof)

If the given ldof is owned by the current processor, return its local tdof number, otherwise return -1

Definition at line 440 of file pfespace.cpp.

int mfem::ParFiniteElementSpace::GetMyDofOffset ( )

Definition at line 488 of file pfespace.cpp.

int mfem::ParFiniteElementSpace::GetMyRank ( )
inline

Definition at line 101 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GetNRanks ( )
inline

Definition at line 100 of file pfespace.hpp.

ParMesh* mfem::ParFiniteElementSpace::GetParMesh ( )
inline

Definition at line 103 of file pfespace.hpp.

int* mfem::ParFiniteElementSpace::GetTrueDofOffsets ( )
inline

Definition at line 107 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GlobalTrueVSize ( )
inline

Definition at line 109 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::GlobalVSize ( )
inline

Definition at line 108 of file pfespace.hpp.

GroupCommunicator& mfem::ParFiniteElementSpace::GroupComm ( )
inline

Return a reference to the internal GroupCommunicator (on VDofs)

Definition at line 134 of file pfespace.hpp.

void mfem::ParFiniteElementSpace::Lose_Dof_TrueDof_Matrix ( )

Definition at line 708 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::LoseDofOffsets ( )
inline

Definition at line 166 of file pfespace.hpp.

void mfem::ParFiniteElementSpace::LoseTrueDofOffsets ( )
inline

Definition at line 167 of file pfespace.hpp.

HypreParVector* mfem::ParFiniteElementSpace::NewTrueDofVector ( )
inline

Create and return a new HypreParVector on the true dofs, which is owned by (i.e. it must be destroyed by) the calling function.

Definition at line 127 of file pfespace.hpp.

FiniteElementSpace * mfem::ParFiniteElementSpace::SaveUpdate ( )
virtual

Return a copy of the current FE space and update.

Reimplemented from mfem::FiniteElementSpace.

Definition at line 823 of file pfespace.cpp.

GroupCommunicator * mfem::ParFiniteElementSpace::ScalarGroupComm ( )

Return a new GroupCommunicator on Dofs.

Definition at line 410 of file pfespace.cpp.

void mfem::ParFiniteElementSpace::Synchronize ( Array< int > &  ldof_marker) const

Given an integer array on the local degrees of freedom, perform a bitwise OR between the shared dofs.

Definition at line 420 of file pfespace.cpp.

int mfem::ParFiniteElementSpace::TrueVSize ( )
inline

Definition at line 105 of file pfespace.hpp.

void mfem::ParFiniteElementSpace::Update ( )
virtual

Reimplemented from mfem::FiniteElementSpace.

Definition at line 801 of file pfespace.cpp.

Member Data Documentation

Table mfem::ParFiniteElementSpace::face_nbr_element_dof

Definition at line 91 of file pfespace.hpp.

Table mfem::ParFiniteElementSpace::face_nbr_gdof

Definition at line 92 of file pfespace.hpp.

int mfem::ParFiniteElementSpace::num_face_nbr_dofs

Definition at line 90 of file pfespace.hpp.

Table mfem::ParFiniteElementSpace::send_face_nbr_ldof

Definition at line 94 of file pfespace.hpp.


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