DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::dftBase Class Referenceabstract

abstract base class for dft More...

#include <dftBase.h>

Inheritance diagram for dftfe::dftBase:
dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >

Public Member Functions

virtual ~dftBase ()
 This is required to correctly delete the derived class object through the base class ptr.
 
virtual void set ()=0
 
virtual void init ()=0
 
virtual void run ()=0
 
virtual void writeMesh ()=0
 
virtual void updateAtomPositionsAndMoveMesh (const std::vector< dealii::Tensor< 1, 3, double > > &globalAtomsDisplacements, const double maxJacobianRatioFactor=1.25, const bool useSingleAtomSolutionsOverride=false)=0
 
virtual void deformDomain (const dealii::Tensor< 2, 3, double > &deformationGradient, const bool vselfPerturbationUpdateForStress=false, const bool useSingleAtomSolutionsInitialGuess=false, const bool print=true)=0
 Deforms the domain by the given deformation gradient and reinitializes the dftClass datastructures.
 
virtual std::tuple< bool, double > solve (const bool computeForces=true, const bool computeStress=true, const bool isRestartGroundStateCalcFromChk=false)=0
 
virtual void computeStress ()=0
 
virtual void trivialSolveForStress ()=0
 
virtual double getInternalEnergy () const =0
 
virtual double getEntropicEnergy () const =0
 
virtual double getFreeEnergy () const =0
 
virtual const distributedCPUVec< double > & getRhoNodalOut () const =0
 
virtual const distributedCPUVec< double > & getRhoNodalSplitOut () const =0
 
virtual double getTotalChargeforRhoSplit ()=0
 
virtual void resetRhoNodalIn (distributedCPUVec< double > &OutDensity)=0
 
virtual void resetRhoNodalSplitIn (distributedCPUVec< double > &OutDensity)=0
 
virtual const std::vector< std::vector< double > > & getAtomLocationsCart () const =0
 Gets the current atom Locations in cartesian form (origin at center of domain) from dftClass.
 
virtual const std::vector< std::vector< double > > & getImageAtomLocationsCart () const =0
 Gets the current image atom Locations in cartesian form (origin at center of domain) from dftClass.
 
virtual const std::vector< int > & getImageAtomIDs () const =0
 Gets the current image atom ids from dftClass.
 
virtual const std::vector< std::vector< double > > & getAtomLocationsFrac () const =0
 Gets the current atom Locations in fractional form from dftClass (only applicable for periodic and semi-periodic BCs)
 
virtual const std::vector< std::vector< double > > & getCell () const =0
 Gets the current cell lattice vectors.
 
virtual double getCellVolume () const =0
 Gets the current cell volume.
 
virtual const std::set< unsigned int > & getAtomTypes () const =0
 Gets the current atom types from dftClass.
 
virtual const std::vector< double > & getForceonAtoms () const =0
 Gets the current atomic forces (configurational forces) from dftClass.
 
virtual const dealii::Tensor< 2, 3, double > & getCellStress () const =0
 Gets the current cell stress from dftClass.
 
virtual dftParametersgetParametersObject () const =0
 Get reference to dftParameters object.
 
virtual void writeDomainAndAtomCoordinates ()=0
 writes the current domain bounding vectors and atom coordinates to files, which are required for geometry relaxation restart
 
virtual void writeDomainAndAtomCoordinates (const std::string Path) const =0
 writes the current domain bounding vectors and atom coordinates to files for structural optimization and dynamics restarts. The coordinates are stored as: 1. fractional for semi-periodic/periodic 2. Cartesian for non-periodic.
 
virtual void writeStructureEnergyForcesDataPostProcess (const std::string Path) const =0
 writes atomistics data for subsequent post-processing. Related to WRITE STRUCTURE ENERGY FORCES DATA POST PROCESS input parameter.
 
virtual void writeGSElectronDensity (const std::string Path) const =0
 writes quadrature grid information and associated spin-up and spin-down electron-density for post-processing
 
virtual const MPI_Comm & getMPIDomain () const =0
 
virtual const MPI_Comm & getMPIParent () const =0
 
virtual const MPI_Comm & getMPIInterPool () const =0
 
virtual const MPI_Comm & getMPIInterBand () const =0
 

Detailed Description

abstract base class for dft

Author
Sambit Das

Constructor & Destructor Documentation

◆ ~dftBase()

virtual dftfe::dftBase::~dftBase ( )
inlinevirtual

This is required to correctly delete the derived class object through the base class ptr.

Member Function Documentation

◆ computeStress()

virtual void dftfe::dftBase::computeStress ( )
pure virtual

◆ deformDomain()

virtual void dftfe::dftBase::deformDomain ( const dealii::Tensor< 2, 3, double > & deformationGradient,
const bool vselfPerturbationUpdateForStress = false,
const bool useSingleAtomSolutionsInitialGuess = false,
const bool print = true )
pure virtual

Deforms the domain by the given deformation gradient and reinitializes the dftClass datastructures.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getAtomLocationsCart()

virtual const std::vector< std::vector< double > > & dftfe::dftBase::getAtomLocationsCart ( ) const
pure virtual

Gets the current atom Locations in cartesian form (origin at center of domain) from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getAtomLocationsFrac()

virtual const std::vector< std::vector< double > > & dftfe::dftBase::getAtomLocationsFrac ( ) const
pure virtual

Gets the current atom Locations in fractional form from dftClass (only applicable for periodic and semi-periodic BCs)

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getAtomTypes()

virtual const std::set< unsigned int > & dftfe::dftBase::getAtomTypes ( ) const
pure virtual

Gets the current atom types from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getCell()

virtual const std::vector< std::vector< double > > & dftfe::dftBase::getCell ( ) const
pure virtual

Gets the current cell lattice vectors.

Returns
std::vector<std::vector<double>> 3 \times 3 matrix,lattice[i][j] corresponds to jth component of ith lattice vector

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getCellStress()

virtual const dealii::Tensor< 2, 3, double > & dftfe::dftBase::getCellStress ( ) const
pure virtual

Gets the current cell stress from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getCellVolume()

virtual double dftfe::dftBase::getCellVolume ( ) const
pure virtual

Gets the current cell volume.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getEntropicEnergy()

virtual double dftfe::dftBase::getEntropicEnergy ( ) const
pure virtual

◆ getForceonAtoms()

virtual const std::vector< double > & dftfe::dftBase::getForceonAtoms ( ) const
pure virtual

Gets the current atomic forces (configurational forces) from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getFreeEnergy()

virtual double dftfe::dftBase::getFreeEnergy ( ) const
pure virtual

◆ getImageAtomIDs()

virtual const std::vector< int > & dftfe::dftBase::getImageAtomIDs ( ) const
pure virtual

Gets the current image atom ids from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getImageAtomLocationsCart()

virtual const std::vector< std::vector< double > > & dftfe::dftBase::getImageAtomLocationsCart ( ) const
pure virtual

Gets the current image atom Locations in cartesian form (origin at center of domain) from dftClass.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getInternalEnergy()

virtual double dftfe::dftBase::getInternalEnergy ( ) const
pure virtual

◆ getMPIDomain()

virtual const MPI_Comm & dftfe::dftBase::getMPIDomain ( ) const
pure virtual

◆ getMPIInterBand()

virtual const MPI_Comm & dftfe::dftBase::getMPIInterBand ( ) const
pure virtual

◆ getMPIInterPool()

virtual const MPI_Comm & dftfe::dftBase::getMPIInterPool ( ) const
pure virtual

◆ getMPIParent()

virtual const MPI_Comm & dftfe::dftBase::getMPIParent ( ) const
pure virtual

◆ getParametersObject()

virtual dftParameters & dftfe::dftBase::getParametersObject ( ) const
pure virtual

Get reference to dftParameters object.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ getRhoNodalOut()

virtual const distributedCPUVec< double > & dftfe::dftBase::getRhoNodalOut ( ) const
pure virtual

◆ getRhoNodalSplitOut()

virtual const distributedCPUVec< double > & dftfe::dftBase::getRhoNodalSplitOut ( ) const
pure virtual

◆ getTotalChargeforRhoSplit()

virtual double dftfe::dftBase::getTotalChargeforRhoSplit ( )
pure virtual

◆ init()

virtual void dftfe::dftBase::init ( )
pure virtual

◆ resetRhoNodalIn()

virtual void dftfe::dftBase::resetRhoNodalIn ( distributedCPUVec< double > & OutDensity)
pure virtual

◆ resetRhoNodalSplitIn()

virtual void dftfe::dftBase::resetRhoNodalSplitIn ( distributedCPUVec< double > & OutDensity)
pure virtual

◆ run()

virtual void dftfe::dftBase::run ( )
pure virtual

◆ set()

virtual void dftfe::dftBase::set ( )
pure virtual

◆ solve()

virtual std::tuple< bool, double > dftfe::dftBase::solve ( const bool computeForces = true,
const bool computeStress = true,
const bool isRestartGroundStateCalcFromChk = false )
pure virtual

◆ trivialSolveForStress()

virtual void dftfe::dftBase::trivialSolveForStress ( )
pure virtual

◆ updateAtomPositionsAndMoveMesh()

virtual void dftfe::dftBase::updateAtomPositionsAndMoveMesh ( const std::vector< dealii::Tensor< 1, 3, double > > & globalAtomsDisplacements,
const double maxJacobianRatioFactor = 1.25,
const bool useSingleAtomSolutionsOverride = false )
pure virtual

◆ writeDomainAndAtomCoordinates() [1/2]

virtual void dftfe::dftBase::writeDomainAndAtomCoordinates ( )
pure virtual

writes the current domain bounding vectors and atom coordinates to files, which are required for geometry relaxation restart

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ writeDomainAndAtomCoordinates() [2/2]

virtual void dftfe::dftBase::writeDomainAndAtomCoordinates ( const std::string Path) const
pure virtual

writes the current domain bounding vectors and atom coordinates to files for structural optimization and dynamics restarts. The coordinates are stored as: 1. fractional for semi-periodic/periodic 2. Cartesian for non-periodic.

Parameters
[in]PathThe folder path to store the atom coordinates required during restart.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ writeGSElectronDensity()

virtual void dftfe::dftBase::writeGSElectronDensity ( const std::string Path) const
pure virtual

writes quadrature grid information and associated spin-up and spin-down electron-density for post-processing

Parameters
[in]PathThe folder path to store the atomistics data.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.

◆ writeMesh()

virtual void dftfe::dftBase::writeMesh ( )
pure virtual

◆ writeStructureEnergyForcesDataPostProcess()

virtual void dftfe::dftBase::writeStructureEnergyForcesDataPostProcess ( const std::string Path) const
pure virtual

writes atomistics data for subsequent post-processing. Related to WRITE STRUCTURE ENERGY FORCES DATA POST PROCESS input parameter.

Parameters
[in]PathThe folder path to store the atomistics data.

Implemented in dftfe::dftClass< FEOrder, FEOrderElectro, memorySpace >.


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