DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
#include <oncvClass.h>
Public Member Functions | |
oncvClass (const MPI_Comm &mpi_comm_parent, const std::string &scratchFolderName, const std::set< dftfe::uInt > &atomTypes, const bool floatingNuclearCharges, const dftfe::uInt nOMPThreads, const std::map< dftfe::uInt, dftfe::uInt > &atomAttributes, const bool reproducibleOutput, const dftfe::Int verbosity, const bool useDevice, const bool memOptMode) | |
void | initialise (std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > basisOperationsHostPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperPtrHost, dftfe::uInt densityQuadratureId, dftfe::uInt localContributionQuadratureId, dftfe::uInt sparsityPatternQuadratureId, dftfe::uInt nlpspQuadratureId, dftfe::uInt densityQuadratureIdElectro, std::shared_ptr< excManager< memorySpace > > excFunctionalPtr, const std::vector< std::vector< double > > &atomLocations, dftfe::uInt numEigenValues, const bool singlePrecNonLocalOperator, const bool computeSphericalFnTimesXNonLocalOperator=true) |
Initialises all the data members with addresses/values to/of dftClass. | |
void | initialiseNonLocalContribution (const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &periodicCoords, const std::vector< double > &kPointWeights, const std::vector< double > &kPointCoordinates, const bool updateNonlocalSparsity) |
Initialises all the data members with addresses/values to/of dftClass. | |
void | initialiseNonLocalContribution (const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &periodicCoords, const std::vector< double > &kPointWeights, const std::vector< double > &kPointCoordinates, const bool updateNonlocalSparsity, 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) |
void | initLocalPotential () |
Initialises local potential. | |
void | getRadialValenceDensity (dftfe::uInt Znum, double rad, std::vector< double > &Val) |
double | getRadialValenceDensity (dftfe::uInt Znum, double rad) |
double | getRmaxValenceDensity (dftfe::uInt Znum) |
void | getRadialCoreDensity (dftfe::uInt Znum, double rad, std::vector< double > &Val) |
double | getRadialCoreDensity (dftfe::uInt Znum, double rad) |
double | getRmaxCoreDensity (dftfe::uInt Znum) |
double | getRadialLocalPseudo (dftfe::uInt Znum, double rad) |
double | getRmaxLocalPot (dftfe::uInt Znum) |
bool | coreNuclearDensityPresent (dftfe::uInt Znum) |
dftfe::uInt | getTotalNumberOfSphericalFunctionsForAtomId (dftfe::uInt atomId) |
dftfe::uInt | getTotalNumberOfAtomsInCurrentProcessor () |
dftfe::uInt | getAtomIdInCurrentProcessor (dftfe::uInt iAtom) |
const dftfe::utils::MemoryStorage< ValueType, memorySpace > & | getCouplingMatrix (CouplingType couplingtype=CouplingType::HamiltonianEntries) |
const std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > | getNonLocalOperator () |
const dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > & | getCouplingMatrixSinglePrec (CouplingType couplingtype=CouplingType::HamiltonianEntries) |
const std::shared_ptr< AtomicCenteredNonLocalOperator< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > > | getNonLocalOperatorSinglePrec () |
![]() | |
virtual | ~pseudopotentialBaseClass () |
Private Member Functions | |
void | setImageCoordinates (const std::vector< std::vector< double > > &atomLocations, const std::vector< dftfe::Int > &imageIds, const std::vector< std::vector< double > > &periodicCoords, std::vector< dftfe::uInt > &imageIdsTemp, std::vector< double > &imageCoordsTemp) |
Converts the periodic image data structure to relevant form for the container class. | |
void | createAtomCenteredSphericalFunctionsForDensities () |
Creating Density splines for all atomTypes. | |
void | computeNonlocalPseudoPotentialConstants () |
void | createAtomCenteredSphericalFunctionsForProjectors () |
void | createAtomCenteredSphericalFunctionsForLocalPotential () |
dftfe::oncvClass< ValueType, memorySpace >::oncvClass | ( | const MPI_Comm & | mpi_comm_parent, |
const std::string & | scratchFolderName, | ||
const std::set< dftfe::uInt > & | atomTypes, | ||
const bool | floatingNuclearCharges, | ||
const dftfe::uInt | nOMPThreads, | ||
const std::map< dftfe::uInt, dftfe::uInt > & | atomAttributes, | ||
const bool | reproducibleOutput, | ||
const dftfe::Int | verbosity, | ||
const bool | useDevice, | ||
const bool | memOptMode ) |
|
private |
bool dftfe::oncvClass< ValueType, memorySpace >::coreNuclearDensityPresent | ( | dftfe::uInt | Znum | ) |
|
private |
Creating Density splines for all atomTypes.
|
private |
|
private |
dftfe::uInt dftfe::oncvClass< ValueType, memorySpace >::getAtomIdInCurrentProcessor | ( | dftfe::uInt | iAtom | ) |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Reimplemented from dftfe::pseudopotentialBaseClass< ValueType, memorySpace >.
double dftfe::oncvClass< ValueType, memorySpace >::getRadialCoreDensity | ( | dftfe::uInt | Znum, |
double | rad ) |
void dftfe::oncvClass< ValueType, memorySpace >::getRadialCoreDensity | ( | dftfe::uInt | Znum, |
double | rad, | ||
std::vector< double > & | Val ) |
double dftfe::oncvClass< ValueType, memorySpace >::getRadialLocalPseudo | ( | dftfe::uInt | Znum, |
double | rad ) |
double dftfe::oncvClass< ValueType, memorySpace >::getRadialValenceDensity | ( | dftfe::uInt | Znum, |
double | rad ) |
void dftfe::oncvClass< ValueType, memorySpace >::getRadialValenceDensity | ( | dftfe::uInt | Znum, |
double | rad, | ||
std::vector< double > & | Val ) |
double dftfe::oncvClass< ValueType, memorySpace >::getRmaxCoreDensity | ( | dftfe::uInt | Znum | ) |
double dftfe::oncvClass< ValueType, memorySpace >::getRmaxLocalPot | ( | dftfe::uInt | Znum | ) |
double dftfe::oncvClass< ValueType, memorySpace >::getRmaxValenceDensity | ( | dftfe::uInt | Znum | ) |
dftfe::uInt dftfe::oncvClass< ValueType, memorySpace >::getTotalNumberOfAtomsInCurrentProcessor | ( | ) |
dftfe::uInt dftfe::oncvClass< ValueType, memorySpace >::getTotalNumberOfSphericalFunctionsForAtomId | ( | dftfe::uInt | atomId | ) |
void dftfe::oncvClass< ValueType, memorySpace >::initialise | ( | std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > | basisOperationsHostPtr, |
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > | BLASWrapperPtrHost, | ||
dftfe::uInt | densityQuadratureId, | ||
dftfe::uInt | localContributionQuadratureId, | ||
dftfe::uInt | sparsityPatternQuadratureId, | ||
dftfe::uInt | nlpspQuadratureId, | ||
dftfe::uInt | densityQuadratureIdElectro, | ||
std::shared_ptr< excManager< memorySpace > > | excFunctionalPtr, | ||
const std::vector< std::vector< double > > & | atomLocations, | ||
dftfe::uInt | numEigenValues, | ||
const bool | singlePrecNonLocalOperator, | ||
const bool | computeSphericalFnTimesXNonLocalOperator = true ) |
Initialises all the data members with addresses/values to/of dftClass.
[in] | densityQuadratureId | quadratureId for density. |
[in] | localContributionQuadratureId | quadratureId for local/zero potential |
[in] | nuclearChargeQuadratureIdElectro | quadratureId for nuclear charges |
[in] | densityQuadratureIdElectro | quadratureId for density in Electrostatics mesh |
[in] | excFunctionalPtr | address XC functional pointer |
[in] | numEigenValues | number of eigenvalues |
[in] | atomLocations | atomic Coordinates |
[in] | imageIds | image IDs of periodic cell |
[in] | periodicCoords | coordinates of image atoms |
void dftfe::oncvClass< ValueType, memorySpace >::initialiseNonLocalContribution | ( | const std::vector< std::vector< double > > & | atomLocations, |
const std::vector< dftfe::Int > & | imageIds, | ||
const std::vector< std::vector< double > > & | periodicCoords, | ||
const std::vector< double > & | kPointWeights, | ||
const std::vector< double > & | kPointCoordinates, | ||
const bool | updateNonlocalSparsity ) |
Initialises all the data members with addresses/values to/of dftClass.
[in] | densityQuadratureId | quadratureId for density. |
[in] | localContributionQuadratureId | quadratureId for local/zero potential |
[in] | nuclearChargeQuadratureIdElectro | quadratureId for nuclear charges |
[in] | densityQuadratureIdElectro | quadratureId for density in Electrostatics mesh |
[in] | bQuadValuesAllAtoms | address of nuclear charge field |
[in] | excFunctionalPtr | address XC functional pointer |
[in] | numEigenValues | number of eigenvalues |
[in] | atomLocations | atomic Coordinates |
[in] | imageIds | image IDs of periodic cell |
[in] | periodicCoords | coordinates of image atoms |
void dftfe::oncvClass< ValueType, memorySpace >::initialiseNonLocalContribution | ( | const std::vector< std::vector< double > > & | atomLocations, |
const std::vector< dftfe::Int > & | imageIds, | ||
const std::vector< std::vector< double > > & | periodicCoords, | ||
const std::vector< double > & | kPointWeights, | ||
const std::vector< double > & | kPointCoordinates, | ||
const bool | updateNonlocalSparsity, | ||
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 ) |
void dftfe::oncvClass< ValueType, memorySpace >::initLocalPotential | ( | ) |
Initialises local potential.
|
private |
Converts the periodic image data structure to relevant form for the container class.
[in] | atomLocations | atomic Coordinates |
[in] | imageIds | image IDs of periodic cell |
[in] | periodicCoords | coordinates of image atoms |
[out] | imageIdsTemp | image IDs of periodic cell |
[out] | imageCoordsTemp | coordinates of image atoms |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
FIXME: eventually it should be a map of atomic number to struct- {valence number, mesh input etc}
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |