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; }
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; }
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; }
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); }
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; }
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); } };
const ROMol *FragCatParams::getFuncGroup(unsigned int fid) const { URANGE_CHECK(fid, d_funcGroups.size()); // return d_funcGroups[fid]; return d_funcGroups[fid].get(); }