DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim > Class Template Reference

#include <KineticFE.h>

Inheritance diagram for dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >:
Collaboration diagram for dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >:

Public Types

using ValueType = linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff >
 
using RealType = linearAlgebra::blasLapack::real_type< ValueType >
 
using Storage = utils::MemoryStorage< ValueTypeBasisData, memorySpace >
 

Public Member Functions

 KineticFE (std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type cellBlockSize)
 Constructor. More...
 
 ~KineticFE ()=default
 
void reinit (std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage)
 
void getLocal (Storage &cellWiseStorage) const override
 
void evalEnergy (const std::vector< RealType > &occupation, const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > &feBMPsi, const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &waveFunc, const size_type waveFuncBatchSize)
 
RealType getEnergy () const override
 
virtual void getLocal (utils::MemoryStorage< ValueTypeBasisData, memorySpace > &cellWiseStorage) const=0
 
virtual linearAlgebra::blasLapack::real_type< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > > getEnergy () const=0
 

Private Attributes

std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > d_feBasisDataStorage
 
std::shared_ptr< basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_feBasisOp
 
RealType d_energy
 
const size_type d_cellBlockSize
 
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
 

Member Typedef Documentation

◆ RealType

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
using dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::RealType = linearAlgebra::blasLapack::real_type<ValueType>

◆ Storage

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
using dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::Storage = utils::MemoryStorage<ValueTypeBasisData, memorySpace>

◆ ValueType

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
using dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::ValueType = linearAlgebra::blasLapack::scalar_type<ValueTypeBasisData, ValueTypeBasisCoeff>

Constructor & Destructor Documentation

◆ KineticFE()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::KineticFE ( std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > >  feBasisDataStorage,
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > >  linAlgOpContext,
const size_type  cellBlockSize 
)

Constructor.

Here is the call graph for this function:

◆ ~KineticFE()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::~KineticFE ( )
default

Member Function Documentation

◆ evalEnergy()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::evalEnergy ( const std::vector< RealType > &  occupation,
const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > &  feBMPsi,
const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &  waveFunc,
const size_type  waveFuncBatchSize 
)
Here is the call graph for this function:

◆ getEnergy()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::RealType dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::getEnergy
overridevirtual

◆ getLocal()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::getLocal ( Storage cellWiseStorage) const
overridevirtual

Implements dftefe::ksdft::Hamiltonian< ValueTypeBasisData, memorySpace >.

Here is the call graph for this function:

◆ reinit()

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::reinit ( std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > >  feBasisDataStorage)
Here is the caller graph for this function:

Member Data Documentation

◆ d_cellBlockSize

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
const size_type dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::d_cellBlockSize
private

◆ d_energy

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
RealType dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::d_energy
private

◆ d_feBasisDataStorage

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr< const basis::FEBasisDataStorage<ValueTypeBasisData, memorySpace> > dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::d_feBasisDataStorage
private

◆ d_feBasisOp

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<basis::FEBasisOperations<ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim> > dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::d_feBasisOp
private

◆ d_linAlgOpContext

template<typename ValueTypeBasisData , typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace> > dftefe::ksdft::KineticFE< ValueTypeBasisData, ValueTypeBasisCoeff, memorySpace, dim >::d_linAlgOpContext
private

The documentation for this class was generated from the following files: