shapeMatch.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 __SHAPEMATCH_H_
16 #define __SHAPEMATCH_H_
17 
18 #include <algorithm>
19 #include <array>
20 #include <fstream>
21 #include <iostream>
22 #include <iterator>
23 #include <math.h>
24 #include <memory>
25 #include <sstream>
26 #include <string>
27 #include <sys/stat.h>
28 #include <vector>
29 
30 #include <absOrientation.hpp>
31 #include <mol_sys.hpp>
32 #include <pntCorrespondence.hpp>
33 #include <ring.hpp>
34 #include <seams_input.hpp>
35 #include <seams_output.hpp>
36 
37 namespace match {
38 
43  const Eigen::MatrixXd &refPoints, std::vector<int> *basal1,
44  std::vector<int> *basal2, std::vector<double> *rmsdPerAtom,
45  bool isPerfect = true);
46 
51  std::vector<std::vector<int>> nList, const Eigen::MatrixXd &refPoints,
52  std::vector<int> *basal1, std::vector<int> *basal2,
53  std::vector<double> *rmsdPerAtom);
54 
59  const Eigen::MatrixXd &refPoints, std::vector<int> *basal1,
60  std::vector<int> *basal2, int *beginIndex);
61 
63 int updatePerAtomRMSDRing(std::vector<int> basalRing, int startingIndex,
64  std::vector<double> rmsdFromMatch,
65  std::vector<double> *rmsdPerAtom);
66 
69 int updateRMSDRing(std::vector<int> basalRing, int startingIndex,
70  double rmsdVal, std::vector<double> *rmsdPerAtom);
71 
72 } // namespace match
73 
74 #endif // __SHAPEMATCH_H_
The main molecular system handler.
bool matchPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, int *beginIndex)
Definition: shapeMatch.cpp:251
int updatePerAtomRMSDRing(std::vector< int > basalRing, int startingIndex, std::vector< double > rmsdFromMatch, std::vector< double > *rmsdPerAtom)
Update the per-particle RMSD for a prism block basal ring.
Definition: shapeMatch.cpp:186
bool matchUntetheredPrism(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, std::vector< double > *rmsdPerAtom)
Definition: shapeMatch.cpp:110
int updateRMSDRing(std::vector< int > basalRing, int startingIndex, double rmsdVal, std::vector< double > *rmsdPerAtom)
Definition: shapeMatch.cpp:220
bool matchPrism(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, std::vector< double > *rmsdPerAtom, bool isPerfect=true)
Definition: shapeMatch.cpp:21
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