57  for ( 
int ituple=0; ituple<ntuple; ++ituple ) {
    66 #if defined(DEBUG_PROTOCELL)    82     CkPrintf(
"%11d %11d %11d %11d mult=%d", i, j, k, l, mult);
    83     for (
int m=0;  m < mult;  m++) {
    87       CkPrintf(
"  k=%g delta=%g n=%d\n", kdelta, delta, n);
   109   Force f1(0,0,0),f2(0,0,0),f3(0,0,0);  
   136   cos_phi = A*B/(rA*rB);
   137   sin_phi = C*B/(rC*rB);
   143   phi= -atan2(sin_phi,cos_phi);
   145   if (fabs(sin_phi) > 0.1)
   150     dcosdA = rA*(cos_phi*A-B);
   151     dcosdB = rB*(cos_phi*B-A);
   158     dsindC = rC*(sin_phi*C-B);
   159     dsindB = rB*(sin_phi*B-C);
   165   for (
int mult_num=0; mult_num<multiplicity; mult_num++)
   176       K = k*(1+cos(n*phi - delta));
   177       K1 = -n*k*sin(n*phi - delta);
   184       else if (diff > 
PI)       diff -= 
TWOPI;
   197     if (fabs(sin_phi) > 0.1)
   202       f1.x += K1*(r23.
y*dcosdA.
z - r23.
z*dcosdA.
y);
   203       f1.y += K1*(r23.
z*dcosdA.
x - r23.
x*dcosdA.
z);
   204       f1.z += K1*(r23.
x*dcosdA.
y - r23.
y*dcosdA.
x);
   206       f3.x += K1*(r23.
z*dcosdB.
y - r23.
y*dcosdB.
z);
   207       f3.y += K1*(r23.
x*dcosdB.
z - r23.
z*dcosdB.
x);
   208       f3.z += K1*(r23.
y*dcosdB.
x - r23.
x*dcosdB.
y);
   210       f2.x += K1*(r12.
z*dcosdA.
y - r12.
y*dcosdA.
z   211                + r34.
y*dcosdB.
z - r34.
z*dcosdB.
y);
   212       f2.y += K1*(r12.
x*dcosdA.
z - r12.
z*dcosdA.
x   213                + r34.
z*dcosdB.
x - r34.
x*dcosdB.
z);
   214       f2.z += K1*(r12.
y*dcosdA.
x - r12.
x*dcosdA.
y   215              + r34.
x*dcosdB.
y - r34.
y*dcosdB.
x);
   223       f1.x += K1*((r23.
y*r23.
y + r23.
z*r23.
z)*dsindC.
x   224                 - r23.
x*r23.
y*dsindC.
y   225                 - r23.
x*r23.
z*dsindC.
z);
   226       f1.y += K1*((r23.
z*r23.
z + r23.
x*r23.
x)*dsindC.
y   227                 - r23.
y*r23.
z*dsindC.
z   228                 - r23.
y*r23.
x*dsindC.
x);
   229       f1.z += K1*((r23.
x*r23.
x + r23.
y*r23.
y)*dsindC.
z   230                 - r23.
z*r23.
x*dsindC.
x   231                 - r23.
z*r23.
y*dsindC.
y);
   233       f3 += cross(K1,dsindB,r23);
   235       f2.x += K1*(-(r23.
y*r12.
y + r23.
z*r12.
z)*dsindC.
x   236              +(2.0*r23.
x*r12.
y - r12.
x*r23.
y)*dsindC.
y   237              +(2.0*r23.
x*r12.
z - r12.
x*r23.
z)*dsindC.
z   238              +dsindB.
z*r34.
y - dsindB.
y*r34.
z);
   239       f2.y += K1*(-(r23.
z*r12.
z + r23.
x*r12.
x)*dsindC.
y   240              +(2.0*r23.
y*r12.
z - r12.
y*r23.
z)*dsindC.
z   241              +(2.0*r23.
y*r12.
x - r12.
y*r23.
x)*dsindC.
x   242              +dsindB.
x*r34.
z - dsindB.
z*r34.
x);
   243       f2.z += K1*(-(r23.
x*r12.
x + r23.
y*r12.
y)*dsindC.
z   244              +(2.0*r23.
z*r12.
x - r12.
z*r23.
x)*dsindC.
x   245              +(2.0*r23.
z*r12.
y - r12.
z*r23.
y)*dsindC.
y   246              +dsindB.
y*r34.
x - dsindB.
x*r34.
y);
   258       energy *= bond_lambda_1;
   267       energy *= bond_lambda_2;
   282   DebugM(3, 
"::computeForce() -- ending with delta energy " << energy << std::endl);
   284   reduction[virialIndex_XX] += ( f1.x * r12.
x + f2.x * r23.
x + f3.x * r34.
x );
   285   reduction[virialIndex_XY] += ( f1.x * r12.
y + f2.x * r23.
y + f3.x * r34.
y );
   286   reduction[virialIndex_XZ] += ( f1.x * r12.
z + f2.x * r23.
z + f3.x * r34.
z );
   287   reduction[virialIndex_YX] += ( f1.y * r12.
x + f2.y * r23.
x + f3.y * r34.
x );
   288   reduction[virialIndex_YY] += ( f1.y * r12.
y + f2.y * r23.
y + f3.y * r34.
y );
   289   reduction[virialIndex_YZ] += ( f1.y * r12.
z + f2.y * r23.
z + f3.y * r34.
z );
   290   reduction[virialIndex_ZX] += ( f1.z * r12.
x + f2.z * r23.
x + f3.z * r34.
x );
   291   reduction[virialIndex_ZY] += ( f1.z * r12.
y + f2.z * r23.
y + f3.z * r34.
y );
   292   reduction[virialIndex_ZZ] += ( f1.z * r12.
z + f2.z * r23.
z + f3.z * r34.
z );
   294   if (pressureProfileData) {
   314                 f1.x * r12.
x, f1.y * r12.
y, f1.z * r12.
z,
   315                 pressureProfileData);
   318                 f2.x * r23.
x, f2.y * r23.
y, f2.z * r23.
z,
   319                 pressureProfileData);
   322                 f3.x * r34.
x, f3.y * r34.
y, f3.z * r34.
z,
   323                 pressureProfileData);
 
static int pressureProfileAtomTypes
 
const ImproperValue * value
 
void pp_reduction(int nslabs, int n1, int n2, int atype1, int atype2, int numtypes, BigReal vxx, BigReal vyy, BigReal vzz, BigReal *reduction)
 
SimParameters * simParameters
 
Molecule stores the structural information for the system. 
 
static BigReal pressureProfileMin
 
void pp_clamp(int &n, int nslabs)
 
static int pressureProfileSlabs
 
NAMD_HOST_DEVICE BigReal length(void) const
 
int get_fep_bonded_type(const int *atomID, unsigned int order) const
 
FourBodyConsts values[MAX_MULTIPLICITY]
 
static BigReal pressureProfileThickness
 
NAMD_HOST_DEVICE Vector delta(const Position &pos1, const Position &pos2) const