Loading...
Searching...
No Matches
topoparam Namespace Reference

Classes

struct  LayerStack

Functions

double normHeightPercent (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int nPrisms, double avgPrismHeight)
std::vector< double > calcCoverageArea (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &rings, double sheetArea)
std::vector< double > projAreaSingleRing (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< int > &ring)
 Calculates the projected area on the XY, YZ and XZ planes.
std::vector< double > rodgerF4 (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList, int oxygenType, int hydrogenType)
double meanFinite (const std::vector< double > &values)
 Mean of the finite per-atom F4 values; quiet_NaN when none are finite.
double jumpRotorTau90 (const molSys::PointCloud< molSys::Point< double >, double > &frame0, const molSys::PointCloud< molSys::Point< double >, double > &frame1, double dt, int oxygenType, int hydrogenType)
LayerStack layerCubicity (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int axis=2, double layerWidth=3.7)
LayerStack tumLayerStack (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &rings, const std::vector< bool > &basal, const std::vector< bool > &equatorial, int axis=2, double layerWidth=3.7)

Function Documentation

◆ calcCoverageArea()

std::vector< double > topoparam::calcCoverageArea ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
const std::vector< std::vector< int > > & rings,
double sheetArea )

Calculates the coverage area%, an area-based measure of relative proportion of monolayer ices.

◆ jumpRotorTau90()

double topoparam::jumpRotorTau90 ( const molSys::PointCloud< molSys::Point< double >, double > & frame0,
const molSys::PointCloud< molSys::Point< double >, double > & frame1,
double dt,
int oxygenType,
int hydrogenType )

Jump-rotor tau_90 from two frames. Each water is the H-H vector of the two hydrogens that share the oxygen molID. Returns dt when any molecule rotates by at least 90 degrees, quiet_NaN otherwise.

◆ layerCubicity()

LayerStack topoparam::layerCubicity ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
int axis = 2,
double layerWidth = 3.7 )

◆ meanFinite()

double topoparam::meanFinite ( const std::vector< double > & values)

Mean of the finite per-atom F4 values; quiet_NaN when none are finite.

◆ normHeightPercent()

double topoparam::normHeightPercent ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
int nPrisms,
double avgPrismHeight )

Calculates the height%, an average measure of filled volume. The average height of a prism can be taken to be 2.75-2.85 Angstrom. (Koga et. al., 2001)

◆ projAreaSingleRing()

std::vector< double > topoparam::projAreaSingleRing ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
const std::vector< int > & ring )

Calculates the projected area on the XY, YZ and XZ planes.

◆ rodgerF4()

std::vector< double > topoparam::rodgerF4 ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
const std::vector< std::vector< int > > & nList,
int oxygenType,
int hydrogenType )

Per-atom Rodger F4 = mean of cos(3 phi) over H-O...O-H dihedrals of this oxygen with its oxygen neighbours. Hydrogens share molID with their oxygen. An oxygen with no hydrogens (mW) is quiet_NaN. nList is by atom ID with the leading self entry, as neighListO.

◆ tumLayerStack()

LayerStack topoparam::tumLayerStack ( const molSys::PointCloud< molSys::Point< double >, double > & yCloud,
const std::vector< std::vector< int > > & rings,
const std::vector< bool > & basal,
const std::vector< bool > & equatorial,
int axis = 2,
double layerWidth = 3.7 )

Literature I_sd reference: CHILL+ molecules binned by coordinate. TUM/rings stacking: only HC-basal and DDC-equatorial six-rings vote. Prismatic/peripheral rings and non-plane cages (clathrate 5^12) do not write a letter. Ions stay off the ring graph the caller passes. phiC is N_equatorial / (N_basal + N_equatorial) over plane rings.