19#include <boost/geometry.hpp>
20#include <boost/math/special_functions/spherical_harmonic.hpp>
149 std::vector<std::complex<double>>
ylm;
184 std::vector<std::vector<int>> nList,
bool isSlice =
false);
195 std::vector<std::vector<int>> nList,
bool isSlice =
false);
212 std::vector<std::vector<int>> nList, std::string path,
213 int firstFrame,
bool isSlice =
false,
214 std::string outputFileName =
"chill.txt");
219 std::vector<std::vector<int>> nList,
bool isSlice =
false);
224 std::vector<std::vector<int>> nList, std::string path,
225 int firstFrame,
bool isSlice =
false,
226 std::string outputFileName =
"chillPlus.txt");
232 std::vector<std::vector<int>> nList,
bool isSlice =
false);
240 std::vector<double> *q6);
244 std::string path,
int firstFrame,
bool isSlice =
false,
245 std::string outputFileName =
"superChill.txt");
250 std::vector<std::vector<int>> nList,
int iatom,
251 int num_staggrd,
int num_eclipsd);
255 std::vector<std::vector<int>> nList,
int jatom);
274std::vector<std::complex<double>>
277std::array<double, 2>
radialCoord(std::array<double, 3> cartCoord);
280std::vector<std::complex<double>>
284std::complex<double>
lookupTableQ3(
int m, std::array<double, 2> angles);
287std::vector<std::complex<double>>
291std::complex<double>
lookupTableQ6(
int m, std::array<double, 2> angles);
File for containing generic or common functions.
std::vector< std::complex< double > > lookupTableQ6Vec(std::array< double, 2 > angles)
Lookup table for Q6.
std::vector< std::complex< double > > lookupTableQ3Vec(std::array< double, 2 > angles)
Lookup table for Q3.
molSys::PointCloud< molSys::Point< double >, double > 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.
int 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.
std::vector< std::complex< double > > ylm
std::vector< YlmAtom > ptq
std::array< double, 2 > radialCoord(std::array< double, 3 > cartCoord)
int 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.
std::complex< double > lookupTableQ6(int m, std::array< double, 2 > angles)
Lookup table for Q6 (m=0 to m=12)
molSys::PointCloud< molSys::Point< double >, double > 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.
molSys::PointCloud< molSys::Point< double >, double > 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.
std::vector< std::complex< double > > spheriHarmo(int orderL, std::array< double, 2 > radialCoord)
molSys::PointCloud< molSys::Point< double >, double > getCorrel(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int > > nList, bool isSlice=false)
std::complex< double > lookupTableQ3(int m, std::array< double, 2 > angles)
Lookup table for Q3 (m=0 to m=6)
molSys::PointCloud< molSys::Point< double >, double > reclassifyWater(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< double > *q6)
bool isInterfacial(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int > > nList, int iatom, int num_staggrd, int num_eclipsd)
std::vector< double > getq6(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int > > nList, bool isSlice=false)
molSys::PointCloud< molSys::Point< double >, double > 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.
The main molecular system handler.
CHILL and CHILL+ structure classification. This namespace contains functions that are used in the CHI...
Functions used for spherical harmonics.
Header file for neighbour list generation.
This is the local orientational bond order parameter , of length .
This contains a complex vector of length .
This contains a collection of points; contains information for a particular frame.
This contains per-particle information.