26#ifndef dftefeKineticFE_h
27#define dftefeKineticFE_h
39 template <
typename ValueTypeBasisData,
40 typename ValueTypeBasisCoeff,
44 :
public Hamiltonian<ValueTypeBasisData, memorySpace>,
45 public Energy<linearAlgebra::blasLapack::real_type<
46 linearAlgebra::blasLapack::scalar_type<ValueTypeBasisData,
47 ValueTypeBasisCoeff>>>
81 evalEnergy(
const std::vector<RealType> & occupation,
87 memorySpace> &waveFunc);
96 bool updateGhostY)
const override;
115 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
120 std::shared_ptr<linearAlgebra::MultiVector<ValueType, memorySpace>>
122 std::shared_ptr<const utils::mpi::MPIPatternP2P<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:57
Definition: Hamiltonian.h:35
Definition: KineticFE.h:48
bool hasNonLocalComponent() const override
Definition: KineticFE.t.cpp:295
void applyNonLocal(linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &X, linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &Y, bool updateGhostX, bool updateGhostY) const override
Definition: KineticFE.t.cpp:268
void getLocal(Storage &cellWiseStorage) const override
Definition: KineticFE.t.cpp:109
linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > ValueType
Definition: KineticFE.h:52
Storage d_cellWiseStorageKineticEnergy
Definition: KineticFE.h:118
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_psiBatchSmall
Definition: KineticFE.h:121
void reinit(std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage)
Definition: KineticFE.t.cpp:73
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: KineticFE.h:116
const size_type d_waveFuncBatchSize
Definition: KineticFE.h:114
RealType d_energy
Definition: KineticFE.h:113
RealType getEnergy() const override
Definition: KineticFE.t.cpp:257
const size_type d_maxCellBlock
Definition: KineticFE.h:114
quadrature::QuadratureValuesContainer< ValueType, memorySpace > * d_gradPsi
Definition: KineticFE.h:117
~KineticFE()
Definition: KineticFE.t.cpp:58
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_psiBatch
Definition: KineticFE.h:121
void evalEnergy(const std::vector< RealType > &occupation, const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > &feBMPsi, const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &waveFunc)
Definition: KineticFE.t.cpp:120
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: KineticFE.h:123
std::shared_ptr< basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_feBasisOp
Definition: KineticFE.h:112
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > d_feBasisDataStorage
Definition: KineticFE.h:107
linearAlgebra::blasLapack::real_type< ValueType > RealType
Definition: KineticFE.h:54
bool hasLocalComponent() const override
Definition: KineticFE.t.cpp:284
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
Definition: QuadratureValuesContainer.h:39
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
unsigned int size_type
Definition: TypeConfig.h:8