87 [[nodiscard]]
Real value(
int index_1,
int index_2,
int index_3)
const {
88 const std::size_t flat_index =
114 for (
int dimension = 0; dimension < 3; dimension++) {
132 if (species_index >= 0 && species_index <
static_cast<int>(counts.size()))
133 counts[species_index]++;
static int atomic_number_by_element_symbol(const std::string &symbol)
3×3 matrix stored row-major: row i = mat[i]
Real determinant() const
Determinant.
Vector3D cartesian_position_bohr(int atom_index) const
Cartesian position of one atom, in bohr.
int number_of_atoms() const
std::string unit
The unit values is in, e.g. "e/bohr^3".
Matrix3x3 lattice_vectors_bohr
Rows are a1, a2, a3, Cartesian, in bohr.
std::vector< int > atom_species_indices
Species of each atom, an index into species_symbols.
int number_of_grid_points() const
std::vector< Vector3D > atom_positions_crystal
Fractional (crystal) coordinates, parallel to atom_species_indices.
std::vector< std::string > species_symbols
Element symbols, one per species.
std::vector< Real > species_valence_charges
Valence charge of each species, parallel to species_symbols.
std::string description
Free text for a format's comment line, e.g. "charge density".
std::vector< int > atoms_per_species() const
How many atoms each species has, in species order, for formats that group atoms so.
Real cell_volume_bohr3() const
Real value(int index_1, int index_2, int index_3) const
The sample at grid point (i1, i2, i3), third index fastest.
std::vector< Real > values
The samples themselves, number_of_grid_points() of them.
int atomic_number(int atom_index) const
Atomic number of one atom, from its element symbol.
std::array< int, 3 > grid_dimensions
Grid point counts along a1, a2, a3.