Data Structures | |
struct | chill::YlmAtom |
This contains a complex vector of length \(2l+1\). More... | |
struct | chill::QlmAtom |
This is the local orientational bond order parameter \(q_{lm}\), of length \(2l+1\). More... | |
Functions | |
molSys::PointCloud< molSys::Point< double >, double > | chill::getCorrel (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, bool isSlice=false) |
molSys::PointCloud< molSys::Point< double >, double > | chill::getIceTypeNoPrint (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, bool isSlice=false) |
Classifies each atom according to the CHILL algorithm without printing. More... | |
molSys::PointCloud< molSys::Point< double >, double > | chill::getIceType (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, std::string path, int firstFrame, bool isSlice=false, std::string outputFileName="chill.txt") |
Classifies each atom according to the CHILL algorithm. More... | |
molSys::PointCloud< molSys::Point< double >, double > | chill::getCorrelPlus (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, bool isSlice=false) |
Gets c_ij and then classifies bond types according to the CHILL+ algorithm. More... | |
molSys::PointCloud< molSys::Point< double >, double > | chill::getIceTypePlus (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, std::string path, int firstFrame, bool isSlice=false, std::string outputFileName="chillPlus.txt") |
Classifies each atom according to the CHILL+ algorithm. More... | |
std::vector< double > | chill::getq6 (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, bool isSlice=false) |
molSys::PointCloud< molSys::Point< double >, double > | chill::reclassifyWater (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< double > *q6) |
int | chill::printIceType (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::string path, int firstFrame, bool isSlice=false, std::string outputFileName="superChill.txt") |
Prints out the iceType for a particular frame onto the terminal. More... | |
bool | chill::isInterfacial (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, int iatom, int num_staggrd, int num_eclipsd) |
int | chill::numStaggered (molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, int jatom) |
Finds the number of staggered bonds for a given atom of index jatom. More... | |
std::vector< std::complex< double > > | sph::spheriHarmo (int orderL, std::array< double, 2 > radialCoord) |
std::array< double, 2 > | sph::radialCoord (std::array< double, 3 > cartCoord) |
std::vector< std::complex< double > > | sph::lookupTableQ3Vec (std::array< double, 2 > angles) |
Lookup table for Q3. More... | |
std::complex< double > | sph::lookupTableQ3 (int m, std::array< double, 2 > angles) |
Lookup table for Q3 (m=0 to m=6) More... | |
std::vector< std::complex< double > > | sph::lookupTableQ6Vec (std::array< double, 2 > angles) |
Lookup table for Q6. More... | |
std::complex< double > | sph::lookupTableQ6 (int m, std::array< double, 2 > angles) |
Lookup table for Q6 (m=0 to m=12) More... | |
Variables | |
std::vector< std::complex< double > > | chill::YlmAtom::ylm |
std::vector< YlmAtom > | chill::QlmAtom::ptq |
molSys::PointCloud< molSys::Point< double >, double > chill::getCorrel | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
bool | isSlice = false |
||
) |
Function for getting the bond order correlations \(c_{ij}\) (or \(a_{ij}\) in some treatments) according to the CHILL algorithm.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | nList | The row-ordered neighbour list, by ID. The first element of each row is the particle ID, followed by the IDs of the neighbours |
[in] | isSlice | This decides whether there is a slice or not |
Uses Boost for spherical harmonics, and gets c_ij according to the CHILL algorithm
Definition at line 299 of file bop.cpp.
molSys::PointCloud< molSys::Point< double >, double > chill::getCorrelPlus | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
bool | isSlice = false |
||
) |
Gets c_ij and then classifies bond types according to the CHILL+ algorithm.
Function for getting the bond order correlations \(c_{ij}\) (alternatively \(a_{ij}\) in certain texts) using the CHILL+ algorithm
[in,out] | yCloud | The output molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | isSlice | This decides whether there is a slice or not |
Definition at line 602 of file bop.cpp.
molSys::PointCloud< molSys::Point< double >, double > chill::getIceType | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
std::string | path, | ||
int | firstFrame, | ||
bool | isSlice = false , |
||
std::string | outputFileName = "chill.txt" |
||
) |
Classifies each atom according to the CHILL algorithm.
Function that classifies every particle's molSys::atom_state_type ice type, according to the CHILL algorithm.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | path | Path to the output directory to which ice types are written out to |
[in] | firstFrame | First frame to be analyzed |
[in] | isSlice | This decides whether there is a slice or not |
[in] | outputFileName | Name of the output file, to which the ice types will be written out. |
Definition at line 505 of file bop.cpp.
molSys::PointCloud< molSys::Point< double >, double > chill::getIceTypeNoPrint | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
bool | isSlice = false |
||
) |
Classifies each atom according to the CHILL algorithm without printing.
Function that classifies every particle's molSys::atom_state_type ice type, according to the CHILL algorithm. Does not print out the information.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | isSlice | This decides whether there is a slice or not |
[in] | nList | Row-ordered neighbour list by atom ID |
Definition at line 437 of file bop.cpp.
molSys::PointCloud< molSys::Point< double >, double > chill::getIceTypePlus | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
std::string | path, | ||
int | firstFrame, | ||
bool | isSlice = false , |
||
std::string | outputFileName = "chillPlus.txt" |
||
) |
Classifies each atom according to the CHILL+ algorithm.
Function that classifies the molSys::atom_state_type ice type of each particle, according to the CHILL+ algorithm.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | path | Path to the output directory to which ice types are written out to |
[in] | firstFrame | The first frame to be analyzed |
[in] | isSlice | This decides whether there is a slice or not |
[in] | outputFileName | Name of the output file, to which the ice types will be written out. The default file name is "chillPlus.txt" |
Definition at line 755 of file bop.cpp.
std::vector< double > chill::getq6 | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
bool | isSlice = false |
||
) |
q6 can distinguish between water and ice. Use this for the largest ice cluster
Function for getting the averaged \(q_6\) parameter.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | isSlice | This decides whether there is a slice or not |
Definition at line 868 of file bop.cpp.
bool chill::isInterfacial | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
int | iatom, | ||
int | num_staggrd, | ||
int | num_eclipsd | ||
) |
Checks if a given iatom is interfacial ice or not, according to the CHILL algorithm
Function that checks if the particle with the given atom index is interfacial or not.
[in] | yCloud | The input molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | iatom | The vector index of the current particle |
[in] | num_staggrd | The number of staggered bonds that the current particle participates in |
[in] | num_eclipsd | The number of eclipsed bonds that the current particle participates in |
Definition at line 1129 of file bop.cpp.
std::complex< double > sph::lookupTableQ3 | ( | int | m, |
std::array< double, 2 > | angles | ||
) |
Lookup table for Q3 (m=0 to m=6)
Look-up hard-coded values for \(Q_3\)
It is recommended to use the Boost version of this function, sph::spheriHarmo, instead.
[in] | m | An int such that \(-3<=m<=3\) |
[in] | angles | The azimuth and polar angles for a particular particle |
Definition at line 133 of file bop.cpp.
std::vector< std::complex< double > > sph::lookupTableQ3Vec | ( | std::array< double, 2 > | angles | ) |
Lookup table for Q3.
Calculates \(Q_3\) using hard-coded look-up values.
[in] | angles | The azimuth and polar angles of a particular point |
Definition at line 107 of file bop.cpp.
std::complex< double > sph::lookupTableQ6 | ( | int | m, |
std::array< double, 2 > | angles | ||
) |
Lookup table for Q6 (m=0 to m=12)
Hard-coded calculations for determining \(Q_6\).
It is recommended to use the general Boost version of this function, sph::spheriHarmo, instead.
[in] | m | An int such that \(-6<=m<=6\) |
[in] | angles | The azimuth and polar angles for a particular particle |
Definition at line 215 of file bop.cpp.
std::vector< std::complex< double > > sph::lookupTableQ6Vec | ( | std::array< double, 2 > | angles | ) |
Lookup table for Q6.
Calculates \(Q_6\) using hard-coded values.
It is recommended to use the Boost version of this function, sph::spheriHarmo, instead.
[in] | angles | The azimuth and polar angles for a particular particle |
Definition at line 189 of file bop.cpp.
int chill::numStaggered | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< std::vector< int >> | nList, | ||
int | jatom | ||
) |
Finds the number of staggered bonds for a given atom of index jatom.
Calculates the number of staggered bonds of an atom with the given index.
[in] | yCloud | The input molSys::PointCloud |
[in] | nList | Row-ordered neighbour list by atom ID |
[in] | jatom | The vector index of the current particle |
Definition at line 1201 of file bop.cpp.
int chill::printIceType | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::string | path, | ||
int | firstFrame, | ||
bool | isSlice = false , |
||
std::string | outputFileName = "superChill.txt" |
||
) |
Prints out the iceType for a particular frame onto the terminal.
Prints out the molSys::atom_state_type per-particle ice type, for a particular frame, to a file.
[in] | yCloud | The input molSys::PointCloud for the current frame |
[in] | path | Path to the output directory to which ice types are written out to |
[in] | firstFrame | First frame to be analyzed |
[in] | isSlice | Determines whether there is a slice or not |
[in] | outputFileName | File name of the output file, to which the per-particle ice types will be written out. The default file name is "superChill.txt" |
Definition at line 1060 of file bop.cpp.
std::array< double, 2 > sph::radialCoord | ( | std::array< double, 3 > | cartCoord | ) |
molSys::PointCloud< molSys::Point< double >, double > chill::reclassifyWater | ( | molSys::PointCloud< molSys::Point< double >, double > * | yCloud, |
std::vector< double > * | q6 | ||
) |
'Test' condition for classifying hexagonal ice using averaged q6 and q3 Checks water According to https://!pubs.rsc.org/en/content/articlehtml/2011/cp/c1cp22167a Gets c_ij and then classifies bond types according to the CHILL+ algorithm
Reclassifies atoms which may have been mis-classified as water using the averaged \(q_6\) and \(q_3\) parameters. This function can be called after both averaged \(q_6\) and bond order correlation function \(c_{ij}\) have been calculated as described here.
[in,out] | yCloud | The output molSys::PointCloud |
[in] | q6 | Vector containing the previously calculated averaged \(q_6\) values (using chill::getq6) |
Definition at line 1011 of file bop.cpp.
std::vector< std::complex< double > > sph::spheriHarmo | ( | int | orderL, |
std::array< double, 2 > | radialCoord | ||
) |
Function for calculating spherical harmonics, that works for a general \(l\).
This function uses the Boost libraries.
[in] | orderL | The int value of \(l\) |
[in] | radialCoord | Array containing the polar and azimuth angles |
Definition at line 57 of file bop.cpp.
std::vector<YlmAtom> chill::QlmAtom::ptq |
std::vector<std::complex<double> > chill::YlmAtom::ylm |