bulkTUM.hpp
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------------
2 // d-SEAMS is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // A copy of the GNU General Public License is available at
8 // http://www.gnu.org/licenses/
9 //-----------------------------------------------------------------------------------
10 
11 #ifndef __BULKTUM_H_
12 #define __BULKTUM_H_
13 
14 #include <algorithm>
15 #include <array>
16 #include <fstream>
17 #include <iostream>
18 #include <iterator>
19 #include <math.h>
20 #include <memory>
21 #include <sstream>
22 #include <string>
23 #include <sys/stat.h>
24 #include <vector>
25 
26 #include <franzblau.hpp>
27 #include <neighbours.hpp>
28 #include <pntCorrespondence.hpp>
29 #include <topo_bulk.hpp>
30 
41 namespace tum3 {
42 
48  molSys::PointCloud<molSys::Point<double>, double> *yCloud, int firstFrame,
49  bool printClusters, bool onlyTetrahedral);
50 
52 Eigen::MatrixXd buildRefHC(std::string fileName);
53 
55 Eigen::MatrixXd buildRefDDC(std::string fileName);
56 
59  const Eigen::MatrixXd &refPoints, cage::Cage cageUnit,
62  double *rmsd);
63 
66  const Eigen::MatrixXd &refPoints,
67  std::vector<cage::Cage> cageList, int cageIndex,
69  std::vector<double> *quat, double *rmsd);
70 
74  double rmsd, std::vector<double> *rmsdPerAtom,
75  std::vector<int> *noOfCommonAtoms,
76  std::vector<cage::iceType> atomTypes);
77 
79 int averageRMSDatom(std::vector<double> *rmsdPerAtom,
80  std::vector<int> *noOfCommonAtoms);
81 
88  int firstFrame, int *numHC, int *numDDC,
90 
96  std::vector<cage::Cage> cageList, int numHC, int numDDC);
97 
100  std::vector<cage::Cage> cageList,
102 
103 } // namespace tum3
104 
105 #endif // __BULKTUM_H_
File for generating shortest-path rings according to the Franzblau algorithm.
int shapeMatchHC(molSys::PointCloud< molSys::Point< double >, double > *yCloud, const Eigen::MatrixXd &refPoints, cage::Cage cageUnit, std::vector< std::vector< int >> rings, std::vector< std::vector< int >> nList, std::vector< double > *quat, double *rmsd)
Shape-matching for a target HC.
Definition: bulkTUM.cpp:247
Eigen::MatrixXd buildRefHC(std::string fileName)
Build a reference Hexagonal cage, reading in from a template XYZ file.
Definition: bulkTUM.cpp:373
std::vector< int > atomsFromCages(std::vector< std::vector< int >> rings, std::vector< cage::Cage > cageList, std::vector< int > clusterCages)
Gets the atoms in the cages of a given cluster.
Definition: bulkTUM.cpp:797
int clusterCages(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::string path, std::vector< std::vector< int >> rings, std::vector< cage::Cage > cageList, int numHC, int numDDC)
Definition: bulkTUM.cpp:640
int averageRMSDatom(std::vector< double > *rmsdPerAtom, std::vector< int > *noOfCommonAtoms)
Average the RMSD per atom.
Definition: bulkTUM.cpp:525
int shapeMatchDDC(molSys::PointCloud< molSys::Point< double >, double > *yCloud, const Eigen::MatrixXd &refPoints, std::vector< cage::Cage > cageList, int cageIndex, std::vector< std::vector< int >> rings, std::vector< double > *quat, double *rmsd)
Shape-matching for a target DDC.
Definition: bulkTUM.cpp:319
int topoUnitMatchingBulk(std::string path, std::vector< std::vector< int >> rings, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int firstFrame, bool printClusters, bool onlyTetrahedral)
Definition: bulkTUM.cpp:48
int updateRMSDatom(std::vector< std::vector< int >> rings, cage::Cage cageUnit, double rmsd, std::vector< double > *rmsdPerAtom, std::vector< int > *noOfCommonAtoms, std::vector< cage::iceType > atomTypes)
Definition: bulkTUM.cpp:482
std::vector< cage::Cage > topoBulkCriteria(std::string path, std::vector< std::vector< int >> rings, std::vector< std::vector< int >> nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int firstFrame, int *numHC, int *numDDC, std::vector< ring::strucType > *ringType)
Definition: bulkTUM.cpp:577
Eigen::MatrixXd buildRefDDC(std::string fileName)
Build a reference Double-Diamond cage, reading in from a template XYZ file.
Definition: bulkTUM.cpp:431
Definition: bulkTUM.hpp:41
Header file for neighbour list generation.
This contains a cage, with the constituent rings.
Definition: cage.hpp:82
This contains a collection of points; contains information for a particular frame.
Definition: mol_sys.hpp:166
This contains per-particle information.
Definition: mol_sys.hpp:145
File containing functions used specific to bulk topological network critera.