Loading...
Searching...
No Matches
topo_one_dim.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 __TOPO_ONE_DIM_H_
16#define __TOPO_ONE_DIM_H_
17
18#include <math.h>
19#include <sys/stat.h>
20#include <algorithm>
21#include <array>
22#include <fstream>
23#include <iostream>
24#include <iterator>
25#include <memory>
26#include <sstream>
27#include <string>
28#include <vector>
29
30#include <mol_sys.hpp>
31#include <order_parameter.hpp>
32#include <ring.hpp>
33#include <seams_input.hpp>
34#include <seams_output.hpp>
35#include <shapeMatch.hpp>
36
47namespace ring {
48
51std::vector<int> findPrisms(
52 std::vector<std::vector<int>> rings, std::vector<strucType> *ringType,
53 int *nPerfectPrisms, int *nImperfectPrisms,
54 std::vector<std::vector<int>> nList,
56 std::vector<double> *rmsdPerAtom, bool doShapeMatching = false);
57
60bool basalPrismConditions(std::vector<std::vector<int>> nList,
61 std::vector<int> *basal1, std::vector<int> *basal2);
62
65bool relaxedPrismConditions(std::vector<std::vector<int>> nList,
66 std::vector<int> *basal1, std::vector<int> *basal2);
67
71 std::vector<int> *basal1, std::vector<int> *basal2,
73
75std::vector<std::vector<int>> keepAxialRingsOnly(
76 std::vector<std::vector<int>> rings,
78
81int prismAnalysis(std::string path, std::vector<std::vector<int>> rings,
82 std::vector<std::vector<int>> nList,
84 int maxDepth, int *atomID, int firstFrame, int currentFrame,
85 bool doShapeMatching = false);
86
89int assignPrismType(std::vector<std::vector<int>> rings,
90 std::vector<int> listPrism, int ringSize,
91 std::vector<ring::strucType> ringType,
92 std::vector<int> *atomTypes,
93 std::vector<ring::strucType> *atomState);
94
96int deformedPrismTypes(std::vector<ring::strucType> atomState,
97 std::vector<int> *atomTypes, int maxDepth);
98
101 molSys::PointCloud<molSys::Point<double>, double> *yCloud, int *atomID,
102 int firstFrame, int currentFrame);
103
104} // namespace ring
105
106#endif // __TOPOCONFINED_H_
int deformedPrismTypes(std::vector< ring::strucType > atomState, std::vector< int > *atomTypes, int maxDepth)
Get the atom type values for deformed prisms.
bool discardExtraTetragonBlocks(std::vector< int > *basal1, std::vector< int > *basal2, molSys::PointCloud< molSys::Point< double >, double > *yCloud)
int prismAnalysis(std::string path, std::vector< std::vector< int > > rings, std::vector< std::vector< int > > nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, int maxDepth, int *atomID, int firstFrame, int currentFrame, bool doShapeMatching=false)
int rmAxialTranslations(molSys::PointCloud< molSys::Point< double >, double > *yCloud, int *atomID, int firstFrame, int currentFrame)
Shift the entire ice nanotube and remove axial translations.
int assignPrismType(std::vector< std::vector< int > > rings, std::vector< int > listPrism, int ringSize, std::vector< ring::strucType > ringType, std::vector< int > *atomTypes, std::vector< ring::strucType > *atomState)
std::vector< std::vector< int > > keepAxialRingsOnly(std::vector< std::vector< int > > rings, molSys::PointCloud< molSys::Point< double >, double > *yCloud)
Saves only axial rings out of all possible rings.
bool relaxedPrismConditions(std::vector< std::vector< int > > nList, std::vector< int > *basal1, std::vector< int > *basal2)
bool basalPrismConditions(std::vector< std::vector< int > > nList, std::vector< int > *basal1, std::vector< int > *basal2)
std::vector< int > findPrisms(std::vector< std::vector< int > > rings, std::vector< strucType > *ringType, int *nPerfectPrisms, int *nImperfectPrisms, std::vector< std::vector< int > > nList, molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< double > *rmsdPerAtom, bool doShapeMatching=false)
The main molecular system handler.
Topological network criteria functions.
Definition ring.hpp:64
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