This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class.
More...
|
| hubbard (const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &mpi_comm_interPool, const MPI_Comm &mpi_comm_interBandGroup) |
|
void | init (std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, memorySpace > > basisOperationsMemPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > basisOperationsHostPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperMemPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperHostPtr, const unsigned int matrixFreeVectorComponent, const unsigned int densityQuadratureId, const unsigned int sparsityPatternQuadratureId, const unsigned int numberWaveFunctions, const unsigned int numSpins, const dftParameters &dftParam, const std::string &scratchFolderName, const bool singlePrecNonLocalOperator, const bool updateNonlocalSparsity, const std::vector< std::vector< double > > &atomLocations, const std::vector< std::vector< double > > &atomLocationsFrac, const std::vector< int > &imageIds, const std::vector< std::vector< double > > &imagePositions, const std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights, const std::vector< std::vector< double > > &domainBoundaries) |
|
void | computeEnergyFromOccupationMatrix () |
|
void | computeOccupationMatrix (const dftfe::utils::MemoryStorage< ValueType, memorySpace > *X, const std::vector< std::vector< double > > &orbitalOccupancy) |
|
void | applyPotentialDueToHubbardCorrection (const dftfe::linearAlgebra::MultiVector< ValueType, memorySpace > &src, dftfe::linearAlgebra::MultiVector< ValueType, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex) |
|
void | applyPotentialDueToHubbardCorrection (const dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > &src, dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex) |
|
void | initialiseOperatorActionOnX (unsigned int kPointIndex) |
|
void | initialiseFlattenedDataStructure (unsigned int numVectors) |
|
const dftfe::utils::MemoryStorage< ValueType, memorySpace > & | getCouplingMatrix (unsigned int spinIndex) |
|
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & | getOccMatIn () |
|
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & | getOccMatRes () |
|
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & | getOccMatOut () |
|
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & | getHubbMatrixForMixing () |
|
void | setInOccMatrix (const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &inputOccMatrix) |
|
double | getHubbardEnergy () |
|
double | getExpectationOfHubbardPotential () |
|
const std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > | getNonLocalOperator () |
|
unsigned int | getTotalNumberOfSphericalFunctionsForAtomId (unsigned int iAtom) |
|
unsigned int | getGlobalAtomId (unsigned int iAtom) |
|
void | writeHubbOccToFile () |
|
void | readHubbOccFromFile () |
|
|
std::map< unsigned int, unsigned int > | d_mapHubbardAtomToGlobalAtomId |
|
unsigned int | d_totalNumHubbAtoms |
|
std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, memorySpace > > | d_BasisOperatorMemPtr |
|
std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > | d_BasisOperatorHostPtr |
|
std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > | d_nonLocalOperator |
|
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::numberFP32, memorySpace > > | d_nonLocalOperatorSinglePrec |
|
bool | d_useSinglePrec |
|
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > | d_BLASWrapperMemPtr |
|
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > | d_BLASWrapperHostPtr |
|
std::map< unsigned int, hubbardSpecies > | d_hubbardSpeciesData |
|
std::map< std::pair< unsigned int, unsigned int >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > | d_atomicProjectorFnsMap |
|
std::shared_ptr< AtomCenteredSphericalFunctionContainer > | d_atomicProjectorFnsContainer |
|
std::vector< double > | d_kPointWeights |
|
std::vector< std::vector< double > > | d_domainBoundaries |
|
const dftParameters * | d_dftParamsPtr |
|
std::vector< double > | d_kPointCoordinates |
|
unsigned int | d_numKPoints |
|
double | d_atomOrbitalMaxLength |
|
const MPI_Comm | d_mpi_comm_parent |
|
const MPI_Comm | d_mpi_comm_domain |
|
const MPI_Comm | d_mpi_comm_interPool |
|
const MPI_Comm | d_mpi_comm_interBand |
|
unsigned int | n_mpi_processes |
|
unsigned int | this_mpi_process |
|
std::vector< unsigned int > | d_bandGroupLowHighPlusOneIndices |
|
unsigned int | d_numSpins |
|
std::vector< unsigned int > | d_procLocalAtomId |
|
dealii::ConditionalOStream | pcout |
|
std::vector< double > | d_atomicCoords |
|
std::vector< double > | d_initialAtomicSpin |
|
std::vector< std::vector< double > > | d_periodicImagesCoords |
|
std::vector< int > | d_imageIds |
|
std::vector< unsigned int > | d_mapAtomToHubbardIds |
|
std::vector< unsigned int > | d_mapAtomToAtomicNumber |
|
double | d_spinPolarizedFactor |
|
unsigned int | d_noOfSpin |
|
std::string | d_dftfeScratchFolderName |
|
std::vector< dftfe::utils::MemoryStorage< ValueType, memorySpace > > | d_couplingMatrixEntries |
|
std::vector< dftfe::utils::MemoryStorage< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > > | d_couplingMatrixEntriesSinglePrec |
|
std::map< HubbardOccFieldType, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > | d_occupationMatrix |
|
unsigned int | d_noSpecies |
|
unsigned int | d_densityQuadratureId |
|
unsigned int | d_numberWaveFunctions |
|
unsigned int | d_numTotalOccMatrixEntriesPerSpin |
|
std::vector< unsigned int > | d_OccMatrixEntryStartForAtom |
|
dftfe::linearAlgebra::MultiVector< ValueType, memorySpace > | d_hubbNonLocalProjectorTimesVectorBlock |
|
dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > | d_hubbNonLocalProjectorTimesVectorBlockSinglePrec |
|
unsigned int | d_cellsBlockSizeApply |
|
unsigned int | d_verbosity |
|
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > | d_hubbOccMatAfterMixing |
|
double | d_hubbardEnergy |
|
double | d_expectationOfHubbardPotential |
|
unsigned int | d_maxOccMatSizePerAtom |
|
This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class.
- Author
- Vishal Subramanian