# Core Distopia Functions

template<typename T>
void CalcBondsOrtho(const T *coords0, const T *coords1, const T *box, std::size_t n, T *out)

Calculates the distance between two sets of points in two contiguous arrays under orthorhombic periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords0 – array of coordinates

• coords1 – array of coordinates

• box – the bounding box of the simulation

• n – the number of distances to calculate

• out – result array into which the distances are returned

template<typename T>
void CalcBondsNoBox(const T *coords0, const T *coords1, std::size_t n, T *out)

Calculates the distance between two sets of points in two contiguous arrays without periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords0 – array of coordinates

• coords1 – array of coordinates

• n – the number of distances to calculate

• out – result array into which the distances are returned

template<typename T>
void CalcBondsIdxOrtho(const T *coords, const std::size_t *idxs, const T *box, std::size_t n, T *out)

Calculates the distance between sets of two points in a single array indexed by the idxs parameter under orthorhombic periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords – array of coordinates

• idxs – the indicies of the distances to calculate

• box – the bounding box of the simulation

• n – the number of distances to calculate

• out – result array into which the distances are returned

template<typename T>
void CalcBondsIdxNoBox(const T *coords, const std::size_t *idxs, std::size_t n, T *out)

Calculates the distance between sets of two points in a single array indexed by the idxs parameter without periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords – array of coordinates

• idxs – the indicies of the distances to calculate

• n – the number of distances to calculate

• out – result array into which the distances are returned

template<typename T>
void CalcAnglesOrtho(const T *coords0, const T *coords1, const T *coords2, const T *box, std::size_t n, T *out)

Calculates the angle between three sets of points in three contiguous arrays under orthorhombic periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords0 – array of coordinates

• coords1 – array of coordinates

• coords2 – array of coordinates

• box – the bounding box of the simulation

• n – the number of angles to calculate

• out – result array into which the angles are returned

template<typename T>
void CalcAnglesNoBox(const T *coords0, const T *coords1, const T *coords2, std::size_t n, T *out)

Calculates the angle between three sets of points in three contiguous arrays without periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords0 – array of coordinates

• coords1 – array of coordinates

• coords2 – array of coordinates

• n – the number of angles to calculate

• out – result array into which the angles are returned

template<typename T>
void CalcAnglesIdxOrtho(const T *coords, const std::size_t *idxs, const T *box, std::size_t n, T *out)

Calculates the angles between sets of three points in a single array indexed by the idxs parameter under orthorhombic periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords – array of coordinates

• idxs – the indicies of the angles to calculate

• box – the bounding box of the simulation

• n – the number of angles to calculate

• out – result array into which the angles are returned

template<typename T>
void CalcAnglesIdxNoBox(const T *coords, const std::size_t *idxs, std::size_t n, T *out)

Calculates the angles between sets of three points in a single array indexed by the idxs parameter without periodic boundary conditions.

Template Parameters

T – the type of the coordinates (float or double)

Parameters
• coords – array of coordinates

• idxs – the indicies of the angles to calculate

• n – the number of angles to calculate

• out – result array into which the angles are returned