bulkTUM.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 __BULKTUM_H_
16 #define __BULKTUM_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 <franzblau.hpp>
31 #include <neighbours.hpp>
32 #include <pntCorrespondence.hpp>
33 #include <topo_bulk.hpp>
34 
45 namespace tum3 {
46 
52  molSys::PointCloud<molSys::Point<double>, double> *yCloud, int firstFrame,
53  bool printClusters, bool onlyTetrahedral);
54 
56 Eigen::MatrixXd buildRefHC(std::string fileName);
57 
59 Eigen::MatrixXd buildRefDDC(std::string fileName);
60 
63  const Eigen::MatrixXd &refPoints, cage::Cage cageUnit,
66  double *rmsd);
67 
70  const Eigen::MatrixXd &refPoints,
71  std::vector<cage::Cage> cageList, int cageIndex,
73  std::vector<double> *quat, double *rmsd);
74 
78  double rmsd, std::vector<double> *rmsdPerAtom,
79  std::vector<int> *noOfCommonAtoms,
80  std::vector<cage::iceType> atomTypes);
81 
83 int averageRMSDatom(std::vector<double> *rmsdPerAtom,
84  std::vector<int> *noOfCommonAtoms);
85 
92  int firstFrame, int *numHC, int *numDDC,
94 
100  std::vector<cage::Cage> cageList, int numHC, int numDDC);
101 
104  std::vector<cage::Cage> cageList,
106 
107 } // namespace tum3
108 
109 #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:251
Eigen::MatrixXd buildRefHC(std::string fileName)
Build a reference Hexagonal cage, reading in from a template XYZ file.
Definition: bulkTUM.cpp:377
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:801
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:644
int averageRMSDatom(std::vector< double > *rmsdPerAtom, std::vector< int > *noOfCommonAtoms)
Average the RMSD per atom.
Definition: bulkTUM.cpp:529
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:323
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:52
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:486
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:581
Eigen::MatrixXd buildRefDDC(std::string fileName)
Build a reference Double-Diamond cage, reading in from a template XYZ file.
Definition: bulkTUM.cpp:435
Definition: bulkTUM.hpp:45
Header file for neighbour list generation.
This contains a cage, with the constituent rings.
Definition: cage.hpp:86
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
File containing functions used specific to bulk topological network critera.