topo_bulk.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 __TOPO_BULK_H_
12 #define __TOPO_BULK_H_
13 
14 #include <algorithm>
15 #include <array>
16 #include <fstream>
17 #include <iostream>
18 #include <iterator>
19 #include <math.h>
20 #include <memory>
21 #include <sstream>
22 #include <string>
23 #include <sys/stat.h>
24 #include <vector>
25 
26 #include <cage.hpp>
27 #include <mol_sys.hpp>
28 #include <order_parameter.hpp>
29 #include <ring.hpp>
30 #include <seams_input.hpp>
31 #include <seams_output.hpp>
32 #include <shapeMatch.hpp>
33 
44 namespace ring {
45 
52  int firstFrame, bool onlyTetrahedral = true);
53 
57  std::vector<strucType> *ringType,
58  std::vector<int> listHC,
59  std::vector<cage::Cage> *cageList);
60 
65  std::vector<strucType> *ringType,
66  std::vector<int> *listDDC,
67  std::vector<int> *listHC);
68 
72  std::vector<strucType> *ringType,
74  std::vector<cage::Cage> *cageList);
75 
79  std::vector<int> *peripheralRings, int iring);
80 
84  std::vector<int> *peripheralRings, int iring);
85 
89  std::vector<int> *peripheralRings);
90 
93  std::vector<int> *basal1, std::vector<int> *basal2);
94 
98  std::vector<int> *triplet, int atomOne, int atomTwo);
99 
104 
107  std::vector<strucType> *ringType, int iring, int jring,
108  std::vector<int> *prismaticRings);
109 
114  std::vector<cage::iceType> *atomTypes);
115 
118  std::vector<cage::Cage> cageList, int *numHC, int *numDDC,
119  int *mixedRings, int *prismaticRings, int *basalRings);
120 
121 } // namespace ring
122 
128 namespace prism3 {
129 
134  molSys::PointCloud<molSys::Point<double>, double> *yCloud,
135  std::vector<double> *rmsdPerAtom, double heightCutoff = 8);
136 
140  std::vector<int> *basal1, std::vector<int> *basal2);
141 
145  std::vector<int> *basal1, std::vector<int> *basal2);
146 
149  molSys::PointCloud<molSys::Point<double>, double> *yCloud,
150  std::vector<int> basal1, std::vector<int> basal2, double heightCutoff = 8);
151 } // namespace prism3
152 
153 #endif // __TOPO_BULK_H_
File for cage types for topological network criteria.
bool notNeighboursOfRing(std::vector< std::vector< int >> nList, std::vector< int > *triplet, std::vector< int > *ring)
Definition: topo_bulk.cpp:895
bool conditionOneDDC(std::vector< std::vector< int >> rings, std::vector< int > *peripheralRings, int iring)
Definition: topo_bulk.cpp:330
bool basalNeighbours(std::vector< std::vector< int >> nList, std::vector< int > *triplet, int atomOne, int atomTwo)
Definition: topo_bulk.cpp:822
bool relaxedPrismConditions(std::vector< std::vector< int >> nList, std::vector< int > *basal1, std::vector< int > *basal2)
Definition: topo_bulk.cpp:1430
std::vector< int > findDDC(std::vector< std::vector< int >> rings, std::vector< strucType > *ringType, std::vector< int > listHC, std::vector< cage::Cage > *cageList)
Definition: topo_bulk.cpp:199
bool conditionTwoDDC(std::vector< std::vector< int >> rings, std::vector< int > *peripheralRings, int iring)
Definition: topo_bulk.cpp:402
int getAtomTypesTopoBulk(std::vector< std::vector< int >> rings, std::vector< ring::strucType > ringType, std::vector< cage::iceType > *atomTypes)
Definition: topo_bulk.cpp:1078
int getStrucNumbers(std::vector< ring::strucType > ringType, std::vector< cage::Cage > cageList, int *numHC, int *numDDC, int *mixedRings, int *prismaticRings, int *basalRings)
Determines the number of HCs, DDCs, Mixed rings, prismatic and basal rings.
Definition: topo_bulk.cpp:1161
bool basalRingsSeparation(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, double heightCutoff=8)
Check to see that candidate basal prisms are not really far from each other.
Definition: topo_bulk.cpp:1471
bool basalConditions(std::vector< std::vector< int >> nList, std::vector< int > *basal1, std::vector< int > *basal2)
Tests whether two rings are basal rings (true) or not (false)
Definition: topo_bulk.cpp:700
int findPrismatic(std::vector< std::vector< int >> rings, std::vector< int > *listHC, std::vector< strucType > *ringType, int iring, int jring, std::vector< int > *prismaticRings)
Finds the prismatic rings from basal rings iring and jring.
Definition: topo_bulk.cpp:935
int topoBulkAnalysis(std::string path, std::vector< std::vector< int >> rings, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int firstFrame, bool onlyTetrahedral=true)
Definition: topo_bulk.cpp:48
bool conditionThreeDDC(std::vector< std::vector< int >> rings, std::vector< int > *peripheralRings)
Definition: topo_bulk.cpp:483
int findBulkPrisms(std::vector< std::vector< int >> rings, std::vector< ring::strucType > *ringType, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< double > *rmsdPerAtom, double heightCutoff=8)
Find out which rings are prisms.
Definition: topo_bulk.cpp:1242
std::vector< int > findMixedRings(std::vector< std::vector< int >> rings, std::vector< strucType > *ringType, std::vector< int > *listDDC, std::vector< int > *listHC)
Definition: topo_bulk.cpp:1031
bool basalPrismConditions(std::vector< std::vector< int >> nList, std::vector< int > *basal1, std::vector< int > *basal2)
Definition: topo_bulk.cpp:1343
std::vector< int > findHC(std::vector< std::vector< int >> rings, std::vector< strucType > *ringType, std::vector< std::vector< int >> nList, std::vector< cage::Cage > *cageList)
Definition: topo_bulk.cpp:565
The main molecular system handler.
Topological network criteria functions.
Definition: ring.hpp:60
File containing common functions used by bulk and confined topological network critera.
File for functions that read in files).
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