DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::basis::EnrichmentIdsPartition< dim > Class Template Reference

Class to get the gost and locally owned enrichment ids from the renumbered atom ids in Atom Partition i.e. memory layout should be 'locally owned enrichment ids which would be contiguous' -> 'ghost enrichment ids' The class gives us the vector of cell enrichment Ids, locallyowned enrichment ids range, ghost enrichment ids. More...

#include <EnrichmentIdsPartition.h>

Public Member Functions

 EnrichmentIdsPartition (std::shared_ptr< const atoms::AtomSphericalDataContainer > atomSphericalDataContainer, std::shared_ptr< const AtomIdsPartition< dim > > atomIdsPartition, const std::vector< std::string > &atomSymbol, const std::vector< utils::Point > &atomCoordinates, const std::string fieldName, const std::vector< double > &minbound, const std::vector< double > &maxbound, double additionalCutoff, const std::vector< utils::Point > &globalDomainBoundVec, const std::vector< bool > &isPeriodicFlags, const std::vector< std::vector< utils::Point > > &cellVerticesVector, const utils::mpi::MPIComm &comm)
 Constructor takes as coordinates of the atomids , vector of aomsymbol from the input file with the processor maximum and minimum bounds. It also takes the cell vertices vector and the fieldname. More...
 
 ~EnrichmentIdsPartition ()=default
 Destructor. More...
 
std::vector< global_size_typenewAtomIdToEnrichmentIdOffset () const
 
std::vector< std::vector< global_size_type > > overlappingEnrichmentIdsInCells () const
 
std::pair< global_size_type, global_size_typelocallyOwnedEnrichmentIds () const
 
std::vector< global_size_typeghostEnrichmentIds () const
 
size_type getAtomId (const global_size_type enrichmentId) const
 
std::vector< size_typegetAtomIdsForLocalEnrichments () const
 
std::vector< std::string > getAtomSymbolsForLocalEnrichments () const
 
EnrichmentIdAttribute getEnrichmentIdAttribute (const global_size_type enrichmentId) const
 
size_type nEnrichmentIds (const size_type atomId) const
 
size_type nLocallyOwnedEnrichmentIds () const
 
global_size_type nTotalEnrichmentIds () const
 
std::shared_ptr< const AtomIdsPartition< dim > > getAtomIdsPartition () const
 
void modifyNumCellsOverlapWithEnrichments (const std::vector< std::vector< global_size_type > > &overlappingEnrichmentIdsInCells)
 
size_type nLocalEnrichmentIds () const
 
std::vector< size_typeoverlappingCellsWithLocalEnrichmentIds () const
 
std::vector< size_typelocalToCellLocalEIdsVec () const
 
std::vector< global_size_typelocalToGlobalEnrichmentIds () const
 
std::vector< size_typecellsInLocalEIdVec () const
 

Private Attributes

std::vector< global_size_typed_newAtomIdToEnrichmentIdOffset
 
std::vector< std::vector< global_size_type > > d_overlappingEnrichmentIdsInCells
 
std::pair< global_size_type, global_size_typed_locallyOwnedEnrichmentIds
 
std::vector< global_size_typed_ghostEnrichmentIds
 
std::unordered_map< global_size_type, size_typed_enrichmentIdToOldAtomIdMap
 
std::unordered_map< global_size_type, size_typed_enrichmentIdToQuantumIdMap
 
std::vector< size_typed_oldAtomIdsVec
 
const std::shared_ptr< const AtomIdsPartition< dim > > d_atomIdsPartition
 
const std::shared_ptr< const atoms::AtomSphericalDataContainer > d_atomSphericalDataContainer
 
std::string d_fieldName
 
const std::vector< std::string > & d_atomSymbol
 
std::vector< size_typed_atomIdsForLocalEnrichments
 
std::vector< std::string > d_atomSymbolsForLocalEnrichments
 
std::vector< size_typed_overlappingCellsWithLocalEnrichmentIds
 
std::vector< size_typed_localToCellLocalEIdsVec
 
std::vector< global_size_typed_localToGlobalEnrichmentIds
 
std::vector< size_typed_cellsInLocalEIdVec
 

Detailed Description

template<size_type dim>
class dftefe::basis::EnrichmentIdsPartition< dim >

Class to get the gost and locally owned enrichment ids from the renumbered atom ids in Atom Partition i.e. memory layout should be 'locally owned enrichment ids which would be contiguous' -> 'ghost enrichment ids' The class gives us the vector of cell enrichment Ids, locallyowned enrichment ids range, ghost enrichment ids.

Constructor & Destructor Documentation

◆ EnrichmentIdsPartition()

template<size_type dim>
dftefe::basis::EnrichmentIdsPartition< dim >::EnrichmentIdsPartition ( std::shared_ptr< const atoms::AtomSphericalDataContainer >  atomSphericalDataContainer,
std::shared_ptr< const AtomIdsPartition< dim > >  atomIdsPartition,
const std::vector< std::string > &  atomSymbol,
const std::vector< utils::Point > &  atomCoordinates,
const std::string  fieldName,
const std::vector< double > &  minbound,
const std::vector< double > &  maxbound,
double  additionalCutoff,
const std::vector< utils::Point > &  globalDomainBoundVec,
const std::vector< bool > &  isPeriodicFlags,
const std::vector< std::vector< utils::Point > > &  cellVerticesVector,
const utils::mpi::MPIComm comm 
)

Constructor takes as coordinates of the atomids , vector of aomsymbol from the input file with the processor maximum and minimum bounds. It also takes the cell vertices vector and the fieldname.

Parameters
[in]atomIdsPartitionObject of class AtomIdsPartition
[in]atomSphericalDataContainerObject of class AtomSphericalDataContainer
[in]atomCoordinatesVector of Coordinates of the atoms
[in]fieldNameFieldname wanted
[in]minboundMinimum boundary of the processor
[in]maxboundMaximum boundary of the processor
[in]cellVerticesVectorvector of vectors of all the coordinates of the locally owned cells in the processor
[in]commMPI_Comm object if defined with MPI
Returns

◆ ~EnrichmentIdsPartition()

Destructor.

Member Function Documentation

◆ cellsInLocalEIdVec()

template<size_type dim>
std::vector< size_type > dftefe::basis::EnrichmentIdsPartition< dim >::cellsInLocalEIdVec

◆ getAtomId()

template<size_type dim>
size_type dftefe::basis::EnrichmentIdsPartition< dim >::getAtomId ( const global_size_type  enrichmentId) const
Here is the call graph for this function:

◆ getAtomIdsForLocalEnrichments()

template<size_type dim>
std::vector< size_type > dftefe::basis::EnrichmentIdsPartition< dim >::getAtomIdsForLocalEnrichments

◆ getAtomIdsPartition()

template<size_type dim>
std::shared_ptr< const AtomIdsPartition< dim > > dftefe::basis::EnrichmentIdsPartition< dim >::getAtomIdsPartition

◆ getAtomSymbolsForLocalEnrichments()

template<size_type dim>
std::vector< std::string > dftefe::basis::EnrichmentIdsPartition< dim >::getAtomSymbolsForLocalEnrichments

◆ getEnrichmentIdAttribute()

template<size_type dim>
EnrichmentIdAttribute dftefe::basis::EnrichmentIdsPartition< dim >::getEnrichmentIdAttribute ( const global_size_type  enrichmentId) const

◆ ghostEnrichmentIds()

template<size_type dim>
std::vector< global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::ghostEnrichmentIds

◆ locallyOwnedEnrichmentIds()

template<size_type dim>
std::pair< global_size_type, global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::locallyOwnedEnrichmentIds

◆ localToCellLocalEIdsVec()

template<size_type dim>
std::vector< size_type > dftefe::basis::EnrichmentIdsPartition< dim >::localToCellLocalEIdsVec

◆ localToGlobalEnrichmentIds()

template<size_type dim>
std::vector< global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::localToGlobalEnrichmentIds

◆ modifyNumCellsOverlapWithEnrichments()

template<size_type dim>
void dftefe::basis::EnrichmentIdsPartition< dim >::modifyNumCellsOverlapWithEnrichments ( const std::vector< std::vector< global_size_type > > &  overlappingEnrichmentIdsInCells)

◆ nEnrichmentIds()

template<size_type dim>
size_type dftefe::basis::EnrichmentIdsPartition< dim >::nEnrichmentIds ( const size_type  atomId) const

◆ newAtomIdToEnrichmentIdOffset()

template<size_type dim>
std::vector< global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::newAtomIdToEnrichmentIdOffset

◆ nLocalEnrichmentIds()

template<size_type dim>
size_type dftefe::basis::EnrichmentIdsPartition< dim >::nLocalEnrichmentIds

◆ nLocallyOwnedEnrichmentIds()

template<size_type dim>
size_type dftefe::basis::EnrichmentIdsPartition< dim >::nLocallyOwnedEnrichmentIds

◆ nTotalEnrichmentIds()

template<size_type dim>
global_size_type dftefe::basis::EnrichmentIdsPartition< dim >::nTotalEnrichmentIds

◆ overlappingCellsWithLocalEnrichmentIds()

template<size_type dim>
std::vector< size_type > dftefe::basis::EnrichmentIdsPartition< dim >::overlappingCellsWithLocalEnrichmentIds

◆ overlappingEnrichmentIdsInCells()

template<size_type dim>
std::vector< std::vector< global_size_type > > dftefe::basis::EnrichmentIdsPartition< dim >::overlappingEnrichmentIdsInCells

Member Data Documentation

◆ d_atomIdsForLocalEnrichments

template<size_type dim>
std::vector<size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_atomIdsForLocalEnrichments
private

◆ d_atomIdsPartition

template<size_type dim>
const std::shared_ptr<const AtomIdsPartition<dim> > dftefe::basis::EnrichmentIdsPartition< dim >::d_atomIdsPartition
private

◆ d_atomSphericalDataContainer

template<size_type dim>
const std::shared_ptr<const atoms::AtomSphericalDataContainer> dftefe::basis::EnrichmentIdsPartition< dim >::d_atomSphericalDataContainer
private

◆ d_atomSymbol

template<size_type dim>
const std::vector<std::string>& dftefe::basis::EnrichmentIdsPartition< dim >::d_atomSymbol
private

◆ d_atomSymbolsForLocalEnrichments

template<size_type dim>
std::vector<std::string> dftefe::basis::EnrichmentIdsPartition< dim >::d_atomSymbolsForLocalEnrichments
private

◆ d_cellsInLocalEIdVec

template<size_type dim>
std::vector<size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_cellsInLocalEIdVec
private

◆ d_enrichmentIdToOldAtomIdMap

template<size_type dim>
std::unordered_map<global_size_type, size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_enrichmentIdToOldAtomIdMap
private

◆ d_enrichmentIdToQuantumIdMap

template<size_type dim>
std::unordered_map<global_size_type, size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_enrichmentIdToQuantumIdMap
private

◆ d_fieldName

template<size_type dim>
std::string dftefe::basis::EnrichmentIdsPartition< dim >::d_fieldName
private

◆ d_ghostEnrichmentIds

template<size_type dim>
std::vector<global_size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_ghostEnrichmentIds
private

◆ d_locallyOwnedEnrichmentIds

template<size_type dim>
std::pair<global_size_type, global_size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_locallyOwnedEnrichmentIds
private

◆ d_localToCellLocalEIdsVec

template<size_type dim>
std::vector<size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_localToCellLocalEIdsVec
private

◆ d_localToGlobalEnrichmentIds

template<size_type dim>
std::vector<global_size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_localToGlobalEnrichmentIds
private

◆ d_newAtomIdToEnrichmentIdOffset

template<size_type dim>
std::vector<global_size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_newAtomIdToEnrichmentIdOffset
private

◆ d_oldAtomIdsVec

template<size_type dim>
std::vector<size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_oldAtomIdsVec
private

◆ d_overlappingCellsWithLocalEnrichmentIds

template<size_type dim>
std::vector<size_type> dftefe::basis::EnrichmentIdsPartition< dim >::d_overlappingCellsWithLocalEnrichmentIds
private

◆ d_overlappingEnrichmentIdsInCells

template<size_type dim>
std::vector<std::vector<global_size_type> > dftefe::basis::EnrichmentIdsPartition< dim >::d_overlappingEnrichmentIdsInCells
private

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