ring.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 __RINGS_H_
12 #define __RINGS_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 <seams_input.hpp>
29 #include <seams_output.hpp>
30 
60 namespace ring {
61 
62 // General enum used throughout this program (Prism is for our prism
63 // classification) {per-ring classification}
112 enum strucType {
122 };
123 
126 getSingleRingSize(std::vector<std::vector<int>> rings, int ringSize);
127 
132 
136 
139 
142  std::vector<int> ring3);
143 
146  std::vector<int> ring2);
147 
150 
151 } // namespace ring
152 
153 #endif // __RINGS_H_
File for cage types for topological network criteria.
bool commonElementsInThreeRings(std::vector< int > ring1, std::vector< int > ring2, std::vector< int > ring3)
Common elements in 3 rings.
Definition: ring.cpp:63
strucType
Definition: ring.hpp:112
bool findTripletInRing(std::vector< int > ring, std::vector< int > triplet)
Searches a particular ring for a triplet.
Definition: ring.cpp:97
int clearRingList(std::vector< std::vector< int >> &rings)
Erases memory for a vector of vectors for a list of rings.
Definition: ring.cpp:18
bool hasCommonElements(std::vector< int > ring1, std::vector< int > ring2)
Definition: ring.cpp:175
std::vector< std::vector< int > > getSingleRingSize(std::vector< std::vector< int >> rings, int ringSize)
Returns a vector of vectors of rings of a single size.
Definition: ring.cpp:149
std::vector< int > findsCommonElements(std::vector< int > ring1, std::vector< int > ring2)
Returns the common elements of two rings.
Definition: ring.cpp:34
bool compareRings(std::vector< int > ring1, std::vector< int > ring2)
Definition: ring.cpp:207
@ bothBasal
The ring belongs to both a DDC and HC. It is a 'mixed' ring. The ring is also one of the basal rings ...
Definition: ring.hpp:117
@ DDC
The ring belongs to a double-diamond cage (DDC).
Definition: ring.hpp:114
@ HCbasal
The ring belongs only to a hexagonal cage (HC). Specifically, the ring is purely a basal ring of an H...
Definition: ring.hpp:115
@ deformedPrism
Definition: ring.hpp:120
@ unclassified
The ring is unclassified, which may be either water or a deformed type which cannot be classified by ...
Definition: ring.hpp:113
@ bothPrismatic
The ring belongs to both a DDC and HC and is, thus, a 'mixed' ring. The ring is also one of the prism...
Definition: ring.hpp:118
@ HCprismatic
The ring belongs only to a hexagonal cage (HC); specifically the ring is purely a prismatic ring of a...
Definition: ring.hpp:116
@ mixedPrismRing
Definition: ring.hpp:121
@ Prism
The ring belongs to a prism block, classified according to the prism identification scheme.
Definition: ring.hpp:119
The main molecular system handler.
Topological network criteria functions.
Definition: ring.hpp:60
File for functions that read in files).