Structures
- 
class Structure
- Neighbor attributes - 
Eigen::VectorXi neighbor_count
- Neighbor count for each atom. 
 - 
Eigen::VectorXi cumulative_neighbor_count
- Cumulative neighbor count. The vector has length N+1, where N is the number of atoms in the structure, with first entry 0. 
 - 
Eigen::VectorXi neighbor_species
- Species of each neighbor. The vector has length equal to the total number of neighbors in the structure. 
 - 
Eigen::VectorXi structure_indices
- ID of each neighbor, where the ID is determined by the initial order of atoms used when the structure was constructed. 
 - The periodic box - 
Eigen::MatrixXd cell
 - 
Eigen::MatrixXd cell_transpose
 - 
Eigen::MatrixXd cell_transpose_inverse
 - 
Eigen::MatrixXd cell_dot
 - 
Eigen::MatrixXd cell_dot_inverse
 - Atom coordinates - 
Eigen::MatrixXd positions
 - 
Eigen::MatrixXd wrapped_positions
 - 
Eigen::MatrixXd relative_positions
 - Descriptors - 
std::vector<Descriptor*> descriptor_calculators
 - 
std::vector<DescriptorValues> descriptors
 - Mean and variance predictions - 
Eigen::VectorXd mean_efs
 - 
Eigen::VectorXd variance_efs
 - 
std::vector<Eigen::VectorXd> mean_contributions
 - 
std::vector<Eigen::VectorXd> local_uncertainties
 - Public Functions - 
Structure()
- Default structure constructor. 
 - 
Structure(const Eigen::MatrixXd &cell, const std::vector<int> &species, const Eigen::MatrixXd &positions)
- Basic structure constructor. Holds the cell, species, and positions of a periodic structure of atoms. - Parameters:
- cell – 3x3 array whose rows are the Bravais lattice vectors of the periodic cell. 
- species – List of integers denoting the chemical species of each atom. Must lie between 0 and s-1 (inclusive), where s is the number of species in the system. 
- positions – Nx3 array of atomic coordinates. 
 
 
 - 
Structure(const Eigen::MatrixXd &cell, const std::vector<int> &species, const Eigen::MatrixXd &positions, double cutoff, std::vector<Descriptor*> descriptor_calculators)
 - 
Eigen::MatrixXd wrap_positions()
 - 
double get_single_sweep_cutoff()
 - 
void compute_neighbors()
 - 
void compute_descriptors()
 - Public Members - 
double cutoff
 - 
double single_sweep_cutoff
 - 
double volume
 - 
int sweep
 - 
int n_neighbors
 - 
std::vector<int> species
- Species of each atom. 
 - 
int noa
- Number of atoms in the structure. 
 - Public Static Functions - static NLOHMANN_DEFINE_TYPE_INTRUSIVE(Structure, neighbor_count, cutoff, cumulative_neighbor_count, structure_indices, neighbor_species, cell, cell_transpose, cell_transpose_inverse, cell_dot, cell_dot_inverse, positions, wrapped_positions, relative_positions, cutoff, single_sweep_cutoff, volume, sweep, n_neighbors, species, noa, energy, forces, stresses, mean_efs, variance_efs, mean_contributions, local_uncertainties, descriptor_calculators, descriptors) void to_json(std Structure from_json (std::string file_name)
 
- 
Eigen::VectorXi neighbor_count