selection.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 __SELECTION_H_
16 #define __SELECTION_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 
46 namespace gen {
47 
53  molSys::PointCloud<molSys::Point<double>, double> *outCloud,
54  int atomTypeI, bool isSlice = false,
55  std::array<double, 3> coordLow = std::array<double, 3>{0, 0, 0},
56  std::array<double, 3> coordHigh = std::array<double, 3>{0, 0, 0});
57 
64  bool clearPreviousSliceSelection=true,
65  std::array<double, 3> coordLow = std::array<double, 3>{0, 0, 0},
66  std::array<double, 3> coordHigh = std::array<double, 3>{0, 0, 0});
67 
73  bool clearPreviousSliceSelection=true,
74  std::array<double, 3> coordLow = std::array<double, 3>{0, 0, 0},
75  std::array<double, 3> coordHigh = std::array<double, 3>{0, 0, 0});
76 
81  std::unordered_multimap<int,int> molIDAtomIDmap,
82  int molID, bool inSliceValue=true);
83 
84 } // namespace gen
85 
91 namespace ring {
92 
103  molSys::PointCloud<molSys::Point<double>, double> *yCloud,
104  std::array<double, 3> coordLow, std::array<double, 3> coordHigh,
105  bool identicalCloud=false);
106 
116  molSys::PointCloud<molSys::Point<double>, double> *oCloud,
117  molSys::PointCloud<molSys::Point<double>, double> *yCloud,
118  std::array<double, 3> coordLow, std::array<double, 3> coordHigh,
119  bool identicalCloud=false);
120 
121 } // namespace ring
122 
123 #endif // __SELECTION_H_
molSys::PointCloud< molSys::Point< double >, double > getPointCloudOneAtomType(molSys::PointCloud< molSys::Point< double >, double > *yCloud, molSys::PointCloud< molSys::Point< double >, double > *outCloud, int atomTypeI, bool isSlice=false, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
Definition: selection.cpp:37
void atomsInSingleSlice(molSys::PointCloud< molSys::Point< double >, double > *yCloud, bool clearPreviousSliceSelection=true, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
Definition: selection.cpp:101
void setAtomsWithSameMolID(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::unordered_multimap< int, int > molIDAtomIDmap, int molID, bool inSliceValue=true)
Definition: selection.cpp:225
void moleculesInSingleSlice(molSys::PointCloud< molSys::Point< double >, double > *yCloud, bool clearPreviousSliceSelection=true, std::array< double, 3 > coordLow=std::array< double, 3 >{0, 0, 0}, std::array< double, 3 > coordHigh=std::array< double, 3 >{0, 0, 0})
Definition: selection.cpp:147
void getEdgeMoleculesInRings(std::vector< std::vector< int >> rings, molSys::PointCloud< molSys::Point< double >, double > *oCloud, molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::array< double, 3 > coordLow, std::array< double, 3 > coordHigh, bool identicalCloud=false)
Definition: selection.cpp:265
void printSliceGetEdgeMoleculesInRings(std::string path, std::vector< std::vector< int >> rings, molSys::PointCloud< molSys::Point< double >, double > *oCloud, molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::array< double, 3 > coordLow, std::array< double, 3 > coordHigh, bool identicalCloud=false)
Definition: selection.cpp:375
The main molecular system handler.
Small generic functions that are shared by all namespaces.
Definition: generic.hpp:49
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