26#ifndef dftefeDensityCalculator_h
27#define dftefeDensityCalculator_h
38 template <
typename ValueTypeBasisData,
39 typename ValueTypeBasisCoeff,
86 const std::vector<RealType> &occupation,
92 const bool computeGrad =
false);
95 std::shared_ptr<const quadrature::QuadratureRuleContainer>
108 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:54
An abstract class to encapsulate the partitioning of a finite element basis across multiple processor...
Definition: FEBasisManager.h:44
Definition: FEBasisOperations.h:64
Definition: DensityCalculator.h:43
linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > * d_psiBatchSmall
Definition: DensityCalculator.h:131
quadrature::QuadratureValuesContainer< RealType, memorySpace > * d_rhoMemspace
Definition: DensityCalculator.h:121
dftefe::utils::MemoryStorage< RealType, memorySpace > * d_rhoBatch
Definition: DensityCalculator.h:118
dftefe::utils::MemoryStorage< RealType, memorySpace > d_modPsiSqBatchQuad
Definition: DensityCalculator.h:115
dftefe::utils::MemoryStorage< RealType, memorySpace > d_occupationInBatch
Definition: DensityCalculator.h:116
linearAlgebra::blasLapack::real_type< ValueType > RealType
Definition: DensityCalculator.h:49
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: DensityCalculator.h:109
std::shared_ptr< const quadrature::QuadratureRuleContainer > d_quadRuleContainer
Definition: DensityCalculator.h:96
dftefe::utils::MemoryStorage< ValueType, memorySpace > * d_gradPsiBatchQuad
Definition: DensityCalculator.h:123
const size_type d_waveFuncBatchSize
Definition: DensityCalculator.h:107
dftefe::utils::MemoryStorage< RealType, memorySpace > d_psiGradPsiBatch
Definition: DensityCalculator.h:125
~DensityCalculator()
Default Destructor.
Definition: DensityCalculator.t.cpp:76
size_type d_batchSizeSmall
Definition: DensityCalculator.h:133
void computeRho(const std::vector< RealType > &occupation, const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &waveFunc, quadrature::QuadratureValuesContainer< RealType, memorySpaceHost > &rho, quadrature::QuadratureValuesContainer< RealType, memorySpaceHost > &gradRho, const bool computeGrad=false)
Definition: DensityCalculator.t.cpp:203
std::shared_ptr< basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_feBasisOp
Definition: DensityCalculator.h:101
const size_type d_cellBlockSize
Definition: DensityCalculator.h:106
size_type d_numLocallyOwnedCells
Definition: DensityCalculator.h:134
const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > * d_feBMPsi
Definition: DensityCalculator.h:105
quadrature::QuadratureValuesContainer< RealType, memorySpace > * d_gradRhoMemspace
Definition: DensityCalculator.h:127
void reinit(std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > &feBMPsi)
Definition: DensityCalculator.t.cpp:129
dftefe::utils::MemoryStorage< RealType, memorySpace > * d_gradRhoBatch
Definition: DensityCalculator.h:124
dftefe::utils::MemoryStorage< ValueType, memorySpace > * d_psiBatchQuad
Definition: DensityCalculator.h:111
linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > ValueType
Definition: DensityCalculator.h:47
linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > * d_psiBatch
Definition: DensityCalculator.h:129
Definition: LinAlgOpContext.h:52
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
Definition: QuadratureValuesContainer.h:39
Definition: MemoryStorage.h:38
typeInternal::real_type< ValueType > real_type
Definition: BlasLapackTypedef.h:177
typeInternal::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:183
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9