11 #ifndef _RD_DISTGEOMUTILS_H_ 12 #define _RD_DISTGEOMUTILS_H_ 20 #include <boost/dynamic_bitset.hpp> 25 struct CrystalFFDetails;
70 unsigned int numZeroFail = 2,
int seed = -1);
75 bool randNegEig =
false,
unsigned int numZeroFail = 2);
121 double weightFourthDim = 0.1,
122 std::map<std::pair<int, int>,
double> *extraWeights = 0,
123 double basinSizeTol = 5.0, boost::dynamic_bitset<> *fixedPts =
nullptr);
172 const std::vector<std::vector<int>> &improperAtoms,
173 const std::vector<int> &atomNums);
std::vector< RDGeom::Point3D * > Point3DPtrVect
std::vector< RDGeom::Point * > PointPtrVect
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * construct3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
#define RDKIT_DISTGEOMETRY_EXPORT
RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * constructPlain3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
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, boost::dynamic_bitset<> *fixedPts=nullptr)
Setup the error function for violation of distance bounds as a forcefield.
A symmetric matrix class.
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 * 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.
RDKIT_DISTGEOMETRY_EXPORT bool computeRandomCoords(RDGeom::PointPtrVect &positions, double boxSize, RDKit::double_source_type &rng)
boost::variate_generator< rng_type &, uniform_double > double_source_type
A class to store forcefields and handle minimization.