2 #include "../utils/fwd_declares.hpp" 3 #include "../utils/quad.hpp" 10 #ifndef INDIGOX_CLASSES_DIHEDRAL_HPP 11 #define INDIGOX_CLASSES_DIHEDRAL_HPP 28 template <
typename Archive>
29 void serialise(Archive &archive,
const uint32_t version);
50 int64_t
GetID()
const;
64 constexpr int64_t
NumAtoms()
const {
return 4; }
96 std::shared_ptr<Impl> m_data;
99 std::ostream &
operator<<(std::ostream &os,
const Dihedral &dhd);
#define INDIGOX_GENERIC_PIMPL_CLASS_DEFAULTS(class_name)
Definition: fwd_declares.hpp:18
friend class cereal::access
Friendship allows serialisation.
Definition: dihedral.hpp:18
Definition: forcefield.hpp:234
Namespace for all graph related functionality.
Definition: access.hpp:7
int64_t GetIndex() const
Get the index from the molecule.
const DihedralTypes & GetTypes() const
const DihedralAtoms & GetAtoms() const
Get the atoms of the dihedral.
std::vector< FFDihedral > DihedralTypes
Type for storing dihedral parameters.
Definition: dihedral.hpp:25
void SetTypes(const DihedralTypes &types)
void SetTag(int64_t tag)
Set the tag of this dihedral.
Definition: dihedral.hpp:14
Definition: molecule.hpp:15
int64_t NumTypes() const
Get the type of the dihedral.
#define INDIGOX_GENERIC_PIMPL_CLASS_OPERATORS(class_name, short_name)
Definition: fwd_declares.hpp:26
int64_t GetTag() const
Tag of the dihedral.
void AddType(const FFDihedral &type)
Set the type of the dihedral.
std::ostream & operator<<(std::ostream &os, const Dihedral &dhd)
int32_t GetPriority() const
const Molecule & GetMolecule() const
Molecule this dihedral is associated with.
void RemoveType(const FFDihedral &type)
constexpr int64_t NumAtoms() const
Number of atoms this dihedral contains.
Definition: dihedral.hpp:64
std::array< Atom, 4 > DihedralAtoms
Container for storing IXAtom references assigned to an IXDihedral.
Definition: dihedral.hpp:23