Functions for topological network criteria cage types. More...
Classes | |
| struct | Cage |
| This contains a cage, with the constituent rings. More... | |
| struct | FoundCage |
| One cage matching a signature, closed or incomplete. More... | |
| struct | Signature |
| Ring-size census of a polyhedral cage: size -> number of faces. More... | |
Enumerations | |
| enum class | cageType { cageType::HexC , cageType::DoubleDiaC } |
| enum class | iceType { iceType::dummy , iceType::hc , iceType::ddc , iceType::mixed , iceType::pnc , iceType::mixed2 } |
Functions | |
| bool | nautyAvailable () |
| std::string | canonicalCertificate (const std::vector< std::vector< int > > &rings) |
| bool | isHexagonalPrism (const std::vector< std::vector< int > > &rings) |
| bool | sameCertificate (const std::vector< std::vector< int > > &a, const std::vector< std::vector< int > > &b) |
| std::string | canonicalCertificateRooted (int n, const std::vector< std::pair< int, int > > &edges, int root) |
| std::string | canonicalCertificateColoured (int n, const std::vector< std::pair< int, int > > &edges, const std::vector< int > &colours, int root) |
| 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. | |
| std::vector< FoundCage > | findBySignature (const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &nList, const Signature &signature) |
| As above. | |
| 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, and are not closed. | |
Functions for topological network criteria cage types.
This namespace contains structs and enums for cage types
Type definitions for atoms, rings and cages. HexC and DoubleDiaC are the TUM ice cages. A Signature names any polyhedron by its ring-size census (sodalite is {4:6, 6:8}); the enumerator in cage_enum.hpp grows face-sharing ring sets that match that census.
| std::string cage::canonicalCertificate | ( | const std::vector< std::vector< int > > & | rings | ) |
| std::string cage::canonicalCertificateColoured | ( | int | n, |
| const std::vector< std::pair< int, int > > & | edges, | ||
| const std::vector< int > & | colours, | ||
| int | root ) |
| std::string cage::canonicalCertificateRooted | ( | int | n, |
| const std::vector< std::pair< int, int > > & | edges, | ||
| int | root ) |
| std::vector< FoundCage > cage::findBySignature | ( | const std::vector< std::vector< int > > & | rings, |
| const Signature & | signature ) |
Face-sharing rings whose size census equals signature and whose edges close.
The input may hold rings of every size; only sizes that appear in the signature take part. Named hc and ddc without a neighbour list use the geometric census (4:6,6:2 and 6:7).
| std::vector< FoundCage > cage::findBySignature | ( | const std::vector< std::vector< int > > & | rings, |
| const std::vector< std::vector< int > > & | nList, | ||
| const Signature & | signature ) |
As above.
Named hc and ddc call findHC / findDDC on the six-membered rings so the vertex sets match those finders.
| std::vector< FoundCage > cage::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, and are not closed.
Cups and incomplete cages during hydrate nucleation. Closed polyhedra are omitted. minFaces <= 0 uses max(1, signature.faceCount() / 2). A cup whose every face already belongs to a closed cage is omitted.
| bool cage::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.
An empty face list is not closed.
| bool cage::isHexagonalPrism | ( | const std::vector< std::vector< int > > & | rings | ) |
| bool cage::nautyAvailable | ( | ) |
| bool cage::sameCertificate | ( | const std::vector< std::vector< int > > & | a, |
| const std::vector< std::vector< int > > & | b ) |