#include <algorithm>
#include "gromacs/domdec/collect.h"
+#include "gromacs/domdec/dlbtiming.h"
#include "gromacs/domdec/domdec_network.h"
#include "gromacs/domdec/ga2la.h"
#include "gromacs/ewald/pme.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/constraintrange.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/forcerec.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/lincs.h"
#include "gromacs/gmxlib/chargegroup.h"
#include "gromacs/gmxlib/network.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/forcerec.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/vsite.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,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.
/* This file is completely threadsafe - keep it that way! */
#include "gmxpre.h"
+#include "calcvir.h"
+
#include "config.h" /* for GMX_MAX_OPENMP_THREADS */
#include <algorithm>
#include "gromacs/math/vec.h"
#include "gromacs/math/vectypes.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/pbcutil/ishift.h"
#include "gromacs/pbcutil/mshift.h"
}
void calc_vir(int nxf, rvec x[], rvec f[], tensor vir,
- gmx_bool bScrewPBC, matrix box)
+ bool bScrewPBC, matrix box)
{
matrix x_times_f;
--- /dev/null
+/*
+ * 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_CALCVIR_H
+#define GMX_MDLIB_CALCVIR_H
+
+#include "gromacs/math/vectypes.h"
+
+struct t_graph;
+struct t_pbc;
+
+void calc_vir(int nxf, rvec x[], rvec f[], tensor vir,
+ bool bScrewPBC, matrix box);
+/* Calculate virial for nxf atoms, and add it to vir */
+
+void f_calc_vir(int i0, int i1, rvec x[], rvec f[], tensor vir,
+ t_graph *g, rvec shift_vec[]);
+/* Calculate virial taking periodicity into account */
+
+#endif
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/update.h"
+#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
#include "gromacs/listed-forces/listed-forces.h"
#include "gromacs/math/vec.h"
#include "gromacs/math/vecdump.h"
+#include "gromacs/mdlib/force_flags.h"
#include "gromacs/mdlib/forcerec-threading.h"
#include "gromacs/mdlib/mdrun.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdlib/qmmm.h"
+#include "gromacs/mdlib/rf_util.h"
+#include "gromacs/mdlib/wall.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/forceoutput.h"
#include "gromacs/mdtypes/inputrec.h"
#define GMX_MDLIB_FORCE_H
#include "gromacs/domdec/dlbtiming.h"
-#include "gromacs/mdlib/force_flags.h"
-#include "gromacs/mdlib/vsite.h"
-#include "gromacs/mdtypes/fcdata.h"
-#include "gromacs/mdtypes/forcerec.h"
-#include "gromacs/timing/wallcycle.h"
+#include "gromacs/math/paddedvector.h"
+#include "gromacs/math/vectypes.h"
#include "gromacs/utility/arrayref.h"
-struct gmx_device_info_t;
struct gmx_edsam;
-struct gmx_gpu_info_t;
+struct gmx_enerdata_t;
struct gmx_groups_t;
+struct gmx_grppairener_t;
+struct gmx_localtop_t;
struct gmx_multisim_t;
struct gmx_vsite_t;
+struct gmx_wallcycle;
class history_t;
-struct nonbonded_verlet_t;
struct t_blocka;
struct t_commrec;
struct t_fcdata;
+struct t_forcerec;
struct t_graph;
-struct t_grpopts;
+struct t_idef;
struct t_inputrec;
struct t_lambda;
struct t_mdatoms;
struct t_nrnb;
-struct t_pbc;
namespace gmx
{
class ForceWithVirial;
class MDLogger;
-class PhysicalNodeCommunicator;
}
-void calc_vir(int nxf, rvec x[], rvec f[], tensor vir,
- gmx_bool bScrewPBC, matrix box);
-/* Calculate virial for nxf atoms, and add it to vir */
-
-void f_calc_vir(int i0, int i1, rvec x[], rvec f[], tensor vir,
- t_graph *g, rvec shift_vec[]);
-/* Calculate virial taking periodicity into account */
-
-real RF_excl_correction(const t_forcerec *fr,
- const t_graph *g,
- const t_mdatoms *mdatoms,
- const t_blocka *excl,
- bool usingDomainDecomposition,
- rvec x[],
- rvec f[],
- rvec *fshift,
- const t_pbc *pbc,
- real lambda,
- real *dvdlambda);
-/* Calculate the reaction-field energy correction for this node:
- * epsfac q_i q_j (k_rf r_ij^2 - c_rf)
- * and force correction for all excluded pairs, including self pairs.
- */
-
-void calc_rffac(FILE *fplog, int eel, real eps_r, real eps_rf,
- real Rc, real Temp,
- real zsq, matrix box,
- real *krf, real *crf);
-/* Determine the reaction-field constants */
-
-void init_generalized_rf(FILE *fplog,
- const gmx_mtop_t *mtop, const t_inputrec *ir,
- t_forcerec *fr);
-/* Initialize the generalized reaction field parameters */
-
-
-/* In wall.c */
-void make_wall_tables(FILE *fplog,
- const t_inputrec *ir, const char *tabfn,
- const gmx_groups_t *groups,
- t_forcerec *fr);
-
-real do_walls(const t_inputrec *ir,
- t_forcerec *fr,
- matrix box,
- const t_mdatoms *md,
- const rvec x[],
- rvec f[],
- real lambda,
- real Vlj[],
- t_nrnb *nrnb);
-
-gmx_bool can_use_allvsall(const t_inputrec *ir,
- gmx_bool bPrintNote, const t_commrec *cr, FILE *fp);
-/* Returns if we can use all-vs-all loops.
- * If bPrintNote==TRUE, prints a note, if necessary, to stderr
- * and fp (if !=NULL) on the master node.
- */
-
-gmx_bool nbnxn_simd_supported(const gmx::MDLogger &mdlog,
- const t_inputrec *ir);
-/* Return if CPU SIMD support exists for the given inputrec
- * If the return value is FALSE and fplog/cr != NULL, prints a fallback
- * message to fplog/stderr.
- */
-
-gmx_bool uses_simple_tables(int cutoff_scheme,
- nonbonded_verlet_t *nbv,
- int group);
-/* Returns whether simple tables (i.e. not for use with GPUs) are used
- * with the type of kernel indicated.
- */
-
void init_enerdata(int ngener, int n_lambda, gmx_enerdata_t *enerd);
/* Intializes the energy storage struct */
void sum_dhdl(gmx_enerdata_t *enerd, gmx::ArrayRef<const real> lambda, t_lambda *fepvals);
/* Sum the free energy contributions */
-/* Compute the average C6 and C12 params for LJ corrections */
-void set_avcsixtwelve(FILE *fplog, t_forcerec *fr,
- const gmx_mtop_t *mtop);
-
void do_force(FILE *log,
const t_commrec *cr,
const gmx_multisim_t *ms,
const t_inputrec *inputrec,
gmx_int64_t step,
t_nrnb *nrnb,
- gmx_wallcycle_t wcycle,
+ gmx_wallcycle *wcycle,
// TODO top can be const when the group scheme no longer
// builds exclusions during neighbor searching within
// do_force_cutsGROUP.
const t_commrec *cr,
const gmx_multisim_t *ms,
t_nrnb *nrnb,
- gmx_wallcycle_t wcycle,
+ gmx_wallcycle *wcycle,
const t_mdatoms *md,
rvec x[],
history_t *hist,
float *cycles_pme);
/* Call all the force routines */
-void free_gpu_resources(const t_forcerec *fr,
- const gmx::PhysicalNodeCommunicator &physicalNodeCommunicator);
-
#endif
#include "gromacs/mdlib/nbnxn_util.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdlib/qmmm.h"
+#include "gromacs/mdlib/rf_util.h"
#include "gromacs/mdlib/sim_util.h"
+#include "gromacs/mdlib/wall.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/fcdata.h"
#include "gromacs/mdtypes/group.h"
namespace gmx
{
class MDLogger;
+class PhysicalNodeCommunicator;
}
/*! \brief Create a new forcerec structure */
*/
void update_forcerec(t_forcerec *fr, matrix box);
+gmx_bool uses_simple_tables(int cutoff_scheme,
+ nonbonded_verlet_t *nbv,
+ int group);
+/* Returns whether simple tables (i.e. not for use with GPUs) are used
+ * with the type of kernel indicated.
+ */
+
+gmx_bool can_use_allvsall(const t_inputrec *ir,
+ gmx_bool bPrintNote, const t_commrec *cr, FILE *fp);
+/* Returns if we can use all-vs-all loops.
+ * If bPrintNote==TRUE, prints a note, if necessary, to stderr
+ * and fp (if !=NULL) on the master node.
+ */
+
+gmx_bool nbnxn_simd_supported(const gmx::MDLogger &mdlog,
+ const t_inputrec *ir);
+/* Return if CPU SIMD support exists for the given inputrec
+ * If the return value is FALSE and fplog/cr != NULL, prints a fallback
+ * message to fplog/stderr.
+ */
+
+/* Compute the average C6 and C12 params for LJ corrections */
+void set_avcsixtwelve(FILE *fplog, t_forcerec *fr,
+ const gmx_mtop_t *mtop);
+
+void free_gpu_resources(const t_forcerec *fr,
+ const gmx::PhysicalNodeCommunicator &physicalNodeCommunicator);
+
#endif
#include "gromacs/math/functions.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
+#include "gromacs/mdlib/force_flags.h"
#include "gromacs/mdlib/nb_verlet.h"
#include "gromacs/mdlib/nbnxn_consts.h"
#include "gromacs/mdtypes/md_enums.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014,2015,2016,2017,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.
#include "gromacs/math/functions.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/nb_verlet.h"
#include "gromacs/mdlib/nbnxn_consts.h"
+#include "gromacs/mdtypes/interaction_const.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/pbcutil/ishift.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
#include "gromacs/math/vecdump.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/nsgrid.h"
#include "gromacs/mdlib/qmmm.h"
#include "gromacs/mdtypes/commrec.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2017,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.
#include "gromacs/gmxlib/nrnb.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdlib/qmmm.h"
#include "gromacs/mdtypes/commrec.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2017,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.
#include "gromacs/gmxlib/nrnb.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdlib/qmmm.h"
#include "gromacs/mdtypes/md_enums.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2017,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.
#include "gromacs/gmxlib/nrnb.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdlib/qmmm.h"
+#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/math/functions.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdtypes/commrec.h"
+#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
*/
#include "gmxpre.h"
+#include "rf_util.h"
+
#include <cmath>
#include "gromacs/math/functions.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
+#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
--- /dev/null
+/*
+ * 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_RF_UTIL_H
+#define GMX_MDLIB_RF_UTIL_H
+
+#include <cstdio>
+
+#include "gromacs/math/vectypes.h"
+#include "gromacs/utility/real.h"
+
+struct gmx_mtop_t;
+struct t_blocka;
+struct t_forcerec;
+struct t_graph;
+struct t_inputrec;
+struct t_mdatoms;
+struct t_pbc;
+
+real RF_excl_correction(const t_forcerec *fr,
+ const t_graph *g,
+ const t_mdatoms *mdatoms,
+ const t_blocka *excl,
+ bool usingDomainDecomposition,
+ rvec x[],
+ rvec f[],
+ rvec *fshift,
+ const t_pbc *pbc,
+ real lambda,
+ real *dvdlambda);
+/* Calculate the reaction-field energy correction for this node:
+ * epsfac q_i q_j (k_rf r_ij^2 - c_rf)
+ * and force correction for all excluded pairs, including self pairs.
+ */
+
+void calc_rffac(FILE *fplog, int eel, real eps_r, real eps_rf,
+ real Rc, real Temp,
+ real zsq, matrix box,
+ real *krf, real *crf);
+/* Determine the reaction-field constants */
+
+void init_generalized_rf(FILE *fplog,
+ const gmx_mtop_t *mtop, const t_inputrec *ir,
+ t_forcerec *fr);
+/* Initialize the generalized reaction field parameters */
+
+
+#endif
#include "gromacs/math/vecdump.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/force.h"
+#include "gromacs/mdlib/force_flags.h"
#include "gromacs/mdlib/mdrun.h"
#include "gromacs/mdlib/sim_util.h"
#include "gromacs/mdlib/vsite.h"
#include "gromacs/math/vec.h"
#include "gromacs/math/vecdump.h"
#include "gromacs/mdlib/calcmu.h"
+#include "gromacs/mdlib/calcvir.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/forcerec.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/constr.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/md_support.h"
#include "gromacs/mdlib/mdrun.h"
#include "gromacs/mdlib/rbin.h"
#include "gromacs/math/vec.h"
#include "gromacs/math/vecdump.h"
#include "gromacs/mdlib/constr.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/mdrun.h"
#include "gromacs/mdlib/sim_util.h"
#include "gmxpre.h"
+#include "wall.h"
+
#include <string.h>
#include <algorithm>
#include "gromacs/gmxlib/nrnb.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
--- /dev/null
+/*
+ * 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_WALLS_H
+#define GMX_MDLIB_WALLS_H
+
+#include <cstdio>
+
+#include "gromacs/math/vectypes.h"
+
+struct gmx_groups_t;
+struct t_forcerec;
+struct t_idef;
+struct t_inputrec;
+struct t_mdatoms;
+struct t_nrnb;
+
+void make_wall_tables(FILE *fplog,
+ const t_inputrec *ir, const char *tabfn,
+ const gmx_groups_t *groups,
+ t_forcerec *fr);
+
+real do_walls(const t_inputrec *ir,
+ t_forcerec *fr,
+ matrix box,
+ const t_mdatoms *md,
+ const rvec x[],
+ rvec f[],
+ real lambda,
+ real Vlj[],
+ t_nrnb *nrnb);
+
+#endif
#include "gromacs/domdec/domdec_struct.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/gmxlib/nrnb.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/ns.h"
#include "gromacs/mdtypes/commrec.h"
+#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/nblist.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/mdlib/calc_verletbuf.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/deform.h"
-#include "gromacs/mdlib/force.h"
#include "gromacs/mdlib/forcerec.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/main.h"
#include "gromacs/mdrunutility/mdmodules.h"
#include "gromacs/mdrunutility/threadaffinity.h"
#include "gromacs/mdtypes/commrec.h"
+#include "gromacs/mdtypes/fcdata.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/observableshistory.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/force.h"
+#include "gromacs/mdlib/force_flags.h"
#include "gromacs/mdlib/mdatoms.h"
#include "gromacs/mdlib/mdebin.h"
#include "gromacs/mdlib/mdrun.h"