DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
eshelbyTensorSpinPolarized.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4// authors.
5//
6// This file is part of the DFT-FE code.
7//
8// The DFT-FE code is free software; you can use it, redistribute
9// it, and/or modify it under the terms of the GNU Lesser General
10// Public License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12// The full text of the license can be found in the file LICENSE at
13// the top level of the DFT-FE distribution.
14//
15// ---------------------------------------------------------------------
16//
17#ifndef eshelbySP_H_
18#define eshelbySP_H_
19#include "constants.h"
20#include "headers.h"
21
22namespace dftfe
23{
24 /**
25 * @brief 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)
26 * for both periodic and non-periodic case.
27 *
28 * The functions in this namespace are similar to the ones in eshelbyTensor.h
29 * except the ones here are specialized
30 * for spin polarized case. Spin0 and Spin1 refer to up and down spins
31 * respectively. General nomenclature of the input arguments: a) phiTot- total
32 * electrostatic potential b) phiExt- sum of electrostatic potential from all
33 * nuclear charges c) rho- electron density d) gradRho- gradient of electron
34 * density e) exc- exchange correlation energy f) derExcGradRho- derivative of
35 * exc with gradient of rho g) psiBegin- begin iterator to vector eigenvectors
36 * stored as a flattened array over k points and number of eigenvectors for
37 * each k point (periodic case has complex valued eigenvectors which is why
38 * dealii::Tensor<1,2,dealii::VectorizedArray<double> is used in functions for
39 * periodic case) h) gradPsiBegin- gradient of eigenvectors i) eigenValues-
40 * Kohn sham grounstate eigenvalues stored in a vector. For periodic problems
41 * with multiple k points the outer vector should be over k points j) tVal-
42 * smearing temperature in K k) pseudoVLoc- local part of the pseuodopotential
43 * l) gradPseudoVLoc- gradient of local part of pseudopotential m) ZetaDeltaV-
44 * nonlocal pseudowavefunctions times deltaV (see Eq. 11 in
45 * https://link.aps.org/doi/10.1103/PhysRevB.97.165132) n) gradZetaDeltaV-
46 * gradient of ZetaDeltaV o) projectorKetTimesPsiTimesV- nonlocal
47 * pseudopotential projector ket times eigenvectors which are precomputed. The
48 * nonlocal pseudopotential constants are also multiplied to this quantity.
49 * (see Eq. 11 in https://link.aps.org/doi/10.1103/PhysRevB.97.165132)
50 *
51 * @author Sambit Das
52 */
54 {
55 /// exchange-correlation and psp part of the ELoc Eshelby tensor
56 dealii::Tensor<2, 3, dealii::VectorizedArray<double>>
58 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>> &gradRhoSpin0,
59 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>> &gradRhoSpin1,
60 const dealii::VectorizedArray<double> & exc,
61 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>>
62 &derExcGradRhoSpin0,
63 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>>
64 &derExcGradRhoSpin1);
65
66
67
68 /// Nonlocal core correction pseudopotential force contribution
69 dealii::Tensor<1, 3, dealii::VectorizedArray<double>>
71 const dealii::VectorizedArray<double> &vxcSpin0,
72 const dealii::VectorizedArray<double> &vxcSpin1,
73 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>>
74 &derExcGradRhoSpin0,
75 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>>
76 &derExcGradRhoSpin1,
77 const dealii::Tensor<1, 3, dealii::VectorizedArray<double>> &gradRhoCore,
78 const dealii::Tensor<2, 3, dealii::VectorizedArray<double>>
79 & hessianRhoCore,
80 const bool isXCGGA);
81 }; // namespace eshelbyTensorSP
82
83} // namespace dftfe
84#endif
The functions in this namespace contain the expressions for the various terms of the configurational ...
Definition eshelbyTensorSpinPolarized.h:54
dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > getELocXcEshelbyTensor(const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradRhoSpin0, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradRhoSpin1, const dealii::VectorizedArray< double > &exc, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRhoSpin0, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRhoSpin1)
exchange-correlation and psp part of the ELoc Eshelby tensor
dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > getFNonlinearCoreCorrection(const dealii::VectorizedArray< double > &vxcSpin0, const dealii::VectorizedArray< double > &vxcSpin1, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRhoSpin0, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &derExcGradRhoSpin1, const dealii::Tensor< 1, 3, dealii::VectorizedArray< double > > &gradRhoCore, const dealii::Tensor< 2, 3, dealii::VectorizedArray< double > > &hessianRhoCore, const bool isXCGGA)
Nonlocal core correction pseudopotential force contribution.
Definition pseudoPotentialToDftfeConverter.cc:34