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<dftfe::uInt> &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)
71 const std::vector<std::vector<double>> &atomLocations,
83 const std::vector<std::vector<double>> &atomLocations,
84 const std::vector<dftfe::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<
103 const std::vector<std::vector<double>> &eigenValues,
107#
if defined(DFTFE_WITH_DEVICE)
110 BLASWrapperPtrDevice,
116 const std::vector<double> &kPointWeights,
117 const MPI_Comm &interBandGroupComm,
118 const MPI_Comm &interpoolComm,
140 std::map<dftfe::uInt, std::vector<std::pair<dftfe::uInt, dftfe::uInt>>>
144 std::shared_ptr<AtomCenteredSphericalFunctionContainer>
147 std::map<std::pair<dftfe::uInt, dftfe::uInt>,
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
dftfe::uInt d_numEigenValues
Definition atomCenteredPostProcessing.h:135
std::unordered_map< dftfe::uInt, std::string > LQnumToNameMap
Definition atomCenteredPostProcessing.h:97
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
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 sparsityPatternQuadratureId, dftfe::uInt nlpspQuadratureId, const std::vector< std::vector< double > > &atomLocations, dftfe::uInt numEigenValues)
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.
std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > d_nonLocalOperator
Definition atomCenteredPostProcessing.h:152
const std::shared_ptr< AtomicCenteredNonLocalOperator< ValueType, memorySpace > > getNonLocalOperator()
std::map< dftfe::uInt, std::vector< std::pair< dftfe::uInt, dftfe::uInt > > > nlNumsMap
Definition atomCenteredPostProcessing.h:141
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
void createAtomCenteredSphericalFunctionsForOrbitals()
dealii::TimerOutput computing_timer
Definition atomCenteredPostProcessing.h:142
atomCenteredOrbitalsPostProcessing(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const std::string &scratchFolderName, const std::set< dftfe::uInt > &atomTypes, const bool reproducibleOutput, const dftfe::Int verbosity, const bool useDevice, const dftParameters *dftParamsPtr)
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > d_BLASWrapperHostPtr
Definition atomCenteredPostProcessing.h:162
dftfe::uInt d_sparsityPatternQuadratureId
Definition atomCenteredPostProcessing.h:133
const dftfe::uInt d_this_mpi_process
Definition atomCenteredPostProcessing.h:126
std::set< dftfe::uInt > d_atomTypes
Definition atomCenteredPostProcessing.h:128
void computeAtomCenteredEntries(const dftfe::utils::MemoryStorage< ValueType, memorySpace > *X, const dftfe::uInt 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 dftfe::uInt quadratureIndex, const std::vector< double > &kPointWeights, const MPI_Comm &interBandGroupComm, const MPI_Comm &interpoolComm, const dftParameters *dftParamsPtr, double fermiEnergy, dftfe::uInt highestStateNscfSolve)
const MPI_Comm d_mpiCommDomain
Definition atomCenteredPostProcessing.h:125
double smearFunction(double x, const dftParameters *dftParamsPtr)
dftfe::uInt d_verbosity
Definition atomCenteredPostProcessing.h:130
std::string d_dftfeScratchFolderName
Definition atomCenteredPostProcessing.h:127
std::map< std::pair< dftfe::uInt, dftfe::uInt >, std::shared_ptr< AtomCenteredSphericalFunctionBase > > d_atomicOrbitalFnsMap
Definition atomCenteredPostProcessing.h:149
dftfe::uInt d_nlpspQuadratureId
Definition atomCenteredPostProcessing.h:134
Definition FEBasisOperations.h:85
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:36
Definition BLASWrapper.h:35
Definition MemoryStorage.h:33
Definition FEBasisOperations.h:30
@ DEVICE
Definition MemorySpaceType.h:36
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10
std::int32_t Int
Definition TypeConfig.h:11