11#ifndef RD_UFFINVERSIONS_H
12#define RD_UFFINVERSIONS_H
33 unsigned int idx3,
unsigned int idx4,
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;
class to store atomic parameters for the Universal Force Field
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
unsigned int idx3
index of atom3 in the ForceField's positions
double C0
inversion coefficient 0
unsigned int idx1
index of atom1 in the ForceField's positions
double C2
inversion coefficient 2
int at2AtomicNum
atomic number for atom 2
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)
double C1
inversion coefficient 1
double forceConstant
force constant
unsigned int idx4
index of atom4 in the ForceField's positions
unsigned int idx2
index of atom2 in the ForceField's positions