本文整理汇总了C++中CMol::Query_Distance方法的典型用法代码示例。如果您正苦于以下问题:C++ CMol::Query_Distance方法的具体用法?C++ CMol::Query_Distance怎么用?C++ CMol::Query_Distance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMol
的用法示例。
在下文中一共展示了CMol::Query_Distance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Geo_Constraint_Bond
double Geo_Constraint_Bond(unsigned n, const double *x, double *grad, void *data)
{
int ia, ib, iPos;
double r, r0, g[2][3];
CMol* pMol;
GEO_FIX_BOND *Geo_Fix_r;
Geo_Fix_r = (GEO_FIX_BOND*)data;
pMol = (CMol*)(Geo_Fix_r->pMol);
ia = Geo_Fix_r->ia;
ib = Geo_Fix_r->ib;
r0 = Geo_Fix_r->r0;
if(grad) {
r = pMol->Query_Distance(ia, ib, 1, g);
memset(grad, 0, sizeof(double)*n);
iPos = 3 * ia;
grad[iPos ] = g[0][0];
grad[iPos+1] = g[0][1];
grad[iPos+2] = g[0][2];
iPos = 3 * ib;
grad[iPos ] = g[1][0];
grad[iPos+1] = g[1][1];
grad[iPos+2] = g[1][2];
}
else {
r = pMol->Query_Distance(ia, ib, 0, g);
}
return (r - r0);
}