Loading...
Searching...
No Matches
phase.hpp
Go to the documentation of this file.
1#ifndef SEAMS_PHASE_H_
2#define SEAMS_PHASE_H_
3
4#include <mol_sys.hpp>
5
6#include <array>
7#include <cstdint>
8#include <string>
9#include <vector>
10
11namespace phase {
12
13enum class GlassKind { other = 0, ice, lda, mda, hda };
14
17 const molSys::PointCloud<molSys::Point<double>, double> &yCloud,
18 const std::vector<std::vector<int>> &nList);
19
21std::uint64_t protonKey(
22 const molSys::PointCloud<molSys::Point<double>, double> &yCloud,
23 int oxygenType, int hydrogenType);
24
27 const molSys::PointCloud<molSys::Point<double>, double> &frame0,
28 const molSys::PointCloud<molSys::Point<double>, double> &frame1,
29 int hydrogenType);
30
36struct IceXXIHit {
37 bool match = false;
38 int nSites = 0;
39 int nSix = 0;
40 double a = 0.0;
41 double c = 0.0;
42 double density = 0.0;
43 double meanCoord = 0.0;
44};
45
47 const molSys::PointCloud<molSys::Point<double>, double> &yCloud);
48
50std::vector<double> localDensity(
51 const molSys::PointCloud<molSys::Point<double>, double> &yCloud,
52 double rcut);
53
56 const molSys::PointCloud<molSys::Point<double>, double> &yCloud);
57
61GlassKind glassFromDensity(double rho, double iceMax, double ldaMax,
62 double mdaMin);
63
65GlassKind glassFromDensity(double rho, double iceMax, double mdaMin);
66
70
71} // namespace phase
72
73#endif
The main molecular system handler.
GlassKind glassFromDensity(double rho, double iceMax, double ldaMax, double mdaMin)
std::uint64_t protonKey(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int oxygenType, int hydrogenType)
64-bit key of donated H directions per oxygen (molID-shared hydrogens).
GlassKind
Definition phase.hpp:13
std::vector< double > localDensity(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, double rcut)
Local number density (1/A^3) in a sphere of radius rcut.
double frameDensity(const molSys::PointCloud< molSys::Point< double >, double > &yCloud)
Bulk mass density in g/cm^3 from nop and the box (18.015 g/mol).
int openChannelCount(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList)
Open hexagonal channel along z: six-rings stacked, not a closed 512.
IceXXIHit iceXXILibrary(const molSys::PointCloud< molSys::Point< double >, double > &yCloud)
double hydrogenMSD(const molSys::PointCloud< molSys::Point< double >, double > &frame0, const molSys::PointCloud< molSys::Point< double >, double > &frame1, int hydrogenType)
Mean squared displacement of hydrogenType between two frames.
This contains a collection of points; contains information for a particular frame.
Definition mol_sys.hpp:173
This contains per-particle information.
Definition mol_sys.hpp:152
double density
Definition phase.hpp:42
double meanCoord
Definition phase.hpp:43