From: David van der Spoel Date: Tue, 31 Jan 2012 15:39:34 +0000 (+0100) Subject: Changed order of parameters in top file X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=d65369706284eb206331490b0687acac7bbe5f39;p=alexxy%2Fgromacs.git Changed order of parameters in top file For linear angles. Now the distance parameter comes first, and then the force constant, like in other bonded potentials. In addition, the angle defined by the same atom types but with the opposite order of atoms now gets a modified constant (1-a). Change-Id: I6db408be01b0cbb795edaa9943b72dbe149e3f97 --- diff --git a/src/kernel/convparm.c b/src/kernel/convparm.c index 1898c24945..bc161b5d8c 100644 --- a/src/kernel/convparm.c +++ b/src/kernel/convparm.c @@ -160,10 +160,10 @@ static void assign_param(t_functype ftype,t_iparams *newparam, newparam->qangle.c[i]=old[i+1]; break; case F_LINEAR_ANGLES: - newparam->linangle.klinA = old[0]; - newparam->linangle.aA = old[1]; - newparam->linangle.klinB = old[2]; - newparam->linangle.aB = old[3]; + newparam->linangle.aA = old[0]; + newparam->linangle.klinA = old[1]; + newparam->linangle.aB = old[2]; + newparam->linangle.klinB = old[3]; break; case F_ANGLES: case F_BONDS: diff --git a/src/kernel/toppush.c b/src/kernel/toppush.c index c5192aaee8..eabb245ce4 100644 --- a/src/kernel/toppush.c +++ b/src/kernel/toppush.c @@ -547,7 +547,17 @@ static void push_bondtype(t_params * bt, memcpy(bt->param[bt->nr].c, b->c,sizeof(b->c)); memcpy(bt->param[bt->nr].a, b->a,sizeof(b->a)); memcpy(bt->param[bt->nr+1].c,b->c,sizeof(b->c)); - + + /* The definitions of linear angles depend on the order of atoms, + * that means that for atoms i-j-k, with certain parameter a, the + * corresponding k-j-i angle will have parameter 1-a. + */ + if (ftype == F_LINEAR_ANGLES) + { + bt->param[bt->nr+1].c[0] = 1-bt->param[bt->nr+1].c[0]; + bt->param[bt->nr+1].c[2] = 1-bt->param[bt->nr+1].c[2]; + } + for (j=0; (j < nral); j++) { bt->param[bt->nr+1].a[j] = b->a[nral-1-j];