Exemplo n.º 1
0
VdWContrib::VdWContrib(ForceField *owner, unsigned int idx1, unsigned int idx2,
                       const MMFFVdWRijstarEps *mmffVdWConstants) {
  PRECONDITION(owner, "bad owner");
  PRECONDITION(mmffVdWConstants, "bad MMFFVdW parameters");
  URANGE_CHECK(idx1, owner->positions().size());
  URANGE_CHECK(idx2, owner->positions().size());

  dp_forceField = owner;
  d_at1Idx = idx1;
  d_at2Idx = idx2;
  d_R_ij_star = mmffVdWConstants->R_ij_star;
  d_wellDepth = mmffVdWConstants->epsilon;
}
Exemplo n.º 2
0
EleContrib::EleContrib(ForceField *owner, unsigned int idx1, unsigned int idx2,
                       double chargeTerm, boost::uint8_t dielModel,
                       bool is1_4) {
  PRECONDITION(owner, "bad owner");
  URANGE_CHECK(idx1, owner->positions().size());
  URANGE_CHECK(idx2, owner->positions().size());

  dp_forceField = owner;
  d_at1Idx = idx1;
  d_at2Idx = idx2;
  d_chargeTerm = chargeTerm;
  d_dielModel = dielModel;
  d_is1_4 = is1_4;
}
DistViolationContrib::DistViolationContrib(ForceFields::ForceField *owner,
                                           unsigned int idx1, unsigned int idx2,
                                           double ub, double lb,
                                           double weight) {
  PRECONDITION(owner, "bad owner");
  URANGE_CHECK(idx1, owner->positions().size());
  URANGE_CHECK(idx2, owner->positions().size());

  dp_forceField = owner;
  d_end1Idx = idx1;
  d_end2Idx = idx2;
  d_ub = ub;
  d_lb = lb;
  d_weight = weight;
}
Exemplo n.º 4
0
OopBendContrib::OopBendContrib(ForceField *owner, unsigned int idx1,
                               unsigned int idx2, unsigned int idx3,
                               unsigned int idx4,
                               const MMFFOop *mmffOopParams) {
  PRECONDITION(owner, "bad owner");
  PRECONDITION(mmffOopParams, "no OOP parameters");
  PRECONDITION((idx1 != idx2) && (idx1 != idx3) && (idx1 != idx4) &&
                   (idx2 != idx3) && (idx2 != idx4) && (idx3 != idx4),
               "degenerate points");
  URANGE_CHECK(idx1, owner->positions().size());
  URANGE_CHECK(idx2, owner->positions().size());
  URANGE_CHECK(idx3, owner->positions().size());
  URANGE_CHECK(idx4, owner->positions().size());

  dp_forceField = owner;
  d_at1Idx = idx1;
  d_at2Idx = idx2;
  d_at3Idx = idx3;
  d_at4Idx = idx4;
  d_koop = mmffOopParams->koop;
}
Exemplo n.º 5
0
StretchBendContrib::StretchBendContrib(
    ForceField *owner, const unsigned int idx1, const unsigned int idx2,
    const unsigned int idx3, const MMFFStbn *mmffStbnParams,
    const MMFFAngle *mmffAngleParams, const MMFFBond *mmffBondParams1,
    const MMFFBond *mmffBondParams2) {
  PRECONDITION(owner, "bad owner");
  PRECONDITION(((idx1 != idx2) && (idx2 != idx3) && (idx1 != idx3)),
               "degenerate points");
  URANGE_CHECK(idx1, owner->positions().size() - 1);
  URANGE_CHECK(idx2, owner->positions().size() - 1);
  URANGE_CHECK(idx3, owner->positions().size() - 1);

  dp_forceField = owner;
  d_at1Idx = idx1;
  d_at2Idx = idx2;
  d_at3Idx = idx3;
  d_restLen1 = Utils::calcBondRestLength(mmffBondParams1);
  d_restLen2 = Utils::calcBondRestLength(mmffBondParams2);
  d_theta0 = Utils::calcAngleRestValue(mmffAngleParams);
  d_forceConstants = Utils::calcStbnForceConstants(mmffStbnParams);
}
Exemplo n.º 6
0
TorsionAngleContrib::TorsionAngleContrib(ForceField *owner, unsigned int idx1,
                                         unsigned int idx2, unsigned int idx3,
                                         unsigned int idx4,
                                         const MMFFTor *mmffTorParams) {
  PRECONDITION(owner, "bad owner");
  PRECONDITION((idx1 != idx2) && (idx1 != idx3) && (idx1 != idx4) &&
                   (idx2 != idx3) && (idx2 != idx4) && (idx3 != idx4),
               "degenerate points");
  URANGE_CHECK(idx1, owner->positions().size() - 1);
  URANGE_CHECK(idx2, owner->positions().size() - 1);
  URANGE_CHECK(idx3, owner->positions().size() - 1);
  URANGE_CHECK(idx4, owner->positions().size() - 1);

  dp_forceField = owner;
  d_at1Idx = idx1;
  d_at2Idx = idx2;
  d_at3Idx = idx3;
  d_at4Idx = idx4;
  d_V1 = mmffTorParams->V1;
  d_V2 = mmffTorParams->V2;
  d_V3 = mmffTorParams->V3;
}
Exemplo n.º 7
0
std::pair<unsigned int, unsigned int> FPBReader::getFPIdsInCountRange(
    unsigned int minCount, unsigned int maxCount) {
  PRECONDITION(df_init, "not initialized");
  PRECONDITION(dp_impl, "no impl");
  URANGE_CHECK(maxCount, dp_impl->nBits + 1);
  PRECONDITION(maxCount >= minCount, "max < min");
  if (dp_impl->popCountOffsets.size() == dp_impl->nBits + 2) {
    return std::make_pair(dp_impl->popCountOffsets[minCount],
                          dp_impl->popCountOffsets[maxCount + 1]);
  } else {
    // we don't have popcounts, so we have to work for it.
    // FIX: complete this
    return std::make_pair(0, 0);
  }
};
Exemplo n.º 8
0
const ROMol *FragCatParams::getFuncGroup(unsigned int fid) const {
  URANGE_CHECK(fid, d_funcGroups.size());
  // return d_funcGroups[fid];
  return d_funcGroups[fid].get();
}