Loading...
Searching...
No Matches
order_parameter.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 SEAMS_ORDER_PARAMETER_H_
16#define SEAMS_ORDER_PARAMETER_H_
17
18#include <algorithm>
19#include <array>
20#include <fstream>
21#include <iostream>
22#include <iterator>
23#include <cmath>
24#include <memory>
25#include <sstream>
26#include <string>
27#include <vector>
28
29#include <cage.hpp>
30#include <mol_sys.hpp>
31#include <ring.hpp>
32#include <seams_input.hpp>
33#include <seams_output.hpp>
34
35namespace topoparam {
36
40double
42 int nPrisms, double avgPrismHeight);
43
46std::vector<double>
48 const std::vector<std::vector<int>> &rings, double sheetArea);
49
51std::vector<double>
53 const std::vector<int> &ring);
54
59std::vector<double>
61 const std::vector<std::vector<int>> &nList, int oxygenType,
62 int hydrogenType);
63
65double meanFinite(const std::vector<double> &values);
66
71 const molSys::PointCloud<molSys::Point<double>, double> &frame0,
72 const molSys::PointCloud<molSys::Point<double>, double> &frame1, double dt,
73 int oxygenType, int hydrogenType);
74
79struct LayerStack {
80 double phiC = 0.0;
81 std::string sequence;
82 std::vector<int> cubicPerLayer;
83 std::vector<int> hexPerLayer;
84};
85
88 int axis = 2, double layerWidth = 3.7);
89
97 const std::vector<std::vector<int>> &rings,
98 const std::vector<bool> &basal, const std::vector<bool> &equatorial,
99 int axis = 2, double layerWidth = 3.7);
100
101} // namespace topoparam
102
103#endif // SEAMS_ORDER_PARAMETER_H_
File for cage types for topological network criteria.
The main molecular system handler.
Topological network criteria functions.
std::vector< double > projAreaSingleRing(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< int > &ring)
Calculates the projected area on the XY, YZ and XZ planes.
double normHeightPercent(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int nPrisms, double avgPrismHeight)
LayerStack tumLayerStack(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &rings, const std::vector< bool > &basal, const std::vector< bool > &equatorial, int axis=2, double layerWidth=3.7)
std::vector< double > calcCoverageArea(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &rings, double sheetArea)
LayerStack layerCubicity(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, int axis=2, double layerWidth=3.7)
double meanFinite(const std::vector< double > &values)
Mean of the finite per-atom F4 values; quiet_NaN when none are finite.
std::vector< double > rodgerF4(const molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList, int oxygenType, int hydrogenType)
double jumpRotorTau90(const molSys::PointCloud< molSys::Point< double >, double > &frame0, const molSys::PointCloud< molSys::Point< double >, double > &frame1, double dt, int oxygenType, int hydrogenType)
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:173
This contains per-particle information.
Definition mol_sys.hpp:152
std::vector< int > cubicPerLayer
std::vector< int > hexPerLayer