Merge branch release-2018
authorMark Abraham <mark.j.abraham@gmail.com>
Tue, 6 Mar 2018 14:07:45 +0000 (15:07 +0100)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 6 Mar 2018 14:14:39 +0000 (15:14 +0100)
Minor conflicts from separation of multisim from commrec,
and code movement in constraints code.

Change-Id: Id1fea8a7de0726e34eb2d43b2420b4753631f303

1  2 
src/gromacs/awh/awh.cpp
src/gromacs/hardware/cpuinfo.cpp
src/gromacs/hardware/cpuinfo.h
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdlib/shake.cpp
src/gromacs/mdlib/shake.h
src/gromacs/mdlib/tpi.cpp
src/gromacs/utility/binaryinformation.cpp
src/programs/mdrun/runner.cpp

index 6337ab6e71e0e8319a791a49604aae5524577423,b82692e239a1dad8716f93700f7d275dac61a459..8531347a4d95b3a87ecc12f3f642673f40ca129a
@@@ -242,7 -240,7 +242,8 @@@ real Awh::applyBiasForcesAndUpdateBias(
          gmx::ArrayRef<const double> biasForce =
              biasCts.bias.calcForceAndUpdateBias(coordValue,
                                                  &biasPotential, &biasPotentialJump,
 -                                                commRecord_, commRecord_->ms,
++                                                commRecord_,
 +                                                multiSimRecord_,
                                                  t, step, seed_, fplog);
  
          awhPotential += biasPotential;
Simple merge
Simple merge
Simple merge
Simple merge
index 74bfca0c8650166f4444f26faad1b15ff826532b,0000000000000000000000000000000000000000..8d18905310964a51ead0d45aa8b8c66d35e2413d
mode 100644,000000..100644
--- /dev/null
@@@ -1,83 -1,0 +1,83 @@@
-                  real           *lagr,         /* The Lagrange multipliers     */
 +/*
 + * This file is part of the GROMACS molecular simulation package.
 + *
 + * Copyright (c) 2018, 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.
 + *
 + * GROMACS is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU Lesser General Public License
 + * as published by the Free Software Foundation; either version 2.1
 + * of the License, or (at your option) any later version.
 + *
 + * GROMACS is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 + * Lesser General Public License for more details.
 + *
 + * You should have received a copy of the GNU Lesser General Public
 + * License along with GROMACS; if not, see
 + * http://www.gnu.org/licenses, or write to the Free Software Foundation,
 + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 + *
 + * If you want to redistribute modifications to GROMACS, please
 + * consider that scientific software is very special. Version
 + * control is crucial - bugs must be traceable. We will be happy to
 + * consider code for inclusion in the official distribution, but
 + * derived work must not be called official GROMACS. Details are found
 + * in the README & COPYING files - if they are missing, get the
 + * official version at http://www.gromacs.org.
 + *
 + * To help us fund GROMACS development, we humbly ask that you cite
 + * the research papers on the package. Check out http://www.gromacs.org.
 + */
 +
 +#ifndef GMX_MDLIB_SHAKE_H
 +#define GMX_MDLIB_SHAKE_H
 +
 +#include "gromacs/mdlib/constr.h"
 +#include "gromacs/topology/idef.h"
 +
 +struct t_inputrec;
 +
 +/* Abstract type for SHAKE that is defined only in the file that uses it */
 +typedef struct gmx_shakedata *gmx_shakedata_t;
 +
 +gmx_shakedata_t shake_init();
 +/* Initializes and return the SHAKE data structure */
 +
 +gmx_bool bshakef(FILE           *log,          /* Log file                    */
 +                 gmx_shakedata_t shaked,       /* Total number of atoms       */
 +                 real            invmass[],    /* Atomic masses               */
 +                 int             nblocks,      /* The number of shake blocks  */
 +                 int             sblock[],     /* The shake blocks             */
 +                 t_idef         *idef,         /* The interaction def         */
 +                 t_inputrec     *ir,           /* Input record                        */
 +                 rvec            x_s[],        /* Coords before update                */
 +                 rvec            prime[],      /* Output coords               */
 +                 t_nrnb         *nrnb,         /* Performance measure          */
++                 real * const    lagr,         /* The Lagrange multipliers     */
 +                 real            lambda,       /* FEP lambda                   */
 +                 real           *dvdlambda,    /* FEP force                    */
 +                 real            invdt,        /* 1/delta_t                    */
 +                 rvec           *v,            /* Also constrain v if v!=NULL  */
 +                 gmx_bool        bCalcVir,     /* Calculate r x m delta_r      */
 +                 tensor          vir_r_m_dr,   /* sum r x m delta_r            */
 +                 gmx_bool        bDumpOnError, /* Dump debugging stuff on error*/
 +                 int             econq);       /* which type of constraint is occurring */
 +/* Shake all the atoms blockwise. It is assumed that all the constraints
 + * in the idef->shakes field are sorted, to ascending block nr. The
 + * sblock array points into the idef->shakes.iatoms field, with block 0
 + * starting
 + * at sblock[0] and running to ( < ) sblock[1], block n running from
 + * sblock[n] to sblock[n+1]. Array sblock should be large enough.
 + * Return TRUE when OK, FALSE when shake-error
 + */
 +
 +void cshake(const int iatom[], int ncon, int *nnit, int maxnit,
 +            const real dist2[], real xp[], const real rij[], const real m2[], real omega,
 +            const real invmass[], const real tt[], real lagr[], int *nerror);
 +/* Regular iterative shake */
 +
 +#endif
Simple merge
index 67824e3258e4705a9d4c2312dab72175a0124469,ea058f65c702da0d5178639c4f4fa562ca6b24d1..25dbfc2188a39385037b7b6593ba3c15018b2f7d
@@@ -1039,11 -1040,11 +1039,11 @@@ int Mdrunner::mdrunner(
      {
          MPI_Barrier(cr->mpi_comm_mysim);
      }
 -    if (MULTISIM(cr))
 +    if (isMultiSim(ms))
      {
-         if (MASTER(cr))
+         if (SIMMASTER(cr))
          {
 -            MPI_Barrier(cr->ms->mpi_comm_masters);
 +            MPI_Barrier(ms->mpi_comm_masters);
          }
          /* We need another barrier to prevent non-master ranks from contiuing
           * when an error occured in a different simulation.