seams-core v2.6.0
libyodaLib, the C++ engine of d-SEAMS
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
cage_affiliation.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
// SPDX-License-Identifier: MIT
7
//-----------------------------------------------------------------------------------
8
9
#ifndef SEAMS_CAGE_AFFILIATION_H_
10
#define SEAMS_CAGE_AFFILIATION_H_
11
12
#include <memory>
13
#include <vector>
14
54
55
namespace
ring
{
56
60
struct
CageAffiliation
{
61
std::vector<bool>
hc
;
62
std::vector<bool>
ddc
;
63
};
64
68
[[nodiscard]]
CageAffiliation
cageAffiliation
(
69
const
std::vector<std::vector<int>> &rings,
70
const
std::vector<std::vector<int>> &nList);
71
81
class
AffiliationUpdater
{
82
public
:
83
AffiliationUpdater
();
84
~AffiliationUpdater
();
85
AffiliationUpdater
(
AffiliationUpdater
&&) noexcept;
86
AffiliationUpdater
&operator=(
AffiliationUpdater
&&) noexcept;
87
AffiliationUpdater
(const
AffiliationUpdater
&) = delete;
88
AffiliationUpdater
&operator=(const
AffiliationUpdater
&) = delete;
89
93
const
CageAffiliation
&
update
(const std::vector<std::vector<
int
>> &rings,
94
const std::vector<std::vector<
int
>> &nList);
95
98
[[nodiscard]]
int
lastReclassified
() const;
99
100
private:
101
struct Impl;
102
std::unique_ptr<Impl> impl_;
103
};
104
108
struct
SeededAtomLabels
{
109
std::vector<bool>
hc
;
110
std::vector<bool>
ddc
;
111
};
112
126
[[nodiscard]]
SeededAtomLabels
seededCageAffiliation
(
127
const
std::vector<std::vector<int>> &strictRings,
128
const
std::vector<std::vector<int>> &strictNList,
129
const
std::vector<std::vector<int>> &permissiveRings,
130
const
std::vector<std::vector<int>> &permissiveNList);
131
132
}
// namespace ring
133
134
#endif
// SEAMS_CAGE_AFFILIATION_H_
ring::AffiliationUpdater::update
const CageAffiliation & update(const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &nList)
ring::AffiliationUpdater::lastReclassified
int lastReclassified() const
ring::AffiliationUpdater::AffiliationUpdater
AffiliationUpdater()
ring::AffiliationUpdater::AffiliationUpdater
AffiliationUpdater(AffiliationUpdater &&) noexcept
ring::AffiliationUpdater::~AffiliationUpdater
~AffiliationUpdater()
ring
Topological network criteria functions.
Definition
cage_affiliation.hpp:55
ring::cageAffiliation
CageAffiliation cageAffiliation(const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &nList)
ring::seededCageAffiliation
SeededAtomLabels seededCageAffiliation(const std::vector< std::vector< int > > &strictRings, const std::vector< std::vector< int > > &strictNList, const std::vector< std::vector< int > > &permissiveRings, const std::vector< std::vector< int > > &permissiveNList)
Seeded affiliation over two graphs on the same atoms: the strict graph (typically the mutual k-neares...
ring::CageAffiliation
Per-ring affiliation flags, indexed like the input ring vector.
Definition
cage_affiliation.hpp:60
ring::CageAffiliation::ddc
std::vector< bool > ddc
Basal or prismatic of a passing basal pair.
Definition
cage_affiliation.hpp:62
ring::CageAffiliation::hc
std::vector< bool > hc
Definition
cage_affiliation.hpp:61
ring::SeededAtomLabels
Per-atom cage flags from seeded (hysteresis) affiliation.
Definition
cage_affiliation.hpp:108
ring::SeededAtomLabels::ddc
std::vector< bool > ddc
Atom belongs to an accepted HC-affiliated ring.
Definition
cage_affiliation.hpp:110
ring::SeededAtomLabels::hc
std::vector< bool > hc
Definition
cage_affiliation.hpp:109
src
include
internal
cage_affiliation.hpp
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf