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 dftfe::uInt matrixFreeVectorComponent, const dftfe::uInt densityQuadratureId, const dftfe::uInt sparsityPatternQuadratureId, const dftfe::uInt numberWaveFunctions, const dftfe::uInt 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< dftfe::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 dftfe::uInt inputVecSize, const dftfe::uInt kPointIndex, const dftfe::uInt 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 dftfe::uInt inputVecSize, const dftfe::uInt kPointIndex, const dftfe::uInt spinIndex) |
| |
| void | initialiseOperatorActionOnX (dftfe::uInt kPointIndex) |
| |
| void | initialiseFlattenedDataStructure (dftfe::uInt numVectors) |
| |
| const dftfe::utils::MemoryStorage< ValueType, memorySpace > & | getCouplingMatrix (dftfe::uInt 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 () |
| |
| dftfe::uInt | getTotalNumberOfSphericalFunctionsForAtomId (dftfe::uInt iAtom) |
| |
| dftfe::uInt | getGlobalAtomId (dftfe::uInt iAtom) |
| |
| void | writeHubbOccToFile () |
| |
| void | readHubbOccFromFile () |
| |
| const std::map< dftfe::uInt, dftfe::uInt > & | getHubbardAtomIdToGloablIdMap () |
| |
|
| std::map< dftfe::uInt, dftfe::uInt > | d_mapHubbardAtomToGlobalAtomId |
| |
| dftfe::uInt | 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< dftfe::uInt, hubbardSpecies > | d_hubbardSpeciesData |
| |
| std::map< std::pair< dftfe::uInt, dftfe::uInt >, 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 |
| |
| dftfe::uInt | 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 |
| |
| dftfe::uInt | n_mpi_processes |
| |
| dftfe::uInt | this_mpi_process |
| |
| std::vector< dftfe::uInt > | d_bandGroupLowHighPlusOneIndices |
| |
| dftfe::uInt | d_numSpins |
| |
| std::vector< dftfe::uInt > | d_procLocalAtomId |
| |
| dealii::ConditionalOStream | pcout |
| |
| std::vector< double > | d_atomicCoords |
| |
| std::vector< double > | d_initialAtomicSpin |
| |
| std::vector< std::vector< double > > | d_periodicImagesCoords |
| |
| std::vector< dftfe::Int > | d_imageIds |
| |
| std::vector< dftfe::uInt > | d_mapAtomToHubbardIds |
| |
| std::vector< dftfe::uInt > | d_mapAtomToAtomicNumber |
| |
| double | d_spinPolarizedFactor |
| |
| dftfe::uInt | 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 |
| |
| dftfe::uInt | d_noSpecies |
| |
| dftfe::uInt | d_densityQuadratureId |
| |
| dftfe::uInt | d_numberWaveFunctions |
| |
| dftfe::uInt | d_numTotalOccMatrixEntriesPerSpin |
| |
| std::vector< dftfe::uInt > | d_OccMatrixEntryStartForAtom |
| |
| dftfe::linearAlgebra::MultiVector< ValueType, memorySpace > | d_hubbNonLocalProjectorTimesVectorBlock |
| |
| dftfe::linearAlgebra::MultiVector< typename dftfe::dataTypes::singlePrecType< ValueType >::type, memorySpace > | d_hubbNonLocalProjectorTimesVectorBlockSinglePrec |
| |
| dftfe::uInt | d_cellsBlockSizeApply |
| |
| dftfe::uInt | d_verbosity |
| |
| dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > | d_hubbOccMatAfterMixing |
| |
| double | d_hubbardEnergy |
| |
| double | d_expectationOfHubbardPotential |
| |
| dftfe::uInt | d_maxOccMatSizePerAtom |
| |
This class provides the Hubbard correction. This class is an object of ExcDFTPluU Class.
- Author
- Vishal Subramanian