13#ifndef RD_GAUSSIANTORSIONANGLECONTRIBS_H
14#define RD_GAUSSIANTORSIONANGLECONTRIBS_H
81 void addContrib(std::size_t idx1, std::size_t idx2, std::size_t idx3,
82 std::size_t idx4, std::vector<double> energies,
83 std::vector<double> gradients,
double scaling = 1.0);
95 void getGrad(
double *pos,
double *grad)
const override;
102 bool empty()
const {
return d_contribs.empty(); }
105 unsigned int size()
const {
return d_contribs.size(); }
108 std::vector<GaussianTorsionAngleContribsParams> d_contribs;
122 const std::vector<double> &heights,
const std::vector<double> &positions,
123 const std::vector<double> &widths,
const double phi);
136 const std::vector<double> &heights,
const std::vector<double> &positions,
137 const std::vector<double> &widths,
const double phi);
void getGrad(double *pos, double *grad) const override
void addContrib(std::size_t idx1, std::size_t idx2, std::size_t idx3, std::size_t idx4, std::vector< double > energies, std::vector< double > gradients, double scaling=1.0)
unsigned int size() const
Get number of contributions in this contrib.
~GaussianTorsionAngleContribs()=default
GaussianTorsionAngleContribs()=default
double getEnergy(double *pos) const override
return the contribution of this contrib to the energy of a given state
GaussianTorsionAngleContribs(ForceField *owner)
Constructor.
bool empty() const
Return true if there are no contributions in this contrib.
GaussianTorsionAngleContribs * copy() const override
Copy constructor.
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
#define RDKIT_FORCEFIELDHELPERS_EXPORT
RDKIT_FORCEFIELDHELPERS_EXPORT double getdEdPhi(const std::vector< double > &heights, const std::vector< double > &positions, const std::vector< double > &widths, const double phi)
RDKIT_FORCEFIELDHELPERS_EXPORT double getEnergy(const std::vector< double > &heights, const std::vector< double > &positions, const std::vector< double > &widths, const double phi)
constexpr std::size_t lookup_grid_size
std::vector< double > energies
GaussianTorsionAngleContribsParams(std::size_t idx1, std::size_t idx2, std::size_t idx3, std::size_t idx4, std::vector< double > energies, std::vector< double > gradients, double scaling=1.0)
std::vector< double > gradients