#include <ElectrostaticONCVNonLocFE.h>
Public Types | |
using | ValueType = typename ElectrostaticFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim >::ValueType |
using | Storage = typename ElectrostaticFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim >::Storage |
using | RealType = typename ElectrostaticFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim >::RealType |
![]() | |
using | ValueType = linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > |
using | Storage = utils::MemoryStorage< linearAlgebra::blasLapack::scalar_type< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeWaveFnBasis >, ValueTypeBasisCoeff >, memorySpace > |
using | RealType = linearAlgebra::blasLapack::real_type< ValueType > |
Public Member Functions | |
ElectrostaticONCVNonLocFE (const std::vector< utils::Point > &atomCoordinates, const std::vector< double > &atomCharges, const std::vector< std::string > &atomSymbolVec, const std::shared_ptr< atoms::AtomSphericalDataContainer > atomSphericalDataContainerPSP, const std::vector< double > &smearedChargeRadius, const quadrature::QuadratureValuesContainer< RealType, memorySpace > &electronChargeDensity, std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > feBMTotalCharge, std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > feBMWaveFn, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDTotalChargeStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDNuclearChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDElectronicChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDHamiltonian, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDAtomCenterNonLocalOperator, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type maxCellBlock, const size_type maxWaveFnBlock, const bool useDealiiMatrixFreePoissonSolve=true) | |
Constructor. More... | |
ElectrostaticONCVNonLocFE (const std::vector< utils::Point > &atomCoordinates, const std::vector< double > &atomCharges, const std::vector< std::string > &atomSymbolVec, const std::shared_ptr< atoms::AtomSphericalDataContainer > atomSphericalDataContainerPSP, const std::vector< double > &smearedChargeRadius, const utils::ScalarSpatialFunctionReal &atomicTotalElectroPotentialFunction, const utils::ScalarSpatialFunctionReal &atomicElectronicChargeDensityFunction, std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > feBMTotalCharge, std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > feBMWaveFn, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDTotalChargeStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDNuclearChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDElectronicChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDHamiltonian, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDAtomCenterNonLocalOperator, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type maxCellBlock, const size_type maxWaveFnBlock, const bool useDealiiMatrixFreePoissonSolve=true) | |
~ElectrostaticONCVNonLocFE ()=default | |
void | reinitBasis (const std::vector< utils::Point > &atomCoordinates, std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > feBMTotalCharge, std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > feBMWaveFn, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDTotalChargeStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDNuclearChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDElectronicChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDHamiltonian, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDAtomCenterNonLocalOperator) |
void | reinitBasis (const std::vector< utils::Point > &atomCoordinates, const utils::ScalarSpatialFunctionReal &atomicTotalElectroPotentialFunction, const utils::ScalarSpatialFunctionReal &atomicElectronicChargeDensityFunction, std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > feBMTotalCharge, std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > feBMWaveFn, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDTotalChargeStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDNuclearChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBDElectronicChargeRhs, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDHamiltonian, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > feBDAtomCenterNonLocalOperator) |
void | reinitField (const quadrature::QuadratureValuesContainer< RealType, memorySpace > &electronChargeDensity) |
void | getLocal (Storage &cellWiseStorage) const override |
void | applyNonLocal (linearAlgebra::MultiVector< ValueTypeWaveFnCoeff, memorySpace > &X, linearAlgebra::MultiVector< ValueTypeWaveFnCoeff, memorySpace > &Y, bool updateGhostX, bool updateGhostY) const override |
bool | hasLocalComponent () const override |
bool | hasNonLocalComponent () const override |
void | evalEnergy (const std::vector< RealType > &occupation, linearAlgebra::MultiVector< ValueTypeWaveFnCoeff, memorySpace > &X) |
RealType | getEnergy () const override |
const quadrature::QuadratureValuesContainer< ValueType, memorySpace > & | getFunctionalDerivative () const override |
std::shared_ptr< const basis::AtomCenterNonLocalOpContextFE< ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim > > | getAtomCenterNonLocalOpContextFE () const |
![]() | |
virtual | ~ElectrostaticFE ()=default |
virtual void | getLocal (Storage &cellWiseStorage) const=0 |
virtual RealType | getEnergy () const=0 |
virtual const quadrature::QuadratureValuesContainer< ValueType, memorySpace > & | getFunctionalDerivative () const=0 |
virtual void | applyNonLocal (linearAlgebra::MultiVector< ValueType, memorySpace > &X, linearAlgebra::MultiVector< ValueType, memorySpace > &Y, bool updateGhostX, bool updateGhostY) const=0 |
virtual bool | hasLocalComponent () const=0 |
virtual bool | hasNonLocalComponent () const=0 |
![]() | |
virtual | ~Hamiltonian ()=default |
virtual void | getLocal (utils::MemoryStorage< ValueTypeOperator, memorySpace > &cellWiseStorage) const =0 |
virtual void | applyNonLocal (linearAlgebra::MultiVector< ValueTypeOperator, memorySpace > &X, linearAlgebra::MultiVector< ValueTypeOperator, memorySpace > &Y, bool updateGhostX, bool updateGhostY) const =0 |
virtual bool | hasLocalComponent () const =0 |
virtual bool | hasNonLocalComponent () const =0 |
![]() | |
virtual | ~Energy ()=default |
virtual linearAlgebra::blasLapack::real_type< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > > | getEnergy () const=0 |
Private Attributes | |
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > | d_linAlgOpContext |
std::shared_ptr< atoms::AtomSphericalDataContainer > | d_atomSphericalDataContainerPSP |
std::shared_ptr< const atoms::AtomSevereFunction< dim > > | d_atomVLocFunction |
std::shared_ptr< const basis::AtomCenterNonLocalOpContextFE< ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim > > | d_atomNonLocOpContext |
std::shared_ptr< ElectrostaticLocalFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > | d_electrostaticLocal |
RealType | d_energy |
const size_type | d_numComponents |
utils::ConditionalOStream | d_rootCout |
const utils::mpi::MPIComm | d_mpiComm |
const size_type | d_maxCellBlock |
const size_type | d_maxWaveFnBlock |
const std::vector< std::string > | d_atomSymbolVec |
bool | d_isNonLocPSP |
using dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::RealType = typename ElectrostaticFE<ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim>::RealType |
using dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::Storage = typename ElectrostaticFE<ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim>::Storage |
using dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::ValueType = typename ElectrostaticFE<ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim>::ValueType |
dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::ElectrostaticONCVNonLocFE | ( | const std::vector< utils::Point > & | atomCoordinates, |
const std::vector< double > & | atomCharges, | ||
const std::vector< std::string > & | atomSymbolVec, | ||
const std::shared_ptr< atoms::AtomSphericalDataContainer > | atomSphericalDataContainerPSP, | ||
const std::vector< double > & | smearedChargeRadius, | ||
const quadrature::QuadratureValuesContainer< RealType, memorySpace > & | electronChargeDensity, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > | feBMTotalCharge, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > | feBMWaveFn, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDTotalChargeStiffnessMatrix, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDNuclearChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDElectronicChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDHamiltonian, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDAtomCenterNonLocalOperator, | ||
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > | linAlgOpContext, | ||
const size_type | maxCellBlock, | ||
const size_type | maxWaveFnBlock, | ||
const bool | useDealiiMatrixFreePoissonSolve = true |
||
) |
Constructor.
dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::ElectrostaticONCVNonLocFE | ( | const std::vector< utils::Point > & | atomCoordinates, |
const std::vector< double > & | atomCharges, | ||
const std::vector< std::string > & | atomSymbolVec, | ||
const std::shared_ptr< atoms::AtomSphericalDataContainer > | atomSphericalDataContainerPSP, | ||
const std::vector< double > & | smearedChargeRadius, | ||
const utils::ScalarSpatialFunctionReal & | atomicTotalElectroPotentialFunction, | ||
const utils::ScalarSpatialFunctionReal & | atomicElectronicChargeDensityFunction, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > | feBMTotalCharge, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > | feBMWaveFn, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDTotalChargeStiffnessMatrix, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDNuclearChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDElectronicChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDHamiltonian, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDAtomCenterNonLocalOperator, | ||
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > | linAlgOpContext, | ||
const size_type | maxCellBlock, | ||
const size_type | maxWaveFnBlock, | ||
const bool | useDealiiMatrixFreePoissonSolve = true |
||
) |
|
default |
|
override |
void dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::evalEnergy | ( | const std::vector< RealType > & | occupation, |
linearAlgebra::MultiVector< ValueTypeWaveFnCoeff, memorySpace > & | X | ||
) |
std::shared_ptr< const basis::AtomCenterNonLocalOpContextFE< ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim > > dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::getAtomCenterNonLocalOpContextFE |
|
overridevirtual |
|
overridevirtual |
|
override |
|
overridevirtual |
|
overridevirtual |
void dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::reinitBasis | ( | const std::vector< utils::Point > & | atomCoordinates, |
const utils::ScalarSpatialFunctionReal & | atomicTotalElectroPotentialFunction, | ||
const utils::ScalarSpatialFunctionReal & | atomicElectronicChargeDensityFunction, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > | feBMTotalCharge, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > | feBMWaveFn, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDTotalChargeStiffnessMatrix, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDNuclearChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDElectronicChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDHamiltonian, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDAtomCenterNonLocalOperator | ||
) |
void dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::reinitBasis | ( | const std::vector< utils::Point > & | atomCoordinates, |
std::shared_ptr< const basis::FEBasisManager< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > | feBMTotalCharge, | ||
std::shared_ptr< const basis::FEBasisManager< ValueTypeWaveFnCoeff, ValueTypeWaveFnBasis, memorySpace, dim > > | feBMWaveFn, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDTotalChargeStiffnessMatrix, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDNuclearChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | feBDElectronicChargeRhs, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDHamiltonian, | ||
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeWaveFnBasis, memorySpace > > | feBDAtomCenterNonLocalOperator | ||
) |
void dftefe::ksdft::ElectrostaticONCVNonLocFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, ValueTypeWaveFnCoeff, memorySpace, dim >::reinitField | ( | const quadrature::QuadratureValuesContainer< RealType, memorySpace > & | electronChargeDensity | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |