namespace site

Overview

namespace site {
 
// enums
 
enum Family;
enum IonState;
enum Kind;
 
// structs
 
struct DensityZ;
struct GuestOccupancy;
struct IonEnvironment;
struct Table;
 
// global functions
 
DensityZ densityZ(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, int typeI, int nbin, int axis);
DensityZ densityZ(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const Table& table, Kind kind, int nbin, int axis);
bool iceScoreAllowed(Family f);
const char* refuseIceScore(Family f);
const char* familyName(Family f);
Family parseFamily(std::string_view name);
std::vector<int> indicesOf(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const Table& table, Kind kind);
int lammpsTypeOfKind(const Table& table, Kind kind);
molSys::PointCloud<molSys::Point<double>, double> ionCloud(const molSys::PointCloud<molSys::Point<double>, double>& src, const Table& table);
Table parseSiteSpec(std::string_view spec);
IonEnvironment ionEnvironment(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<bool>& iceFlag, const std::vector<int>& ionIndices, int waterType, double cutoff);
std::vector<int> shellRingCensus(const std::vector<std::vector<int>>& rings, const std::vector<int>& shell, int maxRingSize);
GuestOccupancy guestOccupancy(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& cages, const std::vector<int>& guestIndices, double radius);
std::array<double, 3> periodicCentroid(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& atoms);
 
} // namespace site

Detailed Documentation

Global Functions

DensityZ densityZ(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, int typeI, int nbin, int axis)

Histogram Point::{x,y,z} for typeI (0 = every atom). axis is 0, 1, or 2.

DensityZ densityZ(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const Table& table, Kind kind, int nbin, int axis)

Same histogram, restricted to atoms whose Table kind matches.

IonEnvironment ionEnvironment(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<bool>& iceFlag, const std::vector<int>& ionIndices, int waterType, double cutoff)

iceFlag is indexed like yCloud.pts; waterType selects the water oxygens (0 accepts every atom that is not an ion); cutoff is the first shell radius in the cloud’s length unit.

std::vector<int> shellRingCensus(const std::vector<std::vector<int>>& rings, const std::vector<int>& shell, int maxRingSize)

Rings of the water network that pass through a first shell: the census by size of every ring with at least one vertex in shell.

An ion is not a vertex of the network, so the rings it would have closed are gone and the rings its shell still carries measure how far the network survives around it (the hydration-shell ring census of a brine or an ionic solution). census[s] counts rings of size s up to maxRingSize.

GuestOccupancy guestOccupancy(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& cages, const std::vector<int>& guestIndices, double radius)

cages are vertex index lists into yCloud.pts; radius in the cloud’s length unit (half the cage diameter, about 4 A for a 5^12 cage).

std::array<double, 3> periodicCentroid(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& atoms)

Periodic centroid of a set of atoms: every atom is unwrapped to its minimum image about the first, and the mean is taken there.