68 int band_index)
const = 0;
74 int bravais_lattice_index = 0;
75 Real lattice_parameter = 0.0;
76 Real two_pi_over_lattice_parameter = 0.0;
96 std::array<int, 3> fft_grid_dimensions = {0, 0, 0};
105 bool is_gamma_only =
false;
107 Real charge_density_energy_cutoff = 0.0;
108 Real wavefunction_energy_cutoff = 0.0;
115 std::array<int, 3> kpoint_grid_dimensions = {0, 0, 0};
116 std::array<int, 3> kpoint_grid_shifts = {0, 0, 0};
126 int number_of_bands = 0;
127 int number_of_spin_components = 1;
185 return static_cast<int>(kpoint_coordinates.size());
189 return static_cast<int>(atomic_numbers.size());
193 return static_cast<int>(charge_density_miller_indices.size());
198 return number_of_kpoints() * number_of_spin_components;
virtual const Complex * coefficients(int kpoint_state_index, int band_index) const =0
virtual ~MeanFieldBandSource()=default
std::complex< double > Complex
3×3 matrix stored row-major: row i = mat[i]
std::vector< Vector3D > kpoint_coordinates
Crystal (fractional) coordinates, one per physical k-point.
std::vector< std::vector< Real > > occupations
Indexed [kpoint_state_index][band_index]; max 1 per (k, spin) state.
int number_of_atoms() const
std::vector< std::vector< int > > kpoint_g_vector_indices
Per physical k-point, indices into charge_density_miller_indices.
std::vector< SymmetryOperation > symmetry_operations
Matrix3x3 reciprocal_lattice_vectors
int number_of_kpoints() const
std::vector< std::vector< Complex > > charge_density_g
std::vector< std::vector< std::vector< Real > > > nonlocal_coefficients
std::vector< std::vector< Real > > eigenvalues_rydberg
Indexed [kpoint_state_index][band_index]; Rydberg.
std::vector< int > projectors_per_species
Projector channels – one per (β, m) – of each species.
std::vector< Complex > exchange_correlation_potential_g
Matrix3x3 lattice_vectors
std::vector< std::vector< Complex > > self_consistent_potential_g
std::vector< int > plane_waves_per_kpoint
std::vector< int > atomic_numbers
int number_of_kpoint_states() const
(k-point, spin) state count – the row count of eigenvalues/occupations.
std::shared_ptr< const MeanFieldBandSource > band_source
std::vector< IntegerVector3D > charge_density_miller_indices
std::vector< int > atom_species_indices
0-based species index of each atom, parallel to atomic_numbers.
int number_of_g_vectors() const
std::shared_ptr< const MeanFieldProjectorSource > projector_source
std::vector< Vector3D > atom_positions_cartesian
Cartesian positions in alat units, parallel to atomic_numbers.
std::vector< Real > kpoint_weights
Engine-convention weights; formats renormalize as they require.