26#ifndef dftefeDensityCalculator_h
27#define dftefeDensityCalculator_h
40 template <
typename ValueTypeBasisData,
41 typename ValueTypeBasisCoeff,
88 const std::vector<RealType> &occupation,
97 const bool computeGrad =
false,
101 std::shared_ptr<const quadrature::QuadratureRuleContainer>
114 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
126 std::vector<quadrature::QuadratureValuesContainer<RealType, memorySpace>>
132 std::vector<quadrature::QuadratureValuesContainer<RealType, 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:45
linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > * d_psiBatchSmall
Definition: DensityCalculator.h:137
dftefe::utils::MemoryStorage< RealType, memorySpace > * d_rhoBatch
Definition: DensityCalculator.h:124
dftefe::utils::MemoryStorage< RealType, memorySpace > d_modPsiSqBatchQuad
Definition: DensityCalculator.h:121
dftefe::utils::MemoryStorage< RealType, memorySpace > d_occupationInBatch
Definition: DensityCalculator.h:122
linearAlgebra::blasLapack::real_type< ValueType > RealType
Definition: DensityCalculator.h:51
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: DensityCalculator.h:115
std::shared_ptr< const quadrature::QuadratureRuleContainer > d_quadRuleContainer
Definition: DensityCalculator.h:102
dftefe::utils::MemoryStorage< ValueType, memorySpace > * d_gradPsiBatchQuad
Definition: DensityCalculator.h:129
const size_type d_waveFuncBatchSize
Definition: DensityCalculator.h:113
dftefe::utils::MemoryStorage< RealType, memorySpace > d_psiGradPsiBatch
Definition: DensityCalculator.h:131
void computeRho(const std::vector< RealType > &occupation, const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &waveFunc, std::vector< quadrature::QuadratureValuesContainer< RealType, memorySpaceHost > * > &rho, std::vector< quadrature::QuadratureValuesContainer< RealType, memorySpaceHost > * > &gradRho, const bool computeGrad=false, const SpinMode spinMode=SpinMode::Unpolarized)
Definition: DensityCalculator.t.cpp:227
~DensityCalculator()
Default Destructor.
Definition: DensityCalculator.t.cpp:75
size_type d_batchSizeSmall
Definition: DensityCalculator.h:139
std::shared_ptr< basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_feBasisOp
Definition: DensityCalculator.h:107
const size_type d_cellBlockSize
Definition: DensityCalculator.h:112
size_type d_numLocallyOwnedCells
Definition: DensityCalculator.h:140
std::vector< quadrature::QuadratureValuesContainer< RealType, memorySpace > > d_gradRhoMemspace
Definition: DensityCalculator.h:133
const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > * d_feBMPsi
Definition: DensityCalculator.h:111
void reinit(std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > &feBMPsi)
Definition: DensityCalculator.t.cpp:120
dftefe::utils::MemoryStorage< RealType, memorySpace > * d_gradRhoBatch
Definition: DensityCalculator.h:130
std::vector< quadrature::QuadratureValuesContainer< RealType, memorySpace > > d_rhoMemspace
Definition: DensityCalculator.h:127
dftefe::utils::MemoryStorage< ValueType, memorySpace > * d_psiBatchQuad
Definition: DensityCalculator.h:117
linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > ValueType
Definition: DensityCalculator.h:49
linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > * d_psiBatch
Definition: DensityCalculator.h:135
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
SpinMode
Definition: KSAttributes.h:55
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