Quantum 3xplorer (Q3)
Loading...
Searching...
No Matches
projector_source.hpp
Go to the documentation of this file.
1
#pragma once
2
3
/**
4
* MeanFieldProjectorSource — Kleinman-Bylander projectors, fetched on demand.
5
*
6
* The projector counterpart of MeanFieldBandSource (see init.hpp): every
7
* projector of every atom at one k-point is as large as a band set of the same
8
* count, so the record carries a source that builds one k-point at a time
9
* instead of holding them all. Only the BerkeleyGW `VKB` writer reads it.
10
*/
11
12
#include "
layer_0_core/types/init.hpp
"
13
#include "
layer_0_core/types/matrix.hpp
"
14
15
namespace
q3
{
16
17
/// Hands out one k-point's projectors at a time; see the file comment.
18
class
MeanFieldProjectorSource
{
19
public
:
20
virtual
~MeanFieldProjectorSource
() =
default
;
21
22
/**
23
* <k+G|β> for physical k-point `kpoint_index`: one row per projector, atoms
24
* in the crystal's own order and each atom's channels in the order of
25
* `MeanFieldRecord::nonlocal_coefficients`; one column per plane wave, in
26
* the order of `MeanFieldRecord::kpoint_g_vector_indices[kpoint_index]`.
27
* Valid until the next call for a different k-point.
28
*/
29
[[nodiscard]]
virtual
const
Matrix<Complex>
&
projectors
(
int
kpoint_index)
const
= 0;
30
};
31
32
}
// namespace q3
q3::Matrix
Definition
matrix.hpp:13
q3::MeanFieldProjectorSource
Hands out one k-point's projectors at a time; see the file comment.
Definition
projector_source.hpp:18
q3::MeanFieldProjectorSource::~MeanFieldProjectorSource
virtual ~MeanFieldProjectorSource()=default
q3::MeanFieldProjectorSource::projectors
virtual const Matrix< Complex > & projectors(int kpoint_index) const =0
init.hpp
matrix.hpp
q3
Definition
q3_core_api.hpp:33
src
io
mean_field_record
projector_source.hpp
Generated by
1.9.8