mol_sys.hpp
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------------
2 // d-SEAMS is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // A copy of the GNU General Public License is available at
8 // http://www.gnu.org/licenses/
9 //-----------------------------------------------------------------------------------
10 
11 #ifndef __MOL_SYS_H_
12 #define __MOL_SYS_H_
13 
14 #include "boost/multi_array.hpp"
15 #include <algorithm>
16 #include <array>
17 #include <fstream>
18 #include <iterator>
19 #include <sstream>
20 #include <string>
21 #include <sys/stat.h>
22 #include <vector>
23 #include<unordered_map>
24 
25 // For debugging, instantiate the unordered map [consider removal for
26 // production]
27 template class std::unordered_map<int, int>;
28 template class std::vector<std::vector<int>>;
29 
53 namespace molSys {
54 
55 // Enum type for bond type
56 
72 
118  reHex
119 };
120 
128 struct Result {
130  double c_value;
131 };
132 
145 template <typename T> struct Point {
146  int type, molID, atomID;
147  T x, y, z;
151  bool inSlice = true;
152 };
153 
154 // Struct for a collection of points; contains information for a particular
155 // frame
166 template <typename S, typename T> struct PointCloud {
169  int nop;
173 };
174 
179 
184  molSys::PointCloud<molSys::Point<double>, double> *oCloud);
185 
188 int searchMolList(std::vector<std::vector<int>> molList, int molIDtoFind);
189 
193 } // namespace molSys
194 
195 #endif // __MOL_SYS_H_
atom_state_type
Definition: mol_sys.hpp:109
bond_type
Definition: mol_sys.hpp:71
T x
type ID, molID, atomID
Definition: mol_sys.hpp:147
int nop
Current frame number.
Definition: mol_sys.hpp:169
std::vector< std::vector< int > > hAtomMolList(molSys::PointCloud< molSys::Point< double >, double > *hCloud, molSys::PointCloud< molSys::Point< double >, double > *oCloud)
Definition: mol_sys.cpp:62
atom_state_type iceType
Results (contains bond correlation type)
Definition: mol_sys.hpp:149
std::unordered_map< int, int > createIDMolIDmap(molSys::PointCloud< molSys::Point< double >, double > *yCloud)
Definition: mol_sys.cpp:40
int searchMolList(std::vector< std::vector< int >> molList, int molIDtoFind)
Definition: mol_sys.cpp:104
std::vector< S > pts
Definition: mol_sys.hpp:167
bond_type classifier
Definition: mol_sys.hpp:129
bool inSlice
Type of ice/water etc based on cij.
Definition: mol_sys.hpp:151
std::unordered_map< int, int > idIndexMap
xlo, ylo, zlo
Definition: mol_sys.hpp:172
double c_value
Classifier according to CHILL, CHILL+ etc.
Definition: mol_sys.hpp:130
std::vector< Result > c_ij
coordinates
Definition: mol_sys.hpp:148
std::vector< T > box
Number of atoms.
Definition: mol_sys.hpp:170
std::vector< T > boxLow
Periodic box lengths.
Definition: mol_sys.hpp:171
molSys::PointCloud< molSys::Point< double >, double > clearPointCloud(molSys::PointCloud< molSys::Point< double >, double > *yCloud)
//! Function for clearing vectors in PointCloud after multiple usage
Definition: mol_sys.cpp:20
int currentFrame
Collection of points.
Definition: mol_sys.hpp:168
@ cubic
Ic, or particle type signifying Cubic Ice.
Definition: mol_sys.hpp:110
@ hexagonal
Ih, or particle type signifying Hexagonal Ice.
Definition: mol_sys.hpp:111
@ interClathrate
Interfacial clathrate ice phase.
Definition: mol_sys.hpp:115
@ interfacial
Interfacial ice: ice-like molecules which do not fulfill the strict criteria of the Ic or Ih phases.
Definition: mol_sys.hpp:113
@ reCubic
Reclassified as cubic ice, according to the order parameter.
Definition: mol_sys.hpp:117
@ clathrate
Clathrate ice phase.
Definition: mol_sys.hpp:114
@ water
Liquid/amorphous phase.
Definition: mol_sys.hpp:112
@ reHex
Reclassified as hexagonal ice, according to the order parameter.
Definition: mol_sys.hpp:118
@ unclassified
Not classified into any other category.
Definition: mol_sys.hpp:116
@ eclipsed
The bond is an eclipsed bond.
Definition: mol_sys.hpp:71
@ out_of_range
The bond cannot be classified as either staggered or eclipsed.
Definition: mol_sys.hpp:71
@ staggered
The bond is a staggered bond, according to the or value.
Definition: mol_sys.hpp:71
Bare-bones structs used throughout the architecture. @detials This namespace defines Point and PointC...
Definition: mol_sys.hpp:53
This contains a collection of points; contains information for a particular frame.
Definition: mol_sys.hpp:166
This contains per-particle information.
Definition: mol_sys.hpp:145
This contains the bond classifier of enum type bond_type, and the bond correlation factor.
Definition: mol_sys.hpp:128