Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _RD_UFFBUILDER_H_
00011 #define _RD_UFFBUILDER_H_
00012
00013 #include <vector>
00014 #include <string>
00015 #include <boost/shared_array.hpp>
00016
00017 namespace ForceFields {
00018 class ForceField;
00019 namespace UFF {
00020 class AtomicParams;
00021 }
00022 }
00023
00024 namespace RDKit {
00025 class ROMol;
00026 namespace UFF {
00027 typedef std::vector<const ForceFields::UFF::AtomicParams *> AtomicParamVect;
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 ForceFields::ForceField *constructForceField(ROMol &mol,
00045 double vdwThresh=100.0,
00046 int confId=-1,
00047 bool ignoreInterfragInteractions=true);
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 ForceFields::ForceField *constructForceField(ROMol &mol,
00067 const AtomicParamVect ¶ms,
00068 double vdwThresh=100.0,
00069 int confId=-1,
00070 bool ignoreInterfragInteractions=true);
00071
00072 namespace Tools {
00073
00074 void addBonds(const ROMol &mol,const AtomicParamVect ¶ms,
00075 ForceFields::ForceField *field);
00076 boost::shared_array<int> buildNeighborMatrix(const ROMol &mol);
00077 void addAngles(const ROMol &mol,const AtomicParamVect ¶ms,
00078 ForceFields::ForceField *field,boost::shared_array<int> neighborMatrix);
00079 void addNonbonded(const ROMol &mol,int confId, const AtomicParamVect ¶ms,
00080 ForceFields::ForceField *field,boost::shared_array<int> neighborMatrix,
00081 double vdwThresh=100.0,bool ignoreInterfragInteractions=true);
00082 void addTorsions(const ROMol &mol,const AtomicParamVect ¶ms,
00083 ForceFields::ForceField *field,
00084 std::string torsionBondSmarts="[!$(*#*)&!D1]~[!$(*#*)&!D1]");
00085
00086
00087 }
00088 }
00089 }
00090
00091
00092 #endif