1 #include "../utils/fwd_declares.hpp" 2 #include "../utils/quad.hpp" 3 #include "../utils/triple.hpp" 4 #include <boost/dynamic_bitset_fwd.hpp> 10 #ifndef INDIGOX_CLASSES_ATHENAEUM_HPP 11 #define INDIGOX_CLASSES_ATHENAEUM_HPP 31 using BndType = std::pair<AtmType, AtmType>;
36 template <
class Archive>
37 void serialise(Archive &archive,
const uint32_t version);
52 std::vector<graph::MGVertex> &overlap);
55 std::vector<Atom> &overlap);
58 const std::vector<graph::CMGVertex> &
GetFragment()
const;
61 const std::vector<OverlapVertex> &
GetOverlap()
const;
64 const std::vector<AtmType> &
GetAtoms()
const;
65 const std::vector<BndType> &
GetBonds()
const;
66 const std::vector<AngType> &
GetAngles()
const;
71 std::shared_ptr<FragmentData> m_data;
107 template <
class Archive>
108 void serialise(Archive &archive,
const uint32_t version);
139 void SortAndMask(
const Molecule &mol);
143 std::shared_ptr<Impl> m_data;
Athenaeum LoadAthenaeum(std::string path)
Fragment(const graph::MolecularGraph &G, std::vector< graph::MGVertex > &frag, std::vector< graph::MGVertex > &overlap)
Normal constructor.
const std::vector< DhdType > & GetDihedrals() const
void SaveAthenaeum(const Athenaeum &ath, std::string path)
bool IsOverlapVertex(const graph::CMGVertex &v) const
#define INDIGOX_GENERIC_PIMPL_CLASS_DEFAULTS(class_name)
Definition: fwd_declares.hpp:18
int32_t GetInt(Settings param)
void SetInt(Settings param, int32_t value)
const std::vector< graph::CMGVertex > & GetFragment() const
Athenaeum class for fragment storage in CherryPicker algorithm.
Definition: athenaeum.hpp:76
Definition: condensed.hpp:131
void UnsetBool(Settings param)
Settings
Definition: athenaeum.hpp:80
std::map< Molecule, FragContain > MoleculeFragments
Definition: athenaeum.hpp:104
Class for the vertices of an IXCondensedMolecularGraph.
Definition: condensed.hpp:21
std::pair< AtmType, AtmType > BndType
Definition: athenaeum.hpp:31
Athenaeum(const Forcefield &ff)
bool HasFragments(const Molecule &mol) const
Class containing a graph representation of a molecule.
Definition: molecular.hpp:95
Namespace for all graph related functionality.
Definition: access.hpp:7
Class for the vertices of a IXMolecularGraph.
Definition: molecular.hpp:20
const std::vector< AtmType > & GetAtoms() const
std::vector< Fragment > FragContain
Definition: athenaeum.hpp:103
OverlapType
Type of overlapping vertex.
Definition: athenaeum.hpp:25
size_t NumFragments() const
friend class cereal::access
Definition: athenaeum.hpp:77
const std::vector< OverlapVertex > & GetOverlap() const
const std::vector< BndType > & GetBonds() const
const Forcefield & GetForcefield() const
Definition: triple.hpp:11
const graph::CondensedMolecularGraph & GetGraph() const
bool AddFragment(const Fragment &frag)
Adds the given fragment.
Definition: molecule.hpp:15
#define INDIGOX_GENERIC_PIMPL_CLASS_OPERATORS(class_name, short_name)
Definition: fwd_declares.hpp:26
Definition: forcefield.hpp:333
void SetBool(Settings param)
Fragment class for CherryPicker parameterisation algorithm.
Definition: athenaeum.hpp:17
friend class cereal::access
Definition: athenaeum.hpp:18
size_t AddAllFragments(const Molecule &mol)
Determines all the fragments of a molecule and adds them.
const std::vector< AngType > & GetAngles() const
bool GetBool(Settings param)
const MoleculeFragments & GetFragments() const
bool IsFragmentVertex(const graph::CMGVertex &v) const
std::pair< OverlapType, graph::CMGVertex > OverlapVertex
Type used to match an overlap vertex to its type of overlap.
Definition: athenaeum.hpp:28
const boost::dynamic_bitset & GetSupersets() const