26#ifndef dftefeKineticFE_h
27#define dftefeKineticFE_h
40 template <
typename ValueTypeBasisData,
41 typename ValueTypeBasisCoeff,
45 :
public Hamiltonian<ValueTypeBasisData, memorySpace>,
46 public Energy<linearAlgebra::blasLapack::real_type<
47 linearAlgebra::blasLapack::scalar_type<ValueTypeBasisData,
48 ValueTypeBasisCoeff>>>
82 evalEnergy(
const std::vector<RealType> & occupation,
88 memorySpace> &waveFunc);
97 bool updateGhostY)
const override;
116 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
122 std::shared_ptr<linearAlgebra::MultiVector<ValueType, memorySpace>>
124 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
A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on...
Definition: LaplaceOperatorContextFE.h:63
Definition: Hamiltonian.h:35
Definition: KineticFE.h:49
bool hasNonLocalComponent() const override
Definition: KineticFE.t.cpp:380
void applyNonLocal(linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &X, linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &Y, bool updateGhostX, bool updateGhostY) const override
Definition: KineticFE.t.cpp:353
void getLocal(Storage &cellWiseStorage) const override
Definition: KineticFE.t.cpp:110
linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > ValueType
Definition: KineticFE.h:53
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_psiBatchSmall
Definition: KineticFE.h:123
void reinit(std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage)
Definition: KineticFE.t.cpp:73
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_YBatch
Definition: KineticFE.h:123
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: KineticFE.h:117
std::shared_ptr< Storage > d_cellWiseStorageKineticEnergy
Definition: KineticFE.h:120
const size_type d_waveFuncBatchSize
Definition: KineticFE.h:115
std::shared_ptr< electrostatics::LaplaceOperatorContextFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim > > d_laplaceOp
Definition: KineticFE.h:132
RealType d_energy
Definition: KineticFE.h:114
RealType getEnergy() const override
Definition: KineticFE.t.cpp:342
const size_type d_maxCellBlock
Definition: KineticFE.h:115
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_YBatchSmall
Definition: KineticFE.h:123
std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > d_psiBatch
Definition: KineticFE.h:123
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:121
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: KineticFE.h:125
std::shared_ptr< basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_feBasisOp
Definition: KineticFE.h:113
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > d_feBasisDataStorage
Definition: KineticFE.h:108
linearAlgebra::blasLapack::real_type< ValueType > RealType
Definition: KineticFE.h:55
bool hasLocalComponent() const override
Definition: KineticFE.t.cpp:369
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
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