11 #ifndef _RD_DISTGEOMUTILS_H_ 12 #define _RD_DISTGEOMUTILS_H_ 64 bool randNegEig =
false,
unsigned int numZeroFail = 2,
70 bool randNegEig =
false,
71 unsigned int numZeroFail = 2);
116 double weightFourthDim = 0.1,
117 std::map<std::pair<int, int>,
double> *extraWeights = 0,
118 double basinSizeTol = 5.0);
143 const std::vector<std::pair<int, int> > &bonds,
144 const std::vector<std::vector<int> > &angles,
145 const std::vector<std::vector<int> > &expTorsionAtoms,
146 const std::vector<std::pair<std::vector<int>, std::vector<double> > > &
148 const std::vector<std::vector<int> > &improperAtoms,
149 const std::vector<int> &atomNums);
173 const std::vector<std::pair<int, int> > &bonds,
174 const std::vector<std::vector<int> > &angles,
175 const std::vector<std::vector<int> > &expTorsionAtoms,
176 const std::vector<std::pair<std::vector<int>, std::vector<double> > > &
178 const std::vector<int> &atomNums);
194 const std::vector<std::vector<int> > &improperAtoms,
195 const std::vector<int> &atomNums);
std::vector< RDGeom::Point3D * > Point3DPtrVect
std::vector< RDGeom::Point * > PointPtrVect
#define RDKIT_DISTGEOMETRY_EXPORT
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * constructPlain3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::pair< int, int > > &bonds, const std::vector< std::vector< int > > &angles, const std::vector< std::vector< int > > &expTorsionAtoms, const std::vector< std::pair< std::vector< int >, std::vector< double > > > &expTorsionAngles, const std::vector< int > &atomNums)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
A symmetric matrix class.
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * constructForceField(const BoundsMatrix &mmat, RDGeom::PointPtrVect &positions, const VECT_CHIRALSET &csets, double weightChiral=1.0, double weightFourthDim=0.1, std::map< std::pair< int, int >, double > *extraWeights=0, double basinSizeTol=5.0)
Setup the error function for violation of distance bounds as a forcefield.
std::vector< ChiralSetPtr > VECT_CHIRALSET
RDKIT_DISTGEOMETRY_EXPORT bool computeInitialCoords(const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, RDKit::double_source_type &rng, bool randNegEig=false, unsigned int numZeroFail=2)
RDKIT_DISTGEOMETRY_EXPORT double pickRandomDistMat(const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, RDKit::double_source_type &rng)
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * construct3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::pair< int, int > > &bonds, const std::vector< std::vector< int > > &angles, const std::vector< std::vector< int > > &expTorsionAtoms, const std::vector< std::pair< std::vector< int >, std::vector< double > > > &expTorsionAngles, const std::vector< std::vector< int > > &improperAtoms, const std::vector< int > &atomNums)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
RDKIT_DISTGEOMETRY_EXPORT bool computeRandomCoords(RDGeom::PointPtrVect &positions, double boxSize, RDKit::double_source_type &rng)
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * construct3DImproperForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::vector< int > > &improperAtoms, const std::vector< int > &atomNums)
Force field with only improper terms.
boost::variate_generator< rng_type &, uniform_double > double_source_type
A class to store forcefields and handle minimization.