Loading...
Searching...
No Matches
cage_enum.hpp File Reference

Signature-guided enumeration of polyhedral cages. More...

#include <cage.hpp>
#include <array>
#include <map>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  cage::FoundCage
 One cage matching a signature, closed or incomplete. More...
struct  cage::CageShape
 IRA/SOFI result for one cage. More...
struct  cage::FormerRow
 One network-former atom: coordination, same-species bonds, and the primitive rings that pass through it. More...

Namespaces

namespace  cage
 Functions for topological network criteria cage types.

Functions

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.
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.
bool cage::speciesCycleMatches (const std::vector< int > &cycle, const std::vector< int > &pattern)
 True when cycle is pattern rotated or reversed.
std::vector< FoundCage > cage::findBySignature (const std::vector< std::vector< int > > &rings, const Signature &signature, const std::vector< int > &species, const std::vector< std::vector< int > > &patterns)
 As findBySignature.
std::vector< FoundCage > cage::findBySignature (const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &nList, const Signature &signature)
 As above.
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.
std::vector< std::array< double, 3 > > cage::coordsOfVertices (const std::vector< std::array< double, 3 > > &all, const std::vector< int > &vertices)
 Coordinates of vertices only.
CageShape cage::shapeOfVertices (const std::vector< std::array< double, 3 > > &cageXyz)
 Point group of this vertex set.
CageShape cage::overlayVertices (const std::vector< std::array< double, 3 > > &ref, const std::vector< std::array< double, 3 > > &cageXyz)
 Overlay cageXyz on ref.
std::vector< FormerRow > cage::formerRows (const std::vector< std::vector< int > > &nList, const std::vector< std::vector< int > > &rings, const std::vector< int > &species, int formerSpecies)
 formerSpecies < 0 keeps every atom.
bool cage::sameNetwork (const std::vector< FormerRow > &early, const std::vector< FormerRow > &late)
 True when the two tables have the same per-atom species, coordination, homopolar count, and ring-size multiset.

Detailed Description

Signature-guided enumeration of polyhedral cages.

A cage is a connected set of primitive rings (faces) whose size census matches a Signature and whose edges form a closed polyhedron: every edge of every face is shared by exactly two faces of the set. Growth walks the ring adjacency graph (two rings are adjacent when they share an edge) and stays inside the signature budget. Distinct cages are the distinct sorted vertex sets; the nauty certificate, when linked, names the isomorphism class of each cage.

Definition in file cage_enum.hpp.