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

Structure labels

Eigen::VectorXd energy
Eigen::VectorXd forces
Eigen::VectorXd stresses

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

Structure from_json(std::string file_name)