seams-core v2.6.0
libyodaLib, the C++ engine of d-SEAMS
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
cluster.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_CLUSTER_H_
16
#define SEAMS_CLUSTER_H_
17
18
#include <array>
19
#include <
bop.hpp
>
20
#include <cmath>
21
#include <complex>
22
#include <
generic.hpp
>
23
#include <iostream>
24
#include <
mol_sys.hpp
>
25
#include <
neighbours.hpp
>
26
#include <
seams_output.hpp
>
27
32
37
59
60
namespace
clump
{
61
64
struct
Domain
{
65
int
largest
= 0;
66
int
subset
= 0;
67
double
percolation
= 0.0;
// largest/subset
68
};
69
70
[[nodiscard]]
Domain
71
largestDomain
(
const
molSys::PointCloud
<
molSys::Point<double>
,
double
> &cloud,
72
const
std::vector<std::vector<int>> &nList,
73
const
std::vector<bool> &mask);
74
76
[[nodiscard]]
int
largestIceCluster
(
77
std::string path,
molSys::PointCloud
<
molSys::Point<double>
,
double
> &yCloud,
78
molSys::PointCloud
<
molSys::Point<double>
,
double
> &iceCloud,
79
const
std::vector<std::vector<int>> &nList, std::vector<bool> &isIce,
80
std::vector<int> &clusterID, std::vector<int> &nClusters,
81
std::unordered_map<int, int> &indexNumber,
int
firstFrame);
82
85
[[nodiscard]]
int
singleClusterLinkedList
(
86
molSys::PointCloud
<
molSys::Point<double>
,
double
> &iceCloud,
87
const
std::vector<std::vector<int>> &nList, std::vector<int> &linkedList);
88
92
[[nodiscard]]
int
clusterAnalysis
(std::string path,
93
molSys::PointCloud
<
molSys::Point<double>
,
double
> &iceCloud,
94
molSys::PointCloud
<
molSys::Point<double>
,
double
> &yCloud,
95
const
std::vector<std::vector<int>> &nList,
96
std::vector<std::vector<int>> &iceNeighbourList,
97
double
cutoff,
int
firstFrame,
98
std::string bopAnalysis =
"q6"
);
99
101
[[nodiscard]]
int
recenterClusterCloud
(
102
molSys::PointCloud
<
molSys::Point<double>
,
double
> &iceCloud,
103
const
std::vector<std::vector<int>> &nList);
104
105
}
// namespace clump
106
107
#endif
// SEAMS_CLUSTER_H_
bop.hpp
File for the bond order parameter analysis.
generic.hpp
File for containing generic or common functions.
clump::Domain::subset
int subset
Definition
cluster.hpp:66
clump::singleClusterLinkedList
int singleClusterLinkedList(molSys::PointCloud< molSys::Point< double >, double > &iceCloud, const std::vector< std::vector< int > > &nList, std::vector< int > &linkedList)
clump::largestIceCluster
int largestIceCluster(std::string path, molSys::PointCloud< molSys::Point< double >, double > &yCloud, molSys::PointCloud< molSys::Point< double >, double > &iceCloud, const std::vector< std::vector< int > > &nList, std::vector< bool > &isIce, std::vector< int > &clusterID, std::vector< int > &nClusters, std::unordered_map< int, int > &indexNumber, int firstFrame)
Finds the largest ice cluster.
clump::Domain::largest
int largest
Definition
cluster.hpp:65
clump::largestDomain
Domain largestDomain(const molSys::PointCloud< molSys::Point< double >, double > &cloud, const std::vector< std::vector< int > > &nList, const std::vector< bool > &mask)
clump::Domain::percolation
double percolation
Definition
cluster.hpp:67
clump::recenterClusterCloud
int recenterClusterCloud(molSys::PointCloud< molSys::Point< double >, double > &iceCloud, const std::vector< std::vector< int > > &nList)
Recenters the coordinates of a pointCloud.
clump::clusterAnalysis
int clusterAnalysis(std::string path, molSys::PointCloud< molSys::Point< double >, double > &iceCloud, molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &nList, std::vector< std::vector< int > > &iceNeighbourList, double cutoff, int firstFrame, std::string bopAnalysis="q6")
mol_sys.hpp
The main molecular system handler.
clump
Clustering functions. This namespace contains functions that are used in the for clustering ice-like ...
Definition
cluster.hpp:60
neighbours.hpp
Header file for neighbour list generation.
seams_output.hpp
clump::Domain
Definition
cluster.hpp:64
molSys::PointCloud
This contains a collection of points; contains information for a particular frame.
Definition
mol_sys.hpp:173
molSys::Point
This contains per-particle information.
Definition
mol_sys.hpp:152
src
include
internal
cluster.hpp
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf