|
DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
|
#include <AtomCenteredSphericalFunctionContainer.h>
Public Member Functions | |
| void | init (const std::vector< dftfe::uInt > &atomicNumbers, const std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > &listOfSphericalFunctions) |
| Initialises the class with the atomicNumbers of various atoms and the AtomCenteredSphericalFn of various spherical functions. This function is only called once per run. | |
| void | initaliseCoordinates (const std::vector< double > &atomCoords, const std::vector< std::vector< double > > &periodicCoords, const std::vector< dftfe::Int > &imageIds) |
| Initialises the position of atoms, the image posisiton and image ids after every update of atom positions. | |
| dftfe::uInt | getNumAtomCentersSize () |
| Returns the number of atoms present in domain. | |
| const std::vector< double > & | getAtomCoordinates () const |
| Returns the cooridnates of atom present in domain. | |
| const std::map< dftfe::uInt, std::vector< double > > & | getPeriodicImageCoordinatesList () const |
| Returns the map of atomId vs vector of image coordinates. | |
| dftfe::uInt | getTotalNumberOfSphericalFunctionsPerAtom (dftfe::uInt atomicNumber) |
| Returns the he number of total spherical functions indexed by {ilm} associated with an atomic number. If the atomic number does not exist, it returns a zero. | |
| dftfe::uInt | getTotalNumberOfRadialSphericalFunctionsPerAtom (dftfe::uInt atomicNumber) |
| Returns the he number of radial spherical functions indexed by {i} associated with an atomic number. If the atomic number does not exist, it returns a zero. | |
| dftfe::uInt | getTotalNumberOfSphericalFunctionsInCurrentProcessor () |
| Returns the total number of total spherical functions indexed by {ilm} present in the current processor. If the atomic number does not exist, it returns a zero. | |
| dftfe::uInt | getMaximumNumberOfSphericalFunctions () |
| Returns the maximum number of total spherical functions indexed by {ilm} across all atom Types present in atomNumbers vector. | |
| void | getTotalAtomsAndNonLocalElementsInCurrentProcessor (dftfe::uInt &totalAtomsInCurrentProcessor, dftfe::uInt &totalNonLocalElements, std::vector< dftfe::uInt > &numberCellsForEachAtom, std::vector< dftfe::uInt > &numberCellsAccumNonLocalAtoms, std::vector< dftfe::uInt > &iElemNonLocalToElemIndexMap) |
| dftfe::uInt | getTotalNumberOfRadialSphericalFunctions () |
| Returns the total number of total radial-spherical functions indexed by {i} present in atomicNumbers list. | |
| const std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > & | getSphericalFunctions () const |
| Returns the shared_ptr of AtomCenteredSphericalFunctionBase associated with std::pair(atomic Number and lQuantumNo) | |
| const std::vector< dftfe::uInt > & | getAtomicNumbers () const |
| Returns the vector of size Natoms of all atoms in system. | |
| const std::vector< dftfe::uInt > & | getAtomIdsInCurrentProcess () const |
| Returns the atomIds of atoms present in current processor. | |
| const dftfe::uInt | getTotalSphericalFunctionIndexStart (dftfe::uInt Znum, dftfe::uInt alpha) |
| Returns the startIndex of spherical Function alpha associated with atomic number Znum. | |
| template<typename NumberType> | |
| void | computeSparseStructure (std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, dftfe::utils::MemorySpace::HOST > > &basisOperationsPtr, const dftfe::uInt quadratureIndex, const double cutOffVal=1.0E-8, const dftfe::uInt cutOffType=0) |
| void | setImageCoordinates (const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &periodicCoords) |
| const std::vector< dftfe::Int > & | getAtomIdsInElement (dftfe::uInt iElem) |
| const std::map< dftfe::uInt, std::vector< dftfe::Int > > & | getSparsityPattern () |
| bool | atomSupportInElement (dftfe::uInt iElem) |
| void | getDataForSparseStructure (const std::map< dftfe::uInt, std::vector< dftfe::Int > > &sparsityPattern, const std::vector< std::vector< dealii::CellId > > &elementIdsInAtomCompactSupport, const std::vector< std::vector< dftfe::uInt > > &elementIndexesInAtomCompactSupport, const std::vector< dftfe::uInt > &atomIdsInCurrentProcess, dftfe::uInt numberElements) |
| const dftfe::uInt | getOffsetLocation (const dftfe::uInt iAtom) |
Public Attributes | |
| std::vector< std::vector< dftfe::uInt > > | d_elementIndexesInAtomCompactSupport |
Private Attributes | |
| std::vector< double > | d_atomCoords |
| std::vector< dftfe::uInt > | d_atomicNumbers |
| std::map< dftfe::uInt, std::vector< double > > | d_periodicImageCoord |
| std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > | d_sphericalFunctionsContainer |
| std::map< dftfe::uInt, dftfe::uInt > | d_numRadialSphericalFunctions |
| std::map< dftfe::uInt, dftfe::uInt > | d_numSphericalFunctions |
| std::map< dftfe::uInt, std::vector< dftfe::Int > > | d_sparsityPattern |
| std::vector< std::vector< dealii::CellId > > | d_elementIdsInAtomCompactSupport |
| std::vector< std::vector< dealii::DoFHandler< 3 >::active_cell_iterator > > | d_elementOneFieldIteratorsInAtomCompactSupport |
| std::vector< dftfe::uInt > | d_AtomIdsInCurrentProcess |
| std::vector< dftfe::uInt > | d_offsetLocation |
| std::vector< std::vector< dftfe::Int > > | d_AtomIdsInElement |
| std::map< dftfe::uInt, std::vector< dftfe::uInt > > | d_totalSphericalFunctionIndexStart |
| bool dftfe::AtomCenteredSphericalFunctionContainer::atomSupportInElement | ( | dftfe::uInt | iElem | ) |
| void dftfe::AtomCenteredSphericalFunctionContainer::computeSparseStructure | ( | std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, dftfe::utils::MemorySpace::HOST > > & | basisOperationsPtr, |
| const dftfe::uInt | quadratureIndex, | ||
| const double | cutOffVal = 1.0E-8, | ||
| const dftfe::uInt | cutOffType = 0 ) |
| const std::vector< double > & dftfe::AtomCenteredSphericalFunctionContainer::getAtomCoordinates | ( | ) | const |
Returns the cooridnates of atom present in domain.
| const std::vector< dftfe::uInt > & dftfe::AtomCenteredSphericalFunctionContainer::getAtomicNumbers | ( | ) | const |
Returns the vector of size Natoms of all atoms in system.
| const std::vector< dftfe::uInt > & dftfe::AtomCenteredSphericalFunctionContainer::getAtomIdsInCurrentProcess | ( | ) | const |
Returns the atomIds of atoms present in current processor.
| const std::vector< dftfe::Int > & dftfe::AtomCenteredSphericalFunctionContainer::getAtomIdsInElement | ( | dftfe::uInt | iElem | ) |
| void dftfe::AtomCenteredSphericalFunctionContainer::getDataForSparseStructure | ( | const std::map< dftfe::uInt, std::vector< dftfe::Int > > & | sparsityPattern, |
| const std::vector< std::vector< dealii::CellId > > & | elementIdsInAtomCompactSupport, | ||
| const std::vector< std::vector< dftfe::uInt > > & | elementIndexesInAtomCompactSupport, | ||
| const std::vector< dftfe::uInt > & | atomIdsInCurrentProcess, | ||
| dftfe::uInt | numberElements ) |
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getMaximumNumberOfSphericalFunctions | ( | ) |
Returns the maximum number of total spherical functions indexed by {ilm} across all atom Types present in atomNumbers vector.
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getNumAtomCentersSize | ( | ) |
Returns the number of atoms present in domain.
| const dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getOffsetLocation | ( | const dftfe::uInt | iAtom | ) |
| const std::map< dftfe::uInt, std::vector< double > > & dftfe::AtomCenteredSphericalFunctionContainer::getPeriodicImageCoordinatesList | ( | ) | const |
Returns the map of atomId vs vector of image coordinates.
| const std::map< dftfe::uInt, std::vector< dftfe::Int > > & dftfe::AtomCenteredSphericalFunctionContainer::getSparsityPattern | ( | ) |
| const std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > & dftfe::AtomCenteredSphericalFunctionContainer::getSphericalFunctions | ( | ) | const |
Returns the shared_ptr of AtomCenteredSphericalFunctionBase associated with std::pair(atomic Number and lQuantumNo)
| void dftfe::AtomCenteredSphericalFunctionContainer::getTotalAtomsAndNonLocalElementsInCurrentProcessor | ( | dftfe::uInt & | totalAtomsInCurrentProcessor, |
| dftfe::uInt & | totalNonLocalElements, | ||
| std::vector< dftfe::uInt > & | numberCellsForEachAtom, | ||
| std::vector< dftfe::uInt > & | numberCellsAccumNonLocalAtoms, | ||
| std::vector< dftfe::uInt > & | iElemNonLocalToElemIndexMap ) |
| [out] | totalAtomsInCurrentProcessor | number of atoms in current processor based on compact support |
| [out] | totalNonLocalElements | number of nonLocal elements in current processor |
| [out] | numberCellsForEachAtom | number of cells associated which each atom in the current processor. vecot of size totalAtomsInCurrentProcessor |
| [out] | numberCellsAccumNonLocalAtoms | number of cells accumulated till iatom in current processor. vector of size totalAtomsInCurrentProcessor |
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getTotalNumberOfRadialSphericalFunctions | ( | ) |
Returns the total number of total radial-spherical functions indexed by {i} present in atomicNumbers list.
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getTotalNumberOfRadialSphericalFunctionsPerAtom | ( | dftfe::uInt | atomicNumber | ) |
Returns the he number of radial spherical functions indexed by {i} associated with an atomic number. If the atomic number does not exist, it returns a zero.
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getTotalNumberOfSphericalFunctionsInCurrentProcessor | ( | ) |
Returns the total number of total spherical functions indexed by {ilm} present in the current processor. If the atomic number does not exist, it returns a zero.
| dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getTotalNumberOfSphericalFunctionsPerAtom | ( | dftfe::uInt | atomicNumber | ) |
Returns the he number of total spherical functions indexed by {ilm} associated with an atomic number. If the atomic number does not exist, it returns a zero.
| const dftfe::uInt dftfe::AtomCenteredSphericalFunctionContainer::getTotalSphericalFunctionIndexStart | ( | dftfe::uInt | Znum, |
| dftfe::uInt | alpha ) |
Returns the startIndex of spherical Function alpha associated with atomic number Znum.
| void dftfe::AtomCenteredSphericalFunctionContainer::init | ( | const std::vector< dftfe::uInt > & | atomicNumbers, |
| const std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > & | listOfSphericalFunctions ) |
Initialises the class with the atomicNumbers of various atoms and the AtomCenteredSphericalFn of various spherical functions. This function is only called once per run.
| [in] | atomicNumbers | vector of size Natoms storing the Znumbers of various atoms present |
| [in] | listOfSphericalFunctions | map of std::pain (Znum, l) to the sphericalFUnction class shared pointer. |
| void dftfe::AtomCenteredSphericalFunctionContainer::initaliseCoordinates | ( | const std::vector< double > & | atomCoords, |
| const std::vector< std::vector< double > > & | periodicCoords, | ||
| const std::vector< dftfe::Int > & | imageIds ) |
Initialises the position of atoms, the image posisiton and image ids after every update of atom positions.
| [in] | atomCoords | vector of size 3*Natoms storing the X,Y,Z coordiantes of atom in cell. |
| [in] | periodicCoords | vector of vector storing the image coordinates |
| [in] | imageIds | the image Id of image atoms present in periodicCoords input |
| void dftfe::AtomCenteredSphericalFunctionContainer::setImageCoordinates | ( | const std::vector< dftfe::Int > & | imageIds, |
| const std::vector< std::vector< double > > & | periodicCoords ) |
|
private |
|
private |
|
private |
|
private |
|
private |
| std::vector<std::vector<dftfe::uInt> > dftfe::AtomCenteredSphericalFunctionContainer::d_elementIndexesInAtomCompactSupport |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |