DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
The functions in this namespace contain the expressions for the various terms of the configurational force (https://link.aps.org/doi/10.1103/PhysRevB.97.165132) for both periodic (see Eq. 38) and non-periodic (see Eqs. 28-29) case. More...
Functions | |
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > | getPhiExtEshelbyTensor (const dealii::VectorizedArray< double > &phiExt, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradPhiExt) |
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > | getVselfBallEshelbyTensor (const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradVself) |
dealii::Tensor< 2, 3, double > | getVselfBallEshelbyTensor (const dealii::Tensor< 1, 3, double > &gradVself) |
Eshelby tensor corresponding to nuclear self energy. | |
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > | getEElectroEshelbyTensor (const dealii::VectorizedArray< double > &phiTot, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradPhiTot, const dealii::VectorizedArray< double > &rho) |
All-electron electrostatic part of the Eshelby tensor. | |
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > | getELocXcEshelbyTensor (const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradRho, const dealii::VectorizedArray< double > &exc, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRho) |
exchange-correlation part of the ELoc Eshelby tensor | |
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > | getELocPspEshelbyTensor (const dealii::VectorizedArray< double > &rho, const dealii::VectorizedArray< double > &pseudoVLoc, const dealii::VectorizedArray< double > &phiExt) |
psp part of the ELoc Eshelby tensor | |
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > | getFPSPLocal (const dealii::VectorizedArray< double > rho, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradPseudoVLoc, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradPhiExt) |
Local pseudopotential force contribution. | |
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > | getFNonlinearCoreCorrection (const dealii::VectorizedArray< double > &vxc, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradRhoCore) |
Nonlocal core correction pseudopotential force contribution. | |
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > | getFNonlinearCoreCorrection (const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRho, const dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > &hessianRhoCore) |
Nonlocal core correction pseudopotential force contribution. | |
The functions in this namespace contain the expressions for the various terms of the configurational force (https://link.aps.org/doi/10.1103/PhysRevB.97.165132) for both periodic (see Eq. 38) and non-periodic (see Eqs. 28-29) case.
Basically, the configurational force is the Gateaux derivative of the Kohn-Sham saddle point problem with respect to perturbations of the underlying space due to generic generator (which can be affine perturbation in case of stress computation or an atom centered generator with a compact support for computing the forces). The terms in the configurational force can be grouped into two types: one type can be written as contraction of Eshelby tensors (second order tensor) with the gradient of the Generator. Another type involves contraction of first order tensors with the Generator. The functions in this class provide expressions for the left side of the contraction operation- the second order Eshelby tensors (denoted by E*) and the first order force tensors (denoted by F*). General nomenclature of the input arguments: a) phiTot- total electrostatic potential b) phiExt- sum of electrostatic potential from all nuclear charges c) rho- electron density d) gradRho- gradient of electron density e) exc- exchange correlation energy f) derExcGradRho- derivative of exc with gradient of rho g) psiBegin- begin iterator to vector eigenvectors stored as a flattened array over k points and number of eigenvectors for each k point (periodic case has complex valued eigenvectors which is why dealii::Tensor<1,2,dealii::VectorizedArray<double> is used in functions for periodic case) h) gradPsiBegin- gradient of eigenvectors i) eigenValues- Kohn sham grounstate eigenvalues stored in a vector. For periodic problems with multiple k points the outer vector should be over k points j) tVal- smearing temperature in K k) pseudoVLoc- local part of the pseudopotential l) gradPseudoVLoc- gradient of local part of pseudopotential m) ZetaDeltaV- nonlocal pseudowavefunctions times deltaV (see Eq. 11 in https://link.aps.org/doi/10.1103/PhysRevB.97.165132) n) gradZetaDeltaV- gradient of ZetaDeltaV o) projectorKetTimesPsiTimesV- nonlocal pseudopotential projector ket times eigenvectors which are precomputed. The nonlocal pseudopotential constants are also multiplied to this quantity. (see Eq. 11 in https://link.aps.org/doi/10.1103/PhysRevB.97.165132)
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getEElectroEshelbyTensor | ( | const dealii::VectorizedArray< double > & | phiTot, |
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradPhiTot, | ||
const dealii::VectorizedArray< double > & | rho ) |
All-electron electrostatic part of the Eshelby tensor.
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getELocPspEshelbyTensor | ( | const dealii::VectorizedArray< double > & | rho, |
const dealii::VectorizedArray< double > & | pseudoVLoc, | ||
const dealii::VectorizedArray< double > & | phiExt ) |
psp part of the ELoc Eshelby tensor
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getELocXcEshelbyTensor | ( | const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradRho, |
const dealii::VectorizedArray< double > & | exc, | ||
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | derExcGradRho ) |
exchange-correlation part of the ELoc Eshelby tensor
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getFNonlinearCoreCorrection | ( | const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | derExcGradRho, |
const dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > & | hessianRhoCore ) |
Nonlocal core correction pseudopotential force contribution.
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getFNonlinearCoreCorrection | ( | const dealii::VectorizedArray< double > & | vxc, |
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradRhoCore ) |
Nonlocal core correction pseudopotential force contribution.
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getFPSPLocal | ( | const dealii::VectorizedArray< double > | rho, |
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradPseudoVLoc, | ||
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradPhiExt ) |
Local pseudopotential force contribution.
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getPhiExtEshelbyTensor | ( | const dealii::VectorizedArray< double > & | phiExt, |
const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradPhiExt ) |
Eshelby tensor from sum of electrostatic potential from all nuclear charges (only used for testing purpose)
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > dftfe::eshelbyTensor::getVselfBallEshelbyTensor | ( | const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > & | gradVself | ) |
Eshelby tensor corresponding to nuclear self energy (only used for testing purpose)
dealii::Tensor< 2, 3, double > dftfe::eshelbyTensor::getVselfBallEshelbyTensor | ( | const dealii::Tensor< 1, 3, double > & | gradVself | ) |
Eshelby tensor corresponding to nuclear self energy.