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

This class manages the storage and computation of the interpolations from master (coarse) face to slave (fine) face. More...

#include <restriction.hpp>

Collaboration diagram for mfem::InterpolationManager:
[legend]

Public Member Functions

 InterpolationManager ()=delete
 
 InterpolationManager (const FiniteElementSpace &fes, ElementDofOrdering ordering, FaceType type)
 main constructor. More...
 
void RegisterFaceConformingInterpolation (const Mesh::FaceInformation &face, int face_index)
 Register the face with face and index face_index as a conforming face for the interpolation of the degrees of freedom. More...
 
void RegisterFaceCoarseToFineInterpolation (const Mesh::FaceInformation &face, int face_index)
 Register the face with face and index face_index as a conforming face for the interpolation of the degrees of freedom. More...
 
void LinearizeInterpolatorMapIntoVector ()
 Transform the interpolation matrix map into a contiguous memory structure. More...
 
void InitializeNCInterpConfig ()
 
int GetNumInterpolators () const
 Return the total number of interpolators. More...
 
const VectorGetInterpolators () const
 Return an mfem::Vector containing the interpolators in the following format: face_dofs x face_dofs x num_interpolators. More...
 
const Array< InterpConfig > & GetFaceInterpConfig () const
 Return an array containing the interpolation configuration for each face registered with RegisterFaceConformingInterpolation and RegisterFaceCoarseToFineInterpolation. More...
 
const Array< NCInterpConfig > & GetNCFaceInterpConfig () const
 Return an array containing the interpolation configuration for each face registered with RegisterFaceConformingInterpolation and RegisterFaceCoarseToFineInterpolation. More...
 

Protected Types

using Key = std::pair< const DenseMatrix *, int >
 
using Map = std::map< Key, std::pair< int, const DenseMatrix * > >
 The temporary map used to store the different interpolators. More...
 

Protected Attributes

const FiniteElementSpacefes
 
const ElementDofOrdering ordering
 
Array< InterpConfiginterp_config
 
Array< NCInterpConfignc_interp_config
 
Vector interpolators
 
int nc_cpt
 
Map interp_map
 

Detailed Description

This class manages the storage and computation of the interpolations from master (coarse) face to slave (fine) face.

Definition at line 674 of file restriction.hpp.

Member Typedef Documentation

◆ Key

using mfem::InterpolationManager::Key = std::pair<const DenseMatrix*,int>
protected

The interpolators are associated to a key of containing the address of PointMatrix and a local face identifier.

Definition at line 686 of file restriction.hpp.

◆ Map

using mfem::InterpolationManager::Map = std::map<Key, std::pair<int,const DenseMatrix*> >
protected

The temporary map used to store the different interpolators.

Definition at line 688 of file restriction.hpp.

Constructor & Destructor Documentation

◆ InterpolationManager() [1/2]

mfem::InterpolationManager::InterpolationManager ( )
delete

◆ InterpolationManager() [2/2]

mfem::InterpolationManager::InterpolationManager ( const FiniteElementSpace fes,
ElementDofOrdering  ordering,
FaceType  type 
)

main constructor.

Parameters
[in]fesThe FiniteElementSpace on which this operates
[in]orderingRequest a specific element ordering.
[in]typeRequest internal or boundary faces dofs

Definition at line 1672 of file restriction.cpp.

Member Function Documentation

◆ GetFaceInterpConfig()

const Array<InterpConfig>& mfem::InterpolationManager::GetFaceInterpConfig ( ) const
inline

Return an array containing the interpolation configuration for each face registered with RegisterFaceConformingInterpolation and RegisterFaceCoarseToFineInterpolation.

Definition at line 744 of file restriction.hpp.

◆ GetInterpolators()

const Vector& mfem::InterpolationManager::GetInterpolators ( ) const
inline

Return an mfem::Vector containing the interpolators in the following format: face_dofs x face_dofs x num_interpolators.

Definition at line 736 of file restriction.hpp.

◆ GetNCFaceInterpConfig()

const Array<NCInterpConfig>& mfem::InterpolationManager::GetNCFaceInterpConfig ( ) const
inline

Return an array containing the interpolation configuration for each face registered with RegisterFaceConformingInterpolation and RegisterFaceCoarseToFineInterpolation.

Definition at line 752 of file restriction.hpp.

◆ GetNumInterpolators()

int mfem::InterpolationManager::GetNumInterpolators ( ) const
inline

Return the total number of interpolators.

Definition at line 729 of file restriction.hpp.

◆ InitializeNCInterpConfig()

void mfem::InterpolationManager::InitializeNCInterpConfig ( )

Definition at line 1813 of file restriction.cpp.

◆ LinearizeInterpolatorMapIntoVector()

void mfem::InterpolationManager::LinearizeInterpolatorMapIntoVector ( )

Transform the interpolation matrix map into a contiguous memory structure.

Definition at line 1787 of file restriction.cpp.

◆ RegisterFaceCoarseToFineInterpolation()

void mfem::InterpolationManager::RegisterFaceCoarseToFineInterpolation ( const Mesh::FaceInformation face,
int  face_index 
)

Register the face with face and index face_index as a conforming face for the interpolation of the degrees of freedom.

Parameters
[in]faceThe face information of the current face.
[in]face_indexThe interior/boundary face index.

Definition at line 1688 of file restriction.cpp.

◆ RegisterFaceConformingInterpolation()

void mfem::InterpolationManager::RegisterFaceConformingInterpolation ( const Mesh::FaceInformation face,
int  face_index 
)

Register the face with face and index face_index as a conforming face for the interpolation of the degrees of freedom.

Parameters
[in]faceThe face information of the current face.
[in]face_indexThe interior/boundary face index.

Definition at line 1681 of file restriction.cpp.

Member Data Documentation

◆ fes

const FiniteElementSpace& mfem::InterpolationManager::fes
protected

Definition at line 677 of file restriction.hpp.

◆ interp_config

Array<InterpConfig> mfem::InterpolationManager::interp_config
protected

Definition at line 679 of file restriction.hpp.

◆ interp_map

Map mfem::InterpolationManager::interp_map
protected

Definition at line 689 of file restriction.hpp.

◆ interpolators

Vector mfem::InterpolationManager::interpolators
protected

Definition at line 681 of file restriction.hpp.

◆ nc_cpt

int mfem::InterpolationManager::nc_cpt
protected

Definition at line 682 of file restriction.hpp.

◆ nc_interp_config

Array<NCInterpConfig> mfem::InterpolationManager::nc_interp_config
protected

Definition at line 680 of file restriction.hpp.

◆ ordering

const ElementDofOrdering mfem::InterpolationManager::ordering
protected

Definition at line 678 of file restriction.hpp.


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