DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > Class Template Reference

An abstract class to encapsulate the partitioning of a finite element basis across multiple processors. More...

#include <FEBasisManager.h>

Inheritance diagram for dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >:
Collaboration diagram for dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >:

Public Types

using SizeTypeVector = typename BasisManager< ValueTypeBasisCoeff, memorySpace >::SizeTypeVector
 
using GlobalSizeTypeVector = typename BasisManager< ValueTypeBasisCoeff, memorySpace >::GlobalSizeTypeVector
 
using LocalIndexIter = typename SizeTypeVector::iterator
 
using const_LocalIndexIter = typename SizeTypeVector::const_iterator
 
using GlobalIndexIter = typename GlobalSizeTypeVector::iterator
 
using const_GlobalIndexIter = typename GlobalSizeTypeVector::const_iterator
 
- Public Types inherited from dftefe::basis::BasisManager< ValueTypeBasisCoeff, memorySpace >
using SizeTypeVector = utils::MemoryStorage< size_type, memorySpace >
 
using GlobalSizeTypeVector = utils::MemoryStorage< global_size_type, memorySpace >
 
using LocalIndexIter = typename SizeTypeVector::iterator
 
using const_LocalIndexIter = typename SizeTypeVector::const_iterator
 
using GlobalIndexIter = typename GlobalSizeTypeVector::iterator
 
using const_GlobalIndexIter = typename GlobalSizeTypeVector::const_iterator
 

Public Member Functions

 FEBasisManager (std::shared_ptr< const BasisDofHandler > basisDofHandler, std::shared_ptr< const utils::ScalarSpatialFunctionReal > dirichletBoundaryCondition=nullptr)
 
void reinit (std::shared_ptr< const BasisDofHandler > basisDofHandler, std::shared_ptr< const utils::ScalarSpatialFunctionReal > dirichletBoundaryCondition)
 
 ~FEBasisManager ()=default
 
const BasisDofHandlergetBasisDofHandler () const override
 
const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > & getConstraints () const override
 
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P () const override
 
std::vector< std::pair< global_size_type, global_size_type > > getLocallyOwnedRanges () const override
 
const GlobalSizeTypeVectorgetGhostIndices () const override
 
size_type nLocal () const override
 
size_type nLocallyOwned () const override
 
size_type nGhost () const override
 
std::pair< bool, size_typeinLocallyOwnedRanges (const global_size_type globalId) const override
 
std::pair< bool, size_typeisGhostEntry (const global_size_type ghostId) const override
 
size_type globalToLocalIndex (const global_size_type globalId) const override
 
global_size_type localToGlobalIndex (const size_type localId) const override
 
void getBasisCenters (const size_type localId, dftefe::utils::Point &basisCenter) const override
 
size_type nLocallyOwnedCells () const
 
size_type nLocallyOwnedCellDofs (const size_type cellId) const
 
size_type nCumulativeLocallyOwnedCellDofs () const
 
const_GlobalIndexIter locallyOwnedCellGlobalDofIdsBegin () const
 
const_GlobalIndexIter locallyOwnedCellGlobalDofIdsBegin (const size_type cellId) const
 
const_GlobalIndexIter locallyOwnedCellGlobalDofIdsEnd (const size_type cellId) const
 
const_LocalIndexIter locallyOwnedCellLocalDofIdsBegin () const
 
const_LocalIndexIter locallyOwnedCellLocalDofIdsBegin (const size_type cellId) const
 
const_LocalIndexIter locallyOwnedCellLocalDofIdsEnd (const size_type cellId) const
 
void getCellDofsLocalIds (const size_type cellId, std::vector< size_type > &vecLocalNodeId) const
 
- Public Member Functions inherited from dftefe::basis::BasisManager< ValueTypeBasisCoeff, memorySpace >
 ~BasisManager ()=default
 
virtual const BasisDofHandlergetBasisDofHandler () const =0
 
virtual const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > & getConstraints () const =0
 
virtual std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P () const =0
 
virtual std::vector< std::pair< global_size_type, global_size_type > > getLocallyOwnedRanges () const =0
 
virtual const GlobalSizeTypeVectorgetGhostIndices () const =0
 
virtual size_type nLocal () const =0
 
virtual size_type nLocallyOwned () const =0
 
virtual size_type nGhost () const =0
 
virtual std::pair< bool, size_typeinLocallyOwnedRanges (const global_size_type globalId) const =0
 
virtual std::pair< bool, size_typeisGhostEntry (const global_size_type ghostId) const =0
 
virtual size_type globalToLocalIndex (const global_size_type globalId) const =0
 
virtual global_size_type localToGlobalIndex (const size_type localId) const =0
 
virtual void getBasisCenters (const size_type localId, dftefe::utils::Point &basisCenter) const =0
 

Private Attributes

std::shared_ptr< const FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim > > d_feBDH
 
std::shared_ptr< const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > d_constraintsLocal
 
std::vector< std::pair< global_size_type, global_size_type > > d_locallyOwnedRanges
 
std::vector< size_typed_locallyOwnedCellStartIds
 
GlobalSizeTypeVector d_locallyOwnedCellGlobalIndices
 
std::vector< size_typed_numLocallyOwnedCellDofs
 
std::shared_ptr< GlobalSizeTypeVectord_ghostIndices
 
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
 
std::shared_ptr< SizeTypeVectord_locallyOwnedCellLocalIndices
 
std::map< global_size_type, utils::Pointd_supportPoints
 

Detailed Description

template<typename ValueTypeBasisCoeff, typename ValueTypeBasisData, dftefe::utils::MemorySpace memorySpace, size_type dim>
class dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >

An abstract class to encapsulate the partitioning of a finite element basis across multiple processors.

Member Typedef Documentation

◆ const_GlobalIndexIter

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_GlobalIndexIter = typename GlobalSizeTypeVector::const_iterator

◆ const_LocalIndexIter

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_LocalIndexIter = typename SizeTypeVector::const_iterator

◆ GlobalIndexIter

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::GlobalIndexIter = typename GlobalSizeTypeVector::iterator

◆ GlobalSizeTypeVector

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::GlobalSizeTypeVector = typename BasisManager<ValueTypeBasisCoeff, memorySpace>::GlobalSizeTypeVector

◆ LocalIndexIter

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::LocalIndexIter = typename SizeTypeVector::iterator

◆ SizeTypeVector

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::SizeTypeVector = typename BasisManager<ValueTypeBasisCoeff, memorySpace>::SizeTypeVector

Constructor & Destructor Documentation

◆ FEBasisManager()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::FEBasisManager ( std::shared_ptr< const BasisDofHandler basisDofHandler,
std::shared_ptr< const utils::ScalarSpatialFunctionReal dirichletBoundaryCondition = nullptr 
)

◆ ~FEBasisManager()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::~FEBasisManager ( )
default

Member Function Documentation

◆ getBasisCenters()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getBasisCenters ( const size_type  localId,
dftefe::utils::Point basisCenter 
) const
overridevirtual

Implements dftefe::basis::BasisManager< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

◆ getBasisDofHandler()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
const BasisDofHandler & dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getBasisDofHandler
overridevirtual

◆ getCellDofsLocalIds()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getCellDofsLocalIds ( const size_type  cellId,
std::vector< size_type > &  vecLocalNodeId 
) const

◆ getConstraints()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > & dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getConstraints
overridevirtual

Implements dftefe::basis::BasisManager< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ getGhostIndices()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
const FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::GlobalSizeTypeVector & dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getGhostIndices
overridevirtual

◆ getLocallyOwnedRanges()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::vector< std::pair< global_size_type, global_size_type > > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getLocallyOwnedRanges
overridevirtual

◆ getMPIPatternP2P()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::getMPIPatternP2P
overridevirtual

Implements dftefe::basis::BasisManager< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ globalToLocalIndex()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::globalToLocalIndex ( const global_size_type  globalId) const
overridevirtual

◆ inLocallyOwnedRanges()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::pair< bool, size_type > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::inLocallyOwnedRanges ( const global_size_type  globalId) const
overridevirtual

◆ isGhostEntry()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::pair< bool, size_type > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::isGhostEntry ( const global_size_type  ghostId) const
overridevirtual

◆ locallyOwnedCellGlobalDofIdsBegin() [1/2]

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_GlobalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellGlobalDofIdsBegin

◆ locallyOwnedCellGlobalDofIdsBegin() [2/2]

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_GlobalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellGlobalDofIdsBegin ( const size_type  cellId) const

◆ locallyOwnedCellGlobalDofIdsEnd()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_GlobalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellGlobalDofIdsEnd ( const size_type  cellId) const

◆ locallyOwnedCellLocalDofIdsBegin() [1/2]

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_LocalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellLocalDofIdsBegin
Here is the caller graph for this function:

◆ locallyOwnedCellLocalDofIdsBegin() [2/2]

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_LocalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellLocalDofIdsBegin ( const size_type  cellId) const

◆ locallyOwnedCellLocalDofIdsEnd()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::const_LocalIndexIter dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::locallyOwnedCellLocalDofIdsEnd ( const size_type  cellId) const

◆ localToGlobalIndex()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
global_size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::localToGlobalIndex ( const size_type  localId) const
overridevirtual

◆ nCumulativeLocallyOwnedCellDofs()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nCumulativeLocallyOwnedCellDofs

◆ nGhost()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nGhost
overridevirtual

◆ nLocal()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nLocal
overridevirtual

◆ nLocallyOwned()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nLocallyOwned
overridevirtual

◆ nLocallyOwnedCellDofs()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nLocallyOwnedCellDofs ( const size_type  cellId) const
Here is the caller graph for this function:

◆ nLocallyOwnedCells()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::nLocallyOwnedCells
Here is the caller graph for this function:

◆ reinit()

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::reinit ( std::shared_ptr< const BasisDofHandler basisDofHandler,
std::shared_ptr< const utils::ScalarSpatialFunctionReal dirichletBoundaryCondition 
)
Here is the call graph for this function:

Member Data Documentation

◆ d_constraintsLocal

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<const ConstraintsLocal<ValueTypeBasisCoeff, memorySpace> > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_constraintsLocal
private

◆ d_feBDH

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr< const FEBasisDofHandler<ValueTypeBasisCoeff, memorySpace, dim> > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_feBDH
private

◆ d_ghostIndices

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<GlobalSizeTypeVector> dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_ghostIndices
private

◆ d_locallyOwnedCellGlobalIndices

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
GlobalSizeTypeVector dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_locallyOwnedCellGlobalIndices
private

◆ d_locallyOwnedCellLocalIndices

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<SizeTypeVector> dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_locallyOwnedCellLocalIndices
private

◆ d_locallyOwnedCellStartIds

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::vector<size_type> dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_locallyOwnedCellStartIds
private

◆ d_locallyOwnedRanges

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::vector<std::pair<global_size_type, global_size_type> > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_locallyOwnedRanges
private

◆ d_mpiPatternP2P

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace> > dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_mpiPatternP2P
private

◆ d_numLocallyOwnedCellDofs

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::vector<size_type> dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_numLocallyOwnedCellDofs
private

◆ d_supportPoints

template<typename ValueTypeBasisCoeff , typename ValueTypeBasisData , dftefe::utils::MemorySpace memorySpace, size_type dim>
std::map<global_size_type, utils::Point> dftefe::basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::d_supportPoints
private

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