topo_one_dim.hpp
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------------
2 // d-SEAMS - Deferred Structural Elucidation Analysis for Molecular Simulations
3 //
4 // Copyright (c) 2018--present d-SEAMS core team
5 //
6 // This program is free software: you can redistribute it and/or modify
7 // it under the terms of the MIT License as published by
8 // the Open Source Initiative.
9 //
10 // A copy of the MIT License is included in the LICENSE file of this repository.
11 // You should have received a copy of the MIT License along with this program.
12 // If not, see <https://opensource.org/licenses/MIT>.
13 //-----------------------------------------------------------------------------------
14 
15 #ifndef __TOPO_ONE_DIM_H_
16 #define __TOPO_ONE_DIM_H_
17 
18 #include <math.h>
19 #include <sys/stat.h>
20 #include <algorithm>
21 #include <array>
22 #include <fstream>
23 #include <iostream>
24 #include <iterator>
25 #include <memory>
26 #include <sstream>
27 #include <string>
28 #include <vector>
29 
30 #include <mol_sys.hpp>
31 #include <order_parameter.hpp>
32 #include <ring.hpp>
33 #include <seams_input.hpp>
34 #include <seams_output.hpp>
35 #include <shapeMatch.hpp>
36 
47 namespace ring {
48 
53  int *nPerfectPrisms, int *nImperfectPrisms,
56  std::vector<double> *rmsdPerAtom, bool doShapeMatching = false);
57 
61  std::vector<int> *basal1, std::vector<int> *basal2);
62 
66  std::vector<int> *basal1, std::vector<int> *basal2);
67 
71  std::vector<int> *basal1, std::vector<int> *basal2,
72  molSys::PointCloud<molSys::Point<double>, double> *yCloud);
73 
77  molSys::PointCloud<molSys::Point<double>, double> *yCloud);
78 
84  int maxDepth, int *atomID, int firstFrame, int currentFrame,
85  bool doShapeMatching = false);
86 
90  std::vector<int> listPrism, int ringSize,
92  std::vector<int> *atomTypes,
93  std::vector<ring::strucType> *atomState);
94 
97  std::vector<int> *atomTypes, int maxDepth);
98 
101  molSys::PointCloud<molSys::Point<double>, double> *yCloud, int *atomID,
102  int firstFrame, int currentFrame);
103 
104 } // namespace ring
105 
106 #endif // __TOPOCONFINED_H_
bool relaxedPrismConditions(std::vector< std::vector< int >> nList, std::vector< int > *basal1, std::vector< int > *basal2)
int prismAnalysis(std::string path, std::vector< std::vector< int >> rings, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int maxDepth, int *atomID, int firstFrame, int currentFrame, bool doShapeMatching=false)
std::vector< int > findPrisms(std::vector< std::vector< int >> rings, std::vector< strucType > *ringType, int *nPerfectPrisms, int *nImperfectPrisms, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< double > *rmsdPerAtom, bool doShapeMatching=false)
int deformedPrismTypes(std::vector< ring::strucType > atomState, std::vector< int > *atomTypes, int maxDepth)
Get the atom type values for deformed prisms.
bool discardExtraTetragonBlocks(std::vector< int > *basal1, std::vector< int > *basal2, molSys::PointCloud< molSys::Point< double >, double > *yCloud)
std::vector< std::vector< int > > keepAxialRingsOnly(std::vector< std::vector< int >> rings, molSys::PointCloud< molSys::Point< double >, double > *yCloud)
Saves only axial rings out of all possible rings.
int rmAxialTranslations(molSys::PointCloud< molSys::Point< double >, double > *yCloud, int *atomID, int firstFrame, int currentFrame)
Shift the entire ice nanotube and remove axial translations.
int assignPrismType(std::vector< std::vector< int >> rings, std::vector< int > listPrism, int ringSize, std::vector< ring::strucType > ringType, std::vector< int > *atomTypes, std::vector< ring::strucType > *atomState)
bool basalPrismConditions(std::vector< std::vector< int >> nList, std::vector< int > *basal1, std::vector< int > *basal2)
The main molecular system handler.
Topological network criteria functions.
Definition: ring.hpp:64
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:170
This contains per-particle information.
Definition: mol_sys.hpp:149