18#ifndef _RBTDIHEDRALSF_H_
19#define _RBTDIHEDRALSF_H_
21#include "rxdock/Atom.h"
22#include "rxdock/BaseSF.h"
23#include "rxdock/Bond.h"
24#include "rxdock/ParameterFileSource.h"
25#include "rxdock/TriposAtomType.h"
27#include <nlohmann/json.hpp>
29using json = nlohmann::json;
50 prms(
double ss = 3.0,
double kk = 0.2,
double o = 0.0)
51 : s(std::fabs(ss)), k(kk), sign((ss > 0.0) ? +1.0 : -1.0), offset(o) {}
67 double operator()()
const;
68 Atom *GetAtom1Ptr()
const {
return m_pAtom1; }
69 Atom *GetAtom2Ptr()
const {
return m_pAtom2; }
70 Atom *GetAtom3Ptr()
const {
return m_pAtom3; }
71 Atom *GetAtom4Ptr()
const {
return m_pAtom4; }
73 void AddTerm(
const prms &dihprms);
81 std::vector<prms> m_prms;
84void to_json(json &j,
const DihedralElement &dihedralElem);
85void from_json(
const json &j, DihedralElement &dihedralElem);
88typedef std::vector<DihedralElement *> DihedralList;
89typedef DihedralList::iterator DihedralListIter;
90typedef DihedralList::const_iterator DihedralListConstIter;
95 static const std::string _CT;
97 static const std::string _IMPL_H_CORR;
102 friend void to_json(json &j,
const DihedralSF &dihedralSF);
103 friend void from_json(
const json &j,
DihedralSF &dihedralSF);
111 DihedralList CreateDihedralList(
const BondList &bondList);
116 TriposAtomType::eType t2,
117 TriposAtomType::eType t3,
118 TriposAtomType::eType t4);
123 void CalcBondedAtoms(
Atom *pAtom1,
Atom *pAtom2, AtomList &bondedAtoms,
124 std::vector<double> &offsets);
127 std::vector<std::string> m_centralPairs;
131void to_json(json &j,
const DihedralSF &dihedralSF);
132void from_json(
const json &j,
DihedralSF &dihedralSF);
Definition DihedralSF.h:48
Definition DihedralSF.h:44
Definition DihedralSF.h:92
Definition TriposAtomType.h:28