Quantum 3xplorer (Q3)
Loading...
Searching...
No Matches
effective_potential_non_local.hpp
Go to the documentation of this file.
1
#pragma once
2
3
/**
4
* EffectiveNonlocalPotential — abstract interface for the effective
5
* D-matrix computation (QE's "newd").
6
*
7
* Combines the bare D_ij^ion matrix with the G-space integral of
8
* V_eff(G) × Q_ij(G) × e^{-iG·τ} to produce the effective D-matrix
9
* used in the non-local Hamiltonian.
10
*
11
* Implements Eq. (13) of K. Laasonen, A. Pasquarello, R. Car, C. Lee &
12
* D. Vanderbilt, Phys. Rev. B 47, 10142 (1993), with V_eff their Eq. (12).
13
* For a PAW dataset the same integral is D̂_ij, Eq. (44) of G. Kresse &
14
* D. Joubert, Phys. Rev. B 59, 1758 (1999).
15
*/
16
17
#include <complex>
18
#include <vector>
19
20
#include "
layer_0_core/types/init.hpp
"
21
22
namespace
q3
{
23
24
// Forward declarations
25
class
Crystal;
26
class
PlanewaveBasis;
27
28
class
EffectiveNonlocalPotential
{
29
public
:
30
virtual
~EffectiveNonlocalPotential
() =
default
;
31
32
/**
33
* Compute the effective D-matrix for all atoms.
34
*
35
* @param crystal_structure Crystal structure with atom positions.
36
* @param planewave_basis Plane-wave basis set.
37
* @param total_potential_g Total effective potential V_eff(G).
38
* @return effective_d_matrix[atom_index][projector_i * nproj + projector_j]
39
*/
40
[[nodiscard]]
virtual
std::vector<std::vector<Real>>
41
compute
(
const
Crystal
& crystal_structure,
42
const
PlanewaveBasis
& planewave_basis,
43
const
std::vector<Complex>& total_potential_g)
const
= 0;
44
};
45
46
}
// namespace q3
q3::Crystal
Definition
crystal.hpp:30
q3::EffectiveNonlocalPotential
Definition
effective_potential_non_local.hpp:28
q3::EffectiveNonlocalPotential::compute
virtual std::vector< std::vector< Real > > compute(const Crystal &crystal_structure, const PlanewaveBasis &planewave_basis, const std::vector< Complex > &total_potential_g) const =0
q3::EffectiveNonlocalPotential::~EffectiveNonlocalPotential
virtual ~EffectiveNonlocalPotential()=default
q3::PlanewaveBasis
Definition
init.hpp:43
init.hpp
q3
Definition
q3_core_api.hpp:33
src
layer_3_representation
pseudopotential
ultrasoft
internal
effective_potential_non_local.hpp
Generated by
1.9.8