Loading...
Searching...
No Matches
cage_enum.hpp
Go to the documentation of this file.
1//-----------------------------------------------------------------------------------
2// d-SEAMS - Deferred Structural Elucidation Analysis for Molecular Simulations
3// SPDX-License-Identifier: MIT
4//-----------------------------------------------------------------------------------
5#ifndef SEAMS_CAGE_ENUM_H_
6#define SEAMS_CAGE_ENUM_H_
7
8#include <cage.hpp>
9
10#include <string>
11#include <vector>
12
25namespace cage {
26
28struct FoundCage {
30 std::vector<int> faces;
31 std::vector<int> vertices;
32 std::string certificate;
33 bool closed = true;
34 int danglingEdges = 0;
35};
36
39bool isClosedPolyhedron(const std::vector<std::vector<int>> &rings,
40 const std::vector<int> &faces);
41
47std::vector<FoundCage>
48findBySignature(const std::vector<std::vector<int>> &rings,
49 const Signature &signature);
50
53std::vector<FoundCage>
54findBySignature(const std::vector<std::vector<int>> &rings,
55 const std::vector<std::vector<int>> &nList,
56 const Signature &signature);
57
63std::vector<FoundCage>
64findIncompleteBySignature(const std::vector<std::vector<int>> &rings,
65 const Signature &signature, int minFaces);
66
67} // namespace cage
68
69#endif // SEAMS_CAGE_ENUM_H_
File for cage types for topological network criteria.
Functions for topological network criteria cage types.
Definition cage.hpp:47
std::vector< FoundCage > findIncompleteBySignature(const std::vector< std::vector< int > > &rings, const Signature &signature, int minFaces)
Connected face sets that stay inside the signature budget, have at least minFaces faces,...
bool isClosedPolyhedron(const std::vector< std::vector< int > > &rings, const std::vector< int > &faces)
True when every edge of the listed faces is used by exactly two of those faces.
std::vector< FoundCage > findBySignature(const std::vector< std::vector< int > > &rings, const Signature &signature)
Face-sharing rings whose size census equals signature and whose edges close.
One cage matching a signature, closed or incomplete.
Definition cage_enum.hpp:28
std::vector< int > faces
ring indices into the input vector
Definition cage_enum.hpp:30
Signature signature
Definition cage_enum.hpp:29
std::string certificate
nauty hex, empty when nauty is off
Definition cage_enum.hpp:32
int danglingEdges
edges used once (cups / incomplete)
Definition cage_enum.hpp:34
bool closed
every face edge used twice
Definition cage_enum.hpp:33
std::vector< int > vertices
sorted unique atom indices
Definition cage_enum.hpp:31
Ring-size census of a polyhedral cage: size -> number of faces.
Definition cage.hpp:71