1#ifndef ATOMCENTEREDOORBTIALPOSTPROCESING_H
2#define ATOMCENTEREDOORBTIALPOSTPROCESING_H
24# define omp_get_thread_num() 0
28 template <
typename ValueType, dftfe::utils::MemorySpace memorySpace>
33 const MPI_Comm & mpi_comm_domain,
34 const std::string &scratchFolderName,
35 const std::set<unsigned int> &atomTypes,
36 const bool reproducibleOutput,
52 FEBasisOperations<ValueType, double, dftfe::utils::MemorySpace::HOST>>
53 basisOperationsHostPtr,
54#
if defined(DFTFE_WITH_DEVICE)
59 basisOperationsDevicePtr,
64#
if defined(DFTFE_WITH_DEVICE)
69 unsigned int sparsityPatternQuadratureId,
70 unsigned int nlpspQuadratureId,
71 const std::vector<std::vector<double>> &atomLocations,
72 unsigned int numEigenValues);
83 const std::vector<std::vector<double>> &atomLocations,
84 const std::vector<int> & imageIds,
85 const std::vector<std::vector<double>> &periodicCoords,
86 const std::vector<double> & kPointWeights,
87 const std::vector<double> & kPointCoordinates,
88 const bool updateNonlocalSparsity);
90 const std::shared_ptr<
102 const unsigned int totalNumWaveFunctions,
103 const std::vector<std::vector<double>> &eigenValues,
107#
if defined(DFTFE_WITH_DEVICE)
110 BLASWrapperPtrDevice,
115 const unsigned int quadratureIndex,
116 const std::vector<double> &kPointWeights,
117 const MPI_Comm & interBandGroupComm,
118 const MPI_Comm & interpoolComm,
121 unsigned int highestStateNscfSolve);
140 std::map<unsigned int, std::vector<std::pair<unsigned int, unsigned int>>>
144 std::shared_ptr<AtomCenteredSphericalFunctionContainer>
147 std::map<std::pair<unsigned int, unsigned int>,
148 std::shared_ptr<AtomCenteredSphericalFunctionBase>>
151 std::shared_ptr<AtomicCenteredNonLocalOperator<ValueType, memorySpace>>
156 FEBasisOperations<ValueType, double, dftfe::utils::MemorySpace::HOST>>
163#if defined(DFTFE_WITH_DEVICE)
166 d_BLASWrapperDevicePtr;
169 FEBasisOperations<ValueType, double, dftfe::utils::MemorySpace::DEVICE>>
170 d_BasisOperatorDevicePtr;
Definition AtomicCenteredNonLocalOperator.h:58
const MPI_Comm d_mpiCommParentPostProcessing
Definition atomCenteredPostProcessing.h:124
bool d_reproducible_output
Definition atomCenteredPostProcessing.h:129
bool d_useDevice
Definition atomCenteredPostProcessing.h:131
std::shared_ptr< AtomCenteredSphericalFunctionContainer > d_atomicOrbitalFnsContainer
Definition atomCenteredPostProcessing.h:145
unsigned int d_verbosity
Definition atomCenteredPostProcessing.h:130
std::unordered_map< unsigned int, std::string > LQnumToNameMap
Definition atomCenteredPostProcessing.h:97
unsigned int d_sparsityPatternQuadratureId
Definition atomCenteredPostProcessing.h:133
std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > d_nonLocalOperator
Definition atomCenteredPostProcessing.h:152
void computeAtomCenteredEntries(const dftfe::utils::MemoryStorage< ValueType, memorySpace > *X, const unsigned int totalNumWaveFunctions, const std::vector< std::vector< double > > &eigenValues, std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, memorySpace > > &basisOperationsPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperPtrHost, const unsigned int quadratureIndex, const std::vector< double > &kPointWeights, const MPI_Comm &interBandGroupComm, const MPI_Comm &interpoolComm, const dftParameters *dftParamsPtr, double fermiEnergy, unsigned int highestStateNscfSolve)
const std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > getNonLocalOperator()
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, unsigned int sparsityPatternQuadratureId, unsigned int nlpspQuadratureId, const std::vector< std::vector< double > > &atomLocations, unsigned int numEigenValues)
Initialises all the data members with addresses/values to/of dftClass.
std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > d_BasisOperatorHostPtr
Definition atomCenteredPostProcessing.h:157
dealii::ConditionalOStream pcout
Definition atomCenteredPostProcessing.h:132
std::map< unsigned int, std::vector< std::pair< unsigned int, unsigned int > > > nlNumsMap
Definition atomCenteredPostProcessing.h:141
void createAtomCenteredSphericalFunctionsForOrbitals()
dealii::TimerOutput computing_timer
Definition atomCenteredPostProcessing.h:142
const unsigned int d_this_mpi_process
Definition atomCenteredPostProcessing.h:126
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > d_BLASWrapperHostPtr
Definition atomCenteredPostProcessing.h:162
unsigned int d_numEigenValues
Definition atomCenteredPostProcessing.h:135
unsigned int d_nlpspQuadratureId
Definition atomCenteredPostProcessing.h:134
atomCenteredOrbitalsPostProcessing(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const std::string &scratchFolderName, const std::set< unsigned int > &atomTypes, const bool reproducibleOutput, const int verbosity, const bool useDevice, const dftParameters *dftParamsPtr)
const MPI_Comm d_mpiCommDomain
Definition atomCenteredPostProcessing.h:125
double smearFunction(double x, const dftParameters *dftParamsPtr)
std::map< std::pair< unsigned int, unsigned int >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > d_atomicOrbitalFnsMap
Definition atomCenteredPostProcessing.h:149
void initialiseNonLocalContribution(const std::vector< std::vector< double > > &atomLocations, const std::vector< 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.
std::string d_dftfeScratchFolderName
Definition atomCenteredPostProcessing.h:127
std::set< unsigned int > d_atomTypes
Definition atomCenteredPostProcessing.h:128
Definition FEBasisOperations.h:84
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:35
Definition BLASWrapper.h:35
Definition MemoryStorage.h:33
Definition FEBasisOperations.h:30
@ DEVICE
Definition MemorySpaceType.h:36
Definition pseudoPotentialToDftfeConverter.cc:34