Loading...
Searching...
No Matches
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
46namespace gen {
47
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
91namespace ring {
92
102 std::vector<std::vector<int>> rings, molSys::PointCloud<molSys::Point<double>, double> *oCloud,
104 std::array<double, 3> coordLow, std::array<double, 3> coordHigh,
105 bool identicalCloud=false);
106
115 std::string path, std::vector<std::vector<int>> rings,
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})
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)
void setAtomsWithSameMolID(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::unordered_multimap< int, int > molIDAtomIDmap, int molID, bool inSliceValue=true)
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})
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)
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