Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PeriodicBoundaries.h
Go to the documentation of this file.
1 
8 #ifndef INCLUDE_MOLASSEMBLER_PERIODIC_BOUNDARIES_H
9 #define INCLUDE_MOLASSEMBLER_PERIODIC_BOUNDARIES_H
10 
11 #include "Molassembler/Types.h"
12 
13 #include <vector>
14 #include <unordered_set>
15 #include <unordered_map>
16 
17 namespace Scine {
18 namespace Molassembler {
19 
20 class Graph;
21 
23  std::unordered_set<AtomIndex> uninterestingAtoms;
24  std::unordered_map<AtomIndex, AtomIndex> ghostAtomMap;
25 };
26 
29  using SubstitutionList = std::vector<std::pair<AtomIndex, AtomIndex>>;
30 
32  using SubstitutionMap = std::unordered_map<AtomIndex, SubstitutionList>;
33 
37  Graph& graph,
38  const PeriodicBoundaryDuplicates& periodics
39  );
40 };
41 
42 } // namespace Molassembler
43 } // namespace Scine
44 
45 #endif
Defines basic types widely shared across the project.
std::vector< std::pair< AtomIndex, AtomIndex >> SubstitutionList
List of real-space atom index to ghost atom index replacements.
Definition: PeriodicBoundaries.h:29
Represents the connectivity of atoms of a molecule.
Definition: Graph.h:54
Definition: PeriodicBoundaries.h:27
static SubstitutionMap removeGhosts(Graph &graph, const PeriodicBoundaryDuplicates &periodics)
Remove edges from interesting real-space atoms to ghost-space atoms.
Definition: PeriodicBoundaries.h:22
std::unordered_map< AtomIndex, SubstitutionList > SubstitutionMap
Map from interesting atom to list of real-to-ghost atom replacements.
Definition: PeriodicBoundaries.h:32