#include "gromacs/legacyheaders/genborn.h"
-#include <math.h>
#include <string.h>
+#include <cmath>
+
+#include <algorithm>
+
#include "gromacs/domdec/domdec.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/legacyheaders/names.h"
gmx_genborn_t *born, int natoms)
{
- int i, j, i1, i2, k, m, nbond, nang, ia, ib, ic, id, nb, idx, idx2, at;
- int iam, ibm;
- int at0, at1;
- real length, angle;
- real r, ri, rj, ri2, ri3, rj2, r2, r3, r4, rk, ratio, term, h, doffset;
- real p1, p2, p3, factor, cosine, rab, rbc;
+ int i, j, m, ia, ib;
+ real r, ri, rj, ri2, rj2, r3, r4, ratio, term, h, doffset;
real *vsol;
real *gp;
snew(gp, natoms);
snew(born->gpol_still_work, natoms+3);
- at0 = 0;
- at1 = natoms;
-
doffset = born->gb_doffset;
for (i = 0; i < natoms; i++)
rj = atype->gb_radius[atoms->atom[ib].type];
ri2 = ri*ri;
- ri3 = ri2*ri;
rj2 = rj*rj;
ratio = (rj2-ri2-r*r)/(2*ri*r);
t_forcerec *fr, const t_inputrec *ir,
const gmx_mtop_t *mtop, int gb_algorithm)
{
- int i, j, m, ai, aj, jj, natoms, nalloc;
- real rai, sk, p, doffset;
+ int i, jj, natoms;
+ real rai, sk, doffset;
t_atoms atoms;
gmx_genborn_t *born;
rvec x[], t_nblist *nl,
gmx_genborn_t *born, t_mdatoms *md)
{
- int i, k, n, nj0, nj1, ai, aj, type;
+ int i, k, n, nj0, nj1, ai, aj;
int shift;
real shX, shY, shZ;
- real gpi, dr, dr2, dr4, idr4, rvdw, ratio, ccf, theta, term, rai, raj;
+ real gpi, dr2, idr4, rvdw, ratio, ccf, theta, term, rai, raj;
real ix1, iy1, iz1, jx1, jy1, jz1, dx11, dy11, dz11;
real rinv, idr2, idr6, vaj, dccf, cosq, sinq, prod, gpi2;
real factor;
rvec x[], t_nblist *nl,
gmx_genborn_t *born, t_mdatoms *md)
{
- int i, k, n, ai, aj, nj0, nj1, at0, at1;
+ int i, k, n, ai, aj, nj0, nj1;
int shift;
real shX, shY, shZ;
- real rai, raj, gpi, dr2, dr, sk, sk_ai, sk2, sk2_ai, lij, uij, diff2, tmp, sum_ai;
+ real rai, raj, dr2, dr, sk, sk_ai, sk2, sk2_ai, lij, uij, diff2, tmp, sum_ai;
real rad, min_rad, rinv, rai_inv;
real ix1, iy1, iz1, jx1, jy1, jz1, dx11, dy11, dz11;
real lij2, uij2, lij3, uij3, t1, t2, t3;
- real lij_inv, dlij, duij, sk2_rinv, prod, log_term;
+ real lij_inv, dlij, sk2_rinv, prod, log_term;
real doffset, raj_inv, dadx_val;
real *gb_radius;
/* Keep the compiler happy */
n = 0;
- prod = 0;
for (i = 0; i < nl->nri; i++)
{
sk2_rinv = sk2*rinv;
prod = 0.25*sk2_rinv;
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term +
prod*(-diff2);
/* log_term = table_log(uij*lij_inv,born->log_table,
LOG_TABLE_ACCURACY); */
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term +
prod*(-diff2);
min_rad = rai + doffset;
rad = 1.0/sum_ai;
- born->bRad[i] = rad > min_rad ? rad : min_rad;
+ born->bRad[i] = std::max(rad, min_rad);
fr->invsqrta[i] = gmx_invsqrt(born->bRad[i]);
}
}
calc_gb_rad_obc(t_commrec *cr, t_forcerec *fr, gmx_localtop_t *top,
rvec x[], t_nblist *nl, gmx_genborn_t *born, t_mdatoms *md)
{
- int i, k, ai, aj, nj0, nj1, n, at0, at1;
+ int i, k, ai, aj, nj0, nj1, n;
int shift;
real shX, shY, shZ;
- real rai, raj, gpi, dr2, dr, sk, sk2, lij, uij, diff2, tmp, sum_ai;
- real rad, min_rad, sum_ai2, sum_ai3, tsum, tchain, rinv, rai_inv, lij_inv, rai_inv2;
+ real rai, raj, dr2, dr, sk, sk2, lij, uij, diff2, tmp, sum_ai;
+ real sum_ai2, sum_ai3, tsum, tchain, rinv, rai_inv, lij_inv, rai_inv2;
real log_term, prod, sk2_rinv, sk_ai, sk2_ai;
real ix1, iy1, iz1, jx1, jy1, jz1, dx11, dy11, dz11;
- real lij2, uij2, lij3, uij3, dlij, duij, t1, t2, t3;
+ real lij2, uij2, lij3, uij3, dlij, t1, t2, t3;
real doffset, raj_inv, dadx_val;
real *gb_radius;
/* Keep the compiler happy */
n = 0;
- prod = 0;
- raj = 0;
doffset = born->gb_doffset;
gb_radius = born->gb_radius;
sk2_rinv = sk2*rinv;
prod = 0.25*sk2_rinv;
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
prod = 0.25 * sk2_rinv;
/* log_term = table_log(uij*lij_inv,born->log_table,LOG_TABLE_ACCURACY); */
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
int calc_gb_rad(t_commrec *cr, t_forcerec *fr, t_inputrec *ir, gmx_localtop_t *top,
rvec x[], t_nblist *nl, gmx_genborn_t *born, t_mdatoms *md, t_nrnb *nrnb)
{
- real *p;
int cnt;
int ndadx;
real *invsqrta, real *dvda, real *GBtab, t_idef *idef, real epsilon_r,
real gb_epsilon_solvent, real facel, const t_pbc *pbc, const t_graph *graph)
{
- int i, j, n0, m, nnn, type, ai, aj;
+ int i, j, n0, m, nnn, ai, aj;
int ki;
real isai, isaj;
real r, rsq11;
real rinv11, iq;
real isaprod, qq, gbscale, gbtabscale, Y, F, Geps, Heps2, Fp, VV, FF, rt, eps, eps2;
- real vgb, fgb, vcoul, fijC, dvdatmp, fscal, dvdaj;
+ real vgb, fgb, fijC, dvdatmp, fscal;
real vctot;
rvec dx;
gbscale = isaprod*gbtabscale;
r = rsq11*rinv11;
rt = r*gbscale;
- n0 = rt;
+ n0 = static_cast<int>(rt);
eps = rt-n0;
eps2 = eps*eps;
nnn = 4*n0;
real *dvda, t_mdatoms *md)
{
int ai, i, at0, at1;
- real e, es, rai, rbi, term, probe, tmp, factor;
+ real e, es, rai, term, probe, tmp, factor;
real rbi_inv, rbi_inv2;
- /* To keep the compiler happy */
- factor = 0;
-
if (DOMAINDECOMP(cr))
{
at0 = 0;
/* factor is the surface tension */
factor = born->sa_surface_tension;
- /*
-
- // The surface tension factor is 0.0049 for Still model, 0.0054 for HCT/OBC
- if(gb_algorithm==egbSTILL)
- {
- factor=0.0049*100*CAL2JOULE;
- }
- else
- {
- factor=0.0054*100*CAL2JOULE;
- }
- */
- /* if(gb_algorithm==egbHCT || gb_algorithm==egbOBC) */
es = 0;
probe = 0.14;
int i, k, n, ai, aj, nj0, nj1, n0, n1;
int shift;
real shX, shY, shZ;
- real fgb, fij, rb2, rbi, fix1, fiy1, fiz1;
- real ix1, iy1, iz1, jx1, jy1, jz1, dx11, dy11, dz11, rsq11;
- real rinv11, tx, ty, tz, rbai, rbaj, fgb_ai;
+ real fgb, rbi, fix1, fiy1, fiz1;
+ real ix1, iy1, iz1, jx1, jy1, jz1, dx11, dy11, dz11;
+ real tx, ty, tz, rbai, rbaj, fgb_ai;
real *rb;
- volatile int idx;
n = 0;
rb = born->work;
rvec x[], rvec f[], t_forcerec *fr, t_idef *idef, int gb_algorithm, int sa_algorithm, t_nrnb *nrnb,
const t_pbc *pbc, const t_graph *graph, gmx_enerdata_t *enerd)
{
- real v = 0;
int cnt;
- int i;
/* PBC or not? */
const t_pbc *pbc_null;
gmx_bool bMolPBC, t_pbc *pbc, t_graph *g, rvec *x,
struct gbtmpnbls *nls)
{
- int ind, j, ai, aj, shift, found;
+ int ind, j, ai, aj, found;
rvec dx;
ivec dt;
gbtmpnbl_t *list;
- shift = CENTRAL;
for (ind = 0; ind < il->nr; ind += 3)
{
ai = il->iatoms[ind+1];
aj = il->iatoms[ind+2];
- shift = CENTRAL;
+ int shift = CENTRAL;
if (g != NULL)
{
rvec_sub(x[ai], x[aj], dx);
rvec x[], matrix box,
t_forcerec *fr, t_idef *idef, t_graph *graph, gmx_genborn_t *born)
{
- int i, l, ii, j, k, n, nj0, nj1, ai, aj, at0, at1, found, shift, s;
- int apa;
+ int i, j, k, n, nj0, nj1, ai, shift, s;
t_nblist *nblist;
t_pbc pbc;
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2009, The GROMACS Development Team.
- * Copyright (c) 2010,2014, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
#include "genborn_allvsall.h"
-#include <math.h>
+#include <cmath>
+
+#include <algorithm>
#include "gromacs/legacyheaders/genborn.h"
#include "gromacs/legacyheaders/network.h"
gmx_bool bInclude13,
gmx_bool bInclude14)
{
- int i, j, k, tp;
+ int i, j, k;
int a1, a2;
- int nj0, nj1;
int max_offset;
int max_excl_offset;
- int nj;
/* This routine can appear to be a bit complex, but it is mostly book-keeping.
* To enable the fast all-vs-all kernel we need to be able to stream through all coordinates
}
if (k > 0 && k <= max_offset)
{
- max_excl_offset = (k > max_excl_offset) ? k : max_excl_offset;
+ max_excl_offset = std::max(k, max_excl_offset);
}
}
}
}
if (k > 0 && k <= max_offset)
{
- max_excl_offset = (k > max_excl_offset) ? k : max_excl_offset;
+ max_excl_offset = std::max(k, max_excl_offset);
}
}
}
}
if (k > 0 && k <= max_offset)
{
- max_excl_offset = (k > max_excl_offset) ? k : max_excl_offset;
+ max_excl_offset = std::max(k, max_excl_offset);
}
}
}
- max_excl_offset = (max_offset < max_excl_offset) ? max_offset : max_excl_offset;
+ max_excl_offset = std::min(max_offset, max_excl_offset);
aadata->jindex_gb[3*i+1] = i+1+max_excl_offset;
gmx_bool bInclude13,
gmx_bool bInclude14)
{
- int i, j, idx;
gmx_allvsallgb2_data_t *aadata;
- real *p;
snew(aadata, 1);
*p_aadata = aadata;
ni1 = mdatoms->homenr;
n = 0;
- prod = 0;
- raj = 0;
doffset = born->gb_doffset;
aadata = *((gmx_allvsallgb2_data_t **)work);
sk2_rinv = sk2*rinv;
prod = 0.25*sk2_rinv;
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
/* log_term = table_log(uij*lij_inv,born->log_table,LOG_TABLE_ACCURACY); */
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
prod = 0.25 * sk2_rinv;
/* log_term = table_log(uij*lij_inv,born->log_table,LOG_TABLE_ACCURACY); */
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
sk2_rinv = sk2*rinv;
prod = 0.25*sk2_rinv;
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
/* log_term = table_log(uij*lij_inv,born->log_table,LOG_TABLE_ACCURACY); */
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
prod = 0.25 * sk2_rinv;
/* log_term = table_log(uij*lij_inv,born->log_table,LOG_TABLE_ACCURACY); */
- log_term = log(uij*lij_inv);
+ log_term = std::log(uij*lij_inv);
tmp = lij-uij + 0.25*dr*diff2 + (0.5*rinv)*log_term + prod*(-diff2);
min_rad = rai + born->gb_doffset;
rad = 1.0/sum_ai;
- born->bRad[i] = rad > min_rad ? rad : min_rad;
+ born->bRad[i] = std::max(rad, min_rad);
fr->invsqrta[i] = gmx_invsqrt(born->bRad[i]);
}
}