11#ifndef RD_CHIRALVIOLATIONCONTRIBS_H
12#define RD_CHIRALVIOLATIONCONTRIBS_H
22 const unsigned int idx1,
const unsigned int idx2,
const unsigned int idx3,
23 const unsigned int idx4,
const double *pos,
const unsigned int dim);
25 const unsigned int idx1,
const unsigned int idx2,
const unsigned int idx3,
34 unsigned int i3,
unsigned int i4,
double u,
35 double l,
double w = 1.0)
77 void getGrad(
double *pos,
double *grad)
const override;
81 bool empty()
const {
return d_contribs.empty(); }
82 unsigned int size()
const {
return d_contribs.size(); }
85 std::vector<ChiralViolationContribsParams> d_contribs;
Class used to store a quartet of points and chiral volume bounds on them.
ChiralViolationContribs * copy() const override
return a copy
ChiralViolationContribs()=default
unsigned int size() const
ChiralViolationContribs(ForceFields::ForceField *owner)
Constructor.
void getGrad(double *pos, double *grad) const override
double getEnergy(double *pos) const override
return the contribution of this contrib to the energy of a given state
void addContrib(const ChiralSet *cset, double weight=1.0)
adds a new chiral constraint
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
#define RDKIT_DISTGEOMETRY_EXPORT
RDKIT_DISTGEOMETRY_EXPORT double calcChiralVolume(const unsigned int idx1, const unsigned int idx2, const unsigned int idx3, const unsigned int idx4, const double *pos, const unsigned int dim)
std::vector< RDGeom::Point * > PointPtrVect
ChiralViolationContribsParams(unsigned int i1, unsigned int i2, unsigned int i3, unsigned int i4, double u, double l, double w=1.0)