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_type > | newAtomIdToEnrichmentIdOffset () const |
std::vector< std::vector< global_size_type > > | overlappingEnrichmentIdsInCells () const |
std::pair< global_size_type, global_size_type > | locallyOwnedEnrichmentIds () const |
std::vector< global_size_type > | ghostEnrichmentIds () const |
size_type | getAtomId (const global_size_type enrichmentId) const |
EnrichmentIdAttribute | getEnrichmentIdAttribute (const global_size_type enrichmentId) const |
size_type | nLocallyOwnedEnrichmentIds () const |
size_type | nLocalEnrichmentIds () const |
global_size_type | nTotalEnrichmentIds () const |
Private Attributes | |
std::vector< global_size_type > | d_newAtomIdToEnrichmentIdOffset |
std::vector< std::vector< global_size_type > > | d_overlappingEnrichmentIdsInCells |
std::vector< global_size_type > | d_enrichmentIdsInProcessor |
std::pair< global_size_type, global_size_type > | d_locallyOwnedEnrichmentIds |
std::vector< global_size_type > | d_ghostEnrichmentIds |
std::map< global_size_type, size_type > | d_enrichmentIdToOldAtomIdMap |
std::map< global_size_type, size_type > | d_enrichmentIdToQuantumIdMap |
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.
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.
[in] | atomIdsPartition | Object of class AtomIdsPartition |
[in] | atomSphericalDataContainer | Object of class AtomSphericalDataContainer |
[in] | atomCoordinates | Vector of Coordinates of the atoms |
[in] | fieldName | Fieldname wanted |
[in] | minbound | Minimum boundary of the processor |
[in] | maxbound | Maximum boundary of the processor |
[in] | cellVerticesVector | vector of vectors of all the coordinates of the locally owned cells in the processor |
[in] | comm | MPI_Comm object if defined with MPI |
|
default |
Destructor.
size_type dftefe::basis::EnrichmentIdsPartition< dim >::getAtomId | ( | const global_size_type | enrichmentId | ) | const |
EnrichmentIdAttribute dftefe::basis::EnrichmentIdsPartition< dim >::getEnrichmentIdAttribute | ( | const global_size_type | enrichmentId | ) | const |
std::vector< global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::ghostEnrichmentIds |
std::pair< global_size_type, global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::locallyOwnedEnrichmentIds |
std::vector< global_size_type > dftefe::basis::EnrichmentIdsPartition< dim >::newAtomIdToEnrichmentIdOffset |
size_type dftefe::basis::EnrichmentIdsPartition< dim >::nLocalEnrichmentIds |
size_type dftefe::basis::EnrichmentIdsPartition< dim >::nLocallyOwnedEnrichmentIds |
global_size_type dftefe::basis::EnrichmentIdsPartition< dim >::nTotalEnrichmentIds |
std::vector< std::vector< global_size_type > > dftefe::basis::EnrichmentIdsPartition< dim >::overlappingEnrichmentIdsInCells |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
The data members are as follows.
|
private |