StDescriptors

struct StDescriptors

Container for a structure descriptors.

Contains:

  • Atomic Energy Descriptors

  • Force Descriptors (Optional)

  • Stress Descriptors (Optional)

To fully initialise this object it needs to know:

  • number of atoms in a structure (from Structure)

  • number of nn for every atom (from Structure)

  • dimension of the descriptor vector (Config)

  • whether force and stress is being calculated (from Config)

Note

Required Config keys: FORCE STRESS. INTERNAL_KEY DSIZE.

Public Types

typedef Eigen::VectorXd aed_type

Atomic Energy Descriptor (AED) type

Dimensions: [descriptor size]

typedef Eigen::Matrix<double, Eigen::Dynamic, 3> fd_type

Force Descriptor (FD) type

Dimensions: [descriptor size, 3]

typedef Eigen::Matrix<double, Eigen::Dynamic, 6> sd_type

Stress Descriptor (SD) type

Dimensions: [descriptor size,6]

typedef Eigen::Ref<Eigen::VectorXd> rho_rtype

Density array to be used by many-body descriptors… TODO

Dimensions: [atom i][n]

where n is specific to given descriptor

Public Functions

StDescriptors(const Structure &s, const Config &c)

This constructor fully initialise this object

Requires:

StDescriptors()

Default constructor. Object is left uninitialised

Public Members

aeds_type aeds

AED for all atoms

This object will always be initialised given provided Structure contains atoms.

Dimensions: [number of atoms, descriptor size]

std::vector<std::vector<fd_type>> fd

FD for all atoms

Dimensions: [number of atoms, number of atom NN, descriptor size, 3]

sd_type sd

SD for a Structure

Dimensions: [descriptor size, 6]

bool normalised = false

True if descriptors are normalised