11#ifndef RD_UFFINVERSIONS_H
12#define RD_UFFINVERSIONS_H
26 bool isCBoundToO{
false};
31 double forceConstant{1.0};
33 unsigned int idx3,
unsigned int idx4,
34 int at2AtomicNum,
bool isCBoundToO,
double C0,
35 double C1,
double C2,
double forceConstant = 1.0)
40 at2AtomicNum(at2AtomicNum),
41 isCBoundToO(isCBoundToO),
45 forceConstant(forceConstant) {};
70 void addContrib(
unsigned int idx1,
unsigned int idx2,
unsigned int idx3,
71 unsigned int idx4,
int at2AtomicNum,
bool isCBoundToO,
72 double oobForceScalingFactor = 1.0);
84 void getGrad(
double *pos,
double *grad)
const override;
92 bool empty()
const {
return d_contribs.empty(); }
95 unsigned int size()
const {
return d_contribs.size(); }
98 std::vector<InversionContribsParams> d_contribs;
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
A term to capture all Inversion Contributionss.
void getGrad(double *pos, double *grad) const override
InversionContribs()=default
InversionContribs * copy() const override
Copy constructor.
~InversionContribs() override=default
bool empty() const
Return true if there are no contributions in this contrib.
InversionContribs(ForceField *owner)
Constructor.
void addContrib(unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, int at2AtomicNum, bool isCBoundToO, double oobForceScalingFactor=1.0)
Add contribution to this contrib.
double getEnergy(double *pos) const override
return the contribution of this contrib to the energy of a given state
unsigned int size() const
Get number of contributions in this contrib.
#define RDKIT_FORCEFIELD_EXPORT
InversionContribsParams(unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, int at2AtomicNum, bool isCBoundToO, double C0, double C1, double C2, double forceConstant=1.0)