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