Loading...
Searching...
No Matches
charge_density_augmentation.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * AugmentationChargeTable — abstract interface for augmentation charge
5 * Q_ij(q,L) interpolation tables.
6 *
7 * The planewave-specific implementation (PlanewaveAugmentationChargeTable)
8 * provides the concrete Bessel-transform-based tables.
9 *
10 * The tables hold the radial transform of Eq. (32) of K. Laasonen,
11 * A. Pasquarello, R. Car, C. Lee & D. Vanderbilt, Phys. Rev. B 47, 10142
12 * (1993), for the Q_ij^L of their Eq. (27). The augmented density they feed
13 * is Eq. (18) of D. Vanderbilt, Phys. Rev. B 41, 7892 (1990).
14 */
15
18
19namespace q3 {
20
22 public:
23 virtual ~AugmentationChargeTable() = default;
24
25 /**
26 * Interpolate Q_ij^L(q), the radial Fourier transform of Q_ij in channel L,
27 * at a given q value.
28 */
29 [[nodiscard]] virtual Real interpolate_augmentation_function(int species_type_index,
30 int projector_pair_index,
31 int angular_momentum,
32 Real q_value) const = 0;
33
34 /**
35 * Interpolate the derivative dQ_ij^L/dq of the radial Fourier transform of
36 * Q_ij in channel L.
37 */
38 [[nodiscard]] virtual Real
40 int projector_pair_index,
41 int angular_momentum,
42 Real q_value) const = 0;
43
44 /**
45 * Interpolate the total (L=0) Q function at a given q value.
46 */
47 [[nodiscard]] virtual Real
48 interpolate_qfunc(int species_type_index, int projector_pair_index, Real q_value) const = 0;
49
50 /**
51 * Maximum angular momentum channel in the augmentation tables.
52 */
53 [[nodiscard]] virtual int maximum_angular_momentum_q() const = 0;
54};
55
56} // namespace q3
virtual Real interpolate_qfunc(int species_type_index, int projector_pair_index, Real q_value) const =0
virtual ~AugmentationChargeTable()=default
virtual Real interpolate_augmentation_function_derivative(int species_type_index, int projector_pair_index, int angular_momentum, Real q_value) const =0
virtual int maximum_angular_momentum_q() const =0
virtual Real interpolate_augmentation_function(int species_type_index, int projector_pair_index, int angular_momentum, Real q_value) const =0
double Real