#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 |
Public Types inherited from dftefe::ksdft::ElectrostaticFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim > | |
| 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 |
Public Member Functions inherited from dftefe::ksdft::ElectrostaticFE< ValueTypeBasisData, ValueTypeBasisCoeff, ValueTypeWaveFnBasis, memorySpace, dim > | |
| 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 |
Public Member Functions inherited from dftefe::ksdft::Hamiltonian< ValueTypeOperator, memorySpace > | |
| 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 |
Public Member Functions inherited from dftefe::ksdft::Energy< linearAlgebra::blasLapack::real_type< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > > > | |
| virtual | ~Energy ()=default |
| virtual linearAlgebra::blasLapack::real_type< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisData, ValueTypeBasisCoeff > > | getEnergy () const=0 |
| 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 |
|
private |
|
private |
|
private |
|
private |
|
private |