bulkTUM.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 __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
45namespace tum3 {
46
50 std::string path, std::vector<std::vector<int>> rings,
51 std::vector<std::vector<int>> nList,
52 molSys::PointCloud<molSys::Point<double>, double> *yCloud, int firstFrame,
53 bool printClusters, bool onlyTetrahedral);
54
56Eigen::MatrixXd buildRefHC(std::string fileName);
57
59Eigen::MatrixXd buildRefDDC(std::string fileName);
60
63 const Eigen::MatrixXd &refPoints, cage::Cage cageUnit,
64 std::vector<std::vector<int>> rings,
65 std::vector<std::vector<int>> nList, std::vector<double> *quat,
66 double *rmsd);
67
70 const Eigen::MatrixXd &refPoints,
71 std::vector<cage::Cage> cageList, int cageIndex,
72 std::vector<std::vector<int>> rings,
73 std::vector<double> *quat, double *rmsd);
74
77int updateRMSDatom(std::vector<std::vector<int>> rings, cage::Cage cageUnit,
78 double rmsd, std::vector<double> *rmsdPerAtom,
79 std::vector<int> *noOfCommonAtoms,
80 std::vector<cage::iceType> atomTypes);
81
83int averageRMSDatom(std::vector<double> *rmsdPerAtom,
84 std::vector<int> *noOfCommonAtoms);
85
88std::vector<cage::Cage>
89topoBulkCriteria(std::string path, std::vector<std::vector<int>> rings,
90 std::vector<std::vector<int>> nList,
92 int firstFrame, int *numHC, int *numDDC,
93 std::vector<ring::strucType> *ringType);
94
99 std::string path, std::vector<std::vector<int>> rings,
100 std::vector<cage::Cage> cageList, int numHC, int numDDC);
101
103std::vector<int> atomsFromCages(std::vector<std::vector<int>> rings,
104 std::vector<cage::Cage> cageList,
105 std::vector<int> clusterCages);
106
107} // namespace tum3
108
109#endif // __BULKTUM_H_
File for generating shortest-path rings according to the Franzblau algorithm.
Eigen::MatrixXd buildRefHC(std::string fileName)
Build a reference Hexagonal cage, reading in from a template XYZ file.
Definition bulkTUM.cpp:377
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
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 averageRMSDatom(std::vector< double > *rmsdPerAtom, std::vector< int > *noOfCommonAtoms)
Average the RMSD per atom.
Definition bulkTUM.cpp:529
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 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 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
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 buildRefDDC(std::string fileName)
Build a reference Double-Diamond cage, reading in from a template XYZ file.
Definition bulkTUM.cpp:435
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
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.