Per-atom site chemistry, separate from CHILL ice labels. More...
#include <mol_sys.hpp>#include <array>#include <string_view>#include <unordered_map>#include <vector>Go to the source code of this file.
Classes | |
| struct | site::Table |
| struct | site::IonEnvironment |
| struct | site::GuestOccupancy |
| Guests read against enumerated cages. More... | |
| struct | site::IceClusterIons |
| Connected components of ice atoms on the water graph, and the ion count per component: each ion is assigned to the cluster of the nearest ice atom within cutoff. More... | |
Namespaces | |
| namespace | site |
Enumerations | |
| enum class | site::Kind { site::unspecified , site::cationHead , site::anion , site::tail , site::donorH , site::acceptor , site::polar , site::apolar , site::waterO , site::waterH , site::solvent } |
| enum class | site::Family { site::waterIce , site::ionicLiquid , site::moltenSalt , site::des , site::electrolyte , site::confinedIL , site::confinedWater , site::networkFormer } |
| enum class | site::IonState { site::liquid = 0 , site::front = 1 , site::ice = 2 } |
| Ions read against a per-atom ice assignment. More... | |
Functions | |
| std::vector< int > | site::indicesOf (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const Table &table, Kind kind) |
| int | site::lammpsTypeOfKind (const Table &table, Kind kind) |
| molSys::PointCloud< molSys::Point< double >, double > | site::ionCloud (const molSys::PointCloud< molSys::Point< double >, double > &src, const Table &table) |
| Table | site::parseSiteSpec (std::string_view spec) |
| IonEnvironment | site::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 > | site::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. | |
| GuestOccupancy | site::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 > | site::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. | |
| GuestOccupancy | site::guestOccupancyInside (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &cageFaces, const std::vector< int > &guestIndices) |
| Occupancy by ray-parity: a guest sits in a cage when a ray from the guest, in the frame that unwraps the cage about its periodic centroid, crosses an odd number of fan-triangulated faces. | |
| IceClusterIons | site::iceClusterIonCensus (const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< bool > &ice, const std::vector< std::vector< int > > &nListByIndex, const std::vector< int > &ionIndices, double cutoff) |
Per-atom site chemistry, separate from CHILL ice labels.
LAMMPS type IDs are not chemistry. A Table maps type (and optional atom-ID override) to Kind. Family is an input, not an inference. Table::of does not write polar or apolar back onto the table; indicesOf applies those two derived unions.
Definition in file site.hpp.