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

Calculates dispersion correction to energy, force and stress. More...

#include <dftd.h>

Public Member Functions

 dispersionCorrection (const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &interpool_comm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
 Constructor.
 
void computeDispresionCorrection (const std::vector< std::vector< double > > &atomLocations, const std::vector< std::vector< double > > &d_domainBoundingVectors)
 
double getEnergyCorrection () const
 
double getForceCorrection (int atomNo, int dim) const
 
double getStressCorrection (int dim1, int dim2) const
 

Private Member Functions

void initDispersionCorrection (const std::vector< std::vector< double > > &atomLocations, const std::vector< std::vector< double > > &d_domainBoundingVectors)
 
void computeDFTDCorrection ()
 

Private Attributes

int d_natoms
 
double d_energyDispersion
 
std::vector< double > d_forceDispersion
 
std::array< double, 9 > d_stressDispersion
 
std::vector< double > d_atomCoordinates
 
std::vector< int > d_atomicNumbers
 
std::array< double, 9 > d_latticeVectors
 
const MPI_Comm mpi_communicator_global
 
const MPI_Comm mpi_communicator_domain
 
const MPI_Comm interpoolcomm
 
const MPI_Comm interBandGroupComm
 
const dftParametersd_dftParams
 

Detailed Description

Calculates dispersion correction to energy, force and stress.

Author
Nikhil Kodali

Constructor & Destructor Documentation

◆ dispersionCorrection()

dftfe::dispersionCorrection::dispersionCorrection ( const MPI_Comm & mpi_comm_parent,
const MPI_Comm & mpi_comm_domain,
const MPI_Comm & interpool_comm,
const MPI_Comm & interBandGroupComm,
const dftParameters & dftParams )

Constructor.

Member Function Documentation

◆ computeDFTDCorrection()

void dftfe::dispersionCorrection::computeDFTDCorrection ( )
private

◆ computeDispresionCorrection()

void dftfe::dispersionCorrection::computeDispresionCorrection ( const std::vector< std::vector< double > > & atomLocations,
const std::vector< std::vector< double > > & d_domainBoundingVectors )

Wrapper function for various dispersion corrections to energy, force and stress.

Parameters
atomLocations
d_domainBoundingVectors

◆ getEnergyCorrection()

double dftfe::dispersionCorrection::getEnergyCorrection ( ) const

◆ getForceCorrection()

double dftfe::dispersionCorrection::getForceCorrection ( int atomNo,
int dim ) const

◆ getStressCorrection()

double dftfe::dispersionCorrection::getStressCorrection ( int dim1,
int dim2 ) const

◆ initDispersionCorrection()

void dftfe::dispersionCorrection::initDispersionCorrection ( const std::vector< std::vector< double > > & atomLocations,
const std::vector< std::vector< double > > & d_domainBoundingVectors )
private

Member Data Documentation

◆ d_atomCoordinates

std::vector<double> dftfe::dispersionCorrection::d_atomCoordinates
private

◆ d_atomicNumbers

std::vector<int> dftfe::dispersionCorrection::d_atomicNumbers
private

◆ d_dftParams

const dftParameters& dftfe::dispersionCorrection::d_dftParams
private

◆ d_energyDispersion

double dftfe::dispersionCorrection::d_energyDispersion
private

◆ d_forceDispersion

std::vector<double> dftfe::dispersionCorrection::d_forceDispersion
private

◆ d_latticeVectors

std::array<double, 9> dftfe::dispersionCorrection::d_latticeVectors
private

◆ d_natoms

int dftfe::dispersionCorrection::d_natoms
private

◆ d_stressDispersion

std::array<double, 9> dftfe::dispersionCorrection::d_stressDispersion
private

◆ interBandGroupComm

const MPI_Comm dftfe::dispersionCorrection::interBandGroupComm
private

◆ interpoolcomm

const MPI_Comm dftfe::dispersionCorrection::interpoolcomm
private

◆ mpi_communicator_domain

const MPI_Comm dftfe::dispersionCorrection::mpi_communicator_domain
private

◆ mpi_communicator_global

const MPI_Comm dftfe::dispersionCorrection::mpi_communicator_global
private

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