shapeMatch.hpp
Go to the documentation of this file.
Code
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
37namespace match {
38
42 std::vector<std::vector<int>> nList,
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
58 std::vector<std::vector<int>> nList,
59 const Eigen::MatrixXd &refPoints, std::vector<int> *basal1,
60 std::vector<int> *basal2, int *beginIndex);
61
63int updatePerAtomRMSDRing(std::vector<int> basalRing, int startingIndex,
64 std::vector<double> rmsdFromMatch,
65 std::vector<double> *rmsdPerAtom);
66
69int 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.
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.
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)
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)
int updateRMSDRing(std::vector< int > basalRing, int startingIndex, double rmsdVal, std::vector< double > *rmsdPerAtom)
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)
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