#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/gmxfio-xdr.h"
#include "gromacs/legacyheaders/copyrite.h"
+#include "gromacs/legacyheaders/inputrec.h"
#include "gromacs/legacyheaders/names.h"
#include "gromacs/legacyheaders/typedefs.h"
#include "gromacs/legacyheaders/types/ifunc.h"
#include "gromacs/fileio/xvgr.h"
#include "gromacs/gmxana/gmx_ana.h"
#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/legacyheaders/types/enums.h"
#include "gromacs/linearalgebra/nrjac.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
#include "gromacs/legacyheaders/inputrec.h"
+#include <cstring>
+
#include <algorithm>
#include "gromacs/legacyheaders/typedefs.h"
#include "gromacs/utility/fatalerror.h"
-
+#include "gromacs/utility/smalloc.h"
/* The minimum number of integration steps required for reasonably accurate
* integration of first and second order coupling algorithms.
{
return (ir_vdw_is_zero_at_cutoff(ir) || ir->vdwtype == evdwUSER);
}
+
+void init_inputrec(t_inputrec *ir)
+{
+ std::memset(ir, 0, sizeof(*ir));
+ snew(ir->fepvals, 1);
+ snew(ir->expandedvals, 1);
+ snew(ir->simtempvals, 1);
+}
+
+static void done_pull_group(t_pull_group *pgrp)
+{
+ if (pgrp->nat > 0)
+ {
+ sfree(pgrp->ind);
+ sfree(pgrp->weight);
+ }
+}
+
+static void done_pull_params(pull_params_t *pull)
+{
+ int i;
+
+ for (i = 0; i < pull->ngroup+1; i++)
+ {
+ done_pull_group(pull->group);
+ }
+
+ sfree(pull->group);
+ sfree(pull->coord);
+}
+
+void done_inputrec(t_inputrec *ir)
+{
+ int m;
+
+ for (m = 0; (m < DIM); m++)
+ {
+ if (ir->ex[m].a)
+ {
+ sfree(ir->ex[m].a);
+ }
+ if (ir->ex[m].phi)
+ {
+ sfree(ir->ex[m].phi);
+ }
+ if (ir->et[m].a)
+ {
+ sfree(ir->et[m].a);
+ }
+ if (ir->et[m].phi)
+ {
+ sfree(ir->et[m].phi);
+ }
+ }
+
+ sfree(ir->opts.nrdf);
+ sfree(ir->opts.ref_t);
+ sfree(ir->opts.annealing);
+ sfree(ir->opts.anneal_npoints);
+ sfree(ir->opts.anneal_time);
+ sfree(ir->opts.anneal_temp);
+ sfree(ir->opts.tau_t);
+ sfree(ir->opts.acc);
+ sfree(ir->opts.nFreeze);
+ sfree(ir->opts.QMmethod);
+ sfree(ir->opts.QMbasis);
+ sfree(ir->opts.QMcharge);
+ sfree(ir->opts.QMmult);
+ sfree(ir->opts.bSH);
+ sfree(ir->opts.CASorbitals);
+ sfree(ir->opts.CASelectrons);
+ sfree(ir->opts.SAon);
+ sfree(ir->opts.SAoff);
+ sfree(ir->opts.SAsteps);
+ sfree(ir->opts.bOPT);
+ sfree(ir->opts.bTS);
+
+ if (ir->pull)
+ {
+ done_pull_params(ir->pull);
+ sfree(ir->pull);
+ }
+}
return i;
}
-void init_inputrec(t_inputrec *ir)
-{
- std::memset(ir, 0, sizeof(*ir));
- snew(ir->fepvals, 1);
- snew(ir->expandedvals, 1);
- snew(ir->simtempvals, 1);
-}
-
-static void done_pull_group(t_pull_group *pgrp)
-{
- if (pgrp->nat > 0)
- {
- sfree(pgrp->ind);
- sfree(pgrp->weight);
- }
-}
-
-static void done_pull_params(pull_params_t *pull)
-{
- int i;
-
- for (i = 0; i < pull->ngroup+1; i++)
- {
- done_pull_group(pull->group);
- }
-
- sfree(pull->group);
- sfree(pull->coord);
-}
-
-void done_inputrec(t_inputrec *ir)
-{
- int m;
-
- for (m = 0; (m < DIM); m++)
- {
- if (ir->ex[m].a)
- {
- sfree(ir->ex[m].a);
- }
- if (ir->ex[m].phi)
- {
- sfree(ir->ex[m].phi);
- }
- if (ir->et[m].a)
- {
- sfree(ir->et[m].a);
- }
- if (ir->et[m].phi)
- {
- sfree(ir->et[m].phi);
- }
- }
-
- sfree(ir->opts.nrdf);
- sfree(ir->opts.ref_t);
- sfree(ir->opts.annealing);
- sfree(ir->opts.anneal_npoints);
- sfree(ir->opts.anneal_time);
- sfree(ir->opts.anneal_temp);
- sfree(ir->opts.tau_t);
- sfree(ir->opts.acc);
- sfree(ir->opts.nFreeze);
- sfree(ir->opts.QMmethod);
- sfree(ir->opts.QMbasis);
- sfree(ir->opts.QMcharge);
- sfree(ir->opts.QMmult);
- sfree(ir->opts.bSH);
- sfree(ir->opts.CASorbitals);
- sfree(ir->opts.CASelectrons);
- sfree(ir->opts.SAon);
- sfree(ir->opts.SAoff);
- sfree(ir->opts.SAsteps);
- sfree(ir->opts.bOPT);
- sfree(ir->opts.bTS);
-
- if (ir->pull)
- {
- done_pull_params(ir->pull);
- sfree(ir->pull);
- }
-}
-
static void zero_history(history_t *hist)
{
hist->disre_initf = 0;
#include "gromacs/gmxpreprocess/readir.h"
#include "gromacs/legacyheaders/names.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/gmxpreprocess/grompp-impl.h"
#include "gromacs/legacyheaders/typedefs.h"
+struct pull_params_t;
+struct t_adress;
+struct t_grpopts;
+struct t_rot;
+
enum {
eshNONE, eshHBONDS, eshALLBONDS, eshHANGLES, eshALLANGLES, eshNR
};
#include "gromacs/legacyheaders/names.h"
#include "gromacs/legacyheaders/network.h"
#include "gromacs/legacyheaders/sim_util.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/groupcoord.h"
#include "gromacs/pbcutil/pbc.h"
*
* Contains private IMD data
*/
-typedef struct gmx_IMD
+typedef struct t_gmx_IMD
{
FILE *outf; /**< Output file for IMD data, mainly forces. */
#endif
/* GROMACS specific functions for the IMD implementation */
-
-extern void write_IMDgroup_to_file(gmx_bool bIMD, t_inputrec *ir, t_state *state,
- gmx_mtop_t *sys, int nfile, const t_filenm fnm[])
+void write_IMDgroup_to_file(gmx_bool bIMD, t_inputrec *ir, t_state *state,
+ gmx_mtop_t *sys, int nfile, const t_filenm fnm[])
{
t_atoms IMDatoms;
}
-extern void dd_make_local_IMD_atoms(gmx_bool bIMD, gmx_domdec_t *dd, t_IMD *imd)
+void dd_make_local_IMD_atoms(gmx_bool bIMD, gmx_domdec_t *dd, t_IMD *imd)
{
gmx_ga2la_t ga2la;
t_gmx_IMD_setup *IMDsetup;
#endif
-extern void IMD_finalize(gmx_bool bIMD, t_IMD *imd)
+void IMD_finalize(gmx_bool bIMD, t_IMD *imd)
{
if (bIMD)
{
}
}
-
-extern void init_IMD(
- t_inputrec *ir,
- t_commrec *cr,
- gmx_mtop_t *top_global,
- FILE *fplog,
- int defnstimd,
- rvec x[],
- int nfile,
- const t_filenm fnm[],
- output_env_t oenv,
- int imdport,
- unsigned long Flags)
+void init_IMD(t_inputrec *ir,
+ t_commrec *cr,
+ gmx_mtop_t *top_global,
+ FILE *fplog,
+ int defnstimd,
+ rvec x[],
+ int nfile,
+ const t_filenm fnm[],
+ output_env_t oenv,
+ int imdport,
+ unsigned long Flags)
{
int i;
int nat_total;
}
-extern gmx_bool do_IMD(
- gmx_bool bIMD,
- gmx_int64_t step,
- t_commrec *cr,
- gmx_bool bNS,
- matrix box,
- rvec x[],
- t_inputrec *ir,
- double t,
- gmx_wallcycle_t wcycle)
+gmx_bool do_IMD(gmx_bool bIMD,
+ gmx_int64_t step,
+ t_commrec *cr,
+ gmx_bool bNS,
+ matrix box,
+ rvec x[],
+ t_inputrec *ir,
+ double t,
+ gmx_wallcycle_t wcycle)
{
gmx_bool imdstep = FALSE;
t_gmx_IMD_setup *IMDsetup;
}
-extern void IMD_fill_energy_record(gmx_bool bIMD, t_IMD *imd, gmx_enerdata_t *enerd,
- gmx_int64_t step, gmx_bool bHaveNewEnergies)
+void IMD_fill_energy_record(gmx_bool bIMD, t_IMD *imd, gmx_enerdata_t *enerd,
+ gmx_int64_t step, gmx_bool bHaveNewEnergies)
{
IMDEnergyBlock *ene;
- t_gmx_IMD IMDsetup;
+ t_gmx_IMD *IMDsetup;
if (bIMD)
}
-extern void IMD_send_positions(t_IMD *imd)
+void IMD_send_positions(t_IMD *imd)
{
#ifdef GMX_IMD
- t_gmx_IMD IMDsetup;
+ t_gmx_IMD *IMDsetup;
IMDsetup = imd->setup;
}
-extern void IMD_prep_energies_send_positions(gmx_bool bIMD, gmx_bool bIMDstep,
- t_IMD *imd, gmx_enerdata_t *enerd,
- gmx_int64_t step, gmx_bool bHaveNewEnergies,
- gmx_wallcycle_t wcycle)
+void IMD_prep_energies_send_positions(gmx_bool bIMD, gmx_bool bIMDstep,
+ t_IMD *imd, gmx_enerdata_t *enerd,
+ gmx_int64_t step, gmx_bool bHaveNewEnergies,
+ gmx_wallcycle_t wcycle)
{
if (bIMD)
{
}
}
-
-extern int IMD_get_step(t_gmx_IMD IMDsetup)
+int IMD_get_step(t_gmx_IMD *IMDsetup)
{
return IMDsetup->nstimd;
}
-
-extern void IMD_apply_forces(gmx_bool bIMD, t_IMD *imd, t_commrec *cr, rvec *f,
- gmx_wallcycle_t wcycle)
+void IMD_apply_forces(gmx_bool bIMD, t_IMD *imd, t_commrec *cr, rvec *f,
+ gmx_wallcycle_t wcycle)
{
int i, j;
int locndx;
struct gmx_domdec_t;
struct gmx_enerdata_t;
struct gmx_mtop_t;
+struct t_gmx_IMD;
+struct t_IMD;
static const char IMDstr[] = "IMD:"; /**< Tag output from the IMD module with this string. */
*
* \returns The current IMD update/communication frequency
*/
-int IMD_get_step(t_gmx_IMD IMDsetup);
+int IMD_get_step(t_gmx_IMD *IMDsetup);
/*! \brief Add external forces from a running interactive molecular dynamics session.
struct t_commrec;
struct t_fcdata;
struct t_graph;
+struct t_grpopts;
+struct t_lambda;
struct t_pbc;
struct gmx_edsam;
/* Determine the reaction-field constants */
void init_generalized_rf(FILE *fplog,
- const gmx_mtop_t *mtop, const t_inputrec *ir,
+ const gmx_mtop_t *mtop, const struct 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 struct t_inputrec *ir, const char *tabfn,
const gmx_groups_t *groups,
t_forcerec *fr);
-real do_walls(t_inputrec *ir, t_forcerec *fr, matrix box, t_mdatoms *md,
+real do_walls(struct t_inputrec *ir, t_forcerec *fr, matrix box, t_mdatoms *md,
rvec x[], rvec f[], real lambda, real Vlj[], t_nrnb *nrnb);
#define GMX_MAKETABLES_FORCEUSER (1<<0)
#define GMX_MAKETABLES_14ONLY (1<<1)
-gmx_bool can_use_allvsall(const t_inputrec *ir,
+gmx_bool can_use_allvsall(const struct t_inputrec *ir,
gmx_bool bPrintNote, struct t_commrec *cr, FILE *fp);
/* Returns if we can use all-vs-all loops.
* If bPrintNote==TRUE, prints a note, if necessary, to stderr
*/
-gmx_bool nbnxn_acceleration_supported(FILE *fplog,
- const struct t_commrec *cr,
- const t_inputrec *ir,
- gmx_bool bGPU);
+gmx_bool nbnxn_acceleration_supported(FILE *fplog,
+ const struct t_commrec *cr,
+ const struct t_inputrec *ir,
+ gmx_bool bGPU);
/* Return if GPU/CPU-SIMD acceleration is supported with the given inputrec
* with bGPU TRUE/FALSE.
* If the return value is FALSE and fplog/cr != NULL, prints a fallback
void sum_epot(gmx_grppairener_t *grpp, real *epot);
/* Locally sum the non-bonded potential energy terms */
-void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, t_lambda *fepvals);
+void sum_dhdl(gmx_enerdata_t *enerd, real *lambda, struct t_lambda *fepvals);
/* Sum the free energy contributions */
/* Compute the average C6 and C12 params for LJ corrections */
const gmx_mtop_t *mtop);
extern void do_force(FILE *log, struct t_commrec *cr,
- t_inputrec *inputrec,
+ struct t_inputrec *inputrec,
gmx_int64_t step, t_nrnb *nrnb, gmx_wallcycle_t wcycle,
gmx_localtop_t *top,
gmx_groups_t *groups,
/* Call the neighborsearcher */
extern void do_force_lowlevel(t_forcerec *fr,
- t_inputrec *ir,
+ struct t_inputrec *ir,
t_idef *idef,
struct t_commrec *cr,
t_nrnb *nrnb,
gmx_genborn_t *born,
gmx_bool bBornRadii,
matrix box,
- t_lambda *fepvals,
+ struct t_lambda *fepvals,
real *lambda,
struct t_graph *graph,
t_blocka *excl,
struct t_commrec;
struct t_forcerec;
struct t_graph;
+struct t_inputrec;
struct t_pbc;
#ifdef __cplusplus
/* Initialise GB stuff */
int init_gb(struct gmx_genborn_t **p_born,
- struct t_forcerec *fr, const t_inputrec *ir,
+ struct t_forcerec *fr, const struct t_inputrec *ir,
const gmx_mtop_t *mtop, int gb_algorithm);
/* Born radii calculations, both with and without SSE acceleration */
-int calc_gb_rad(struct t_commrec *cr, struct t_forcerec *fr, t_inputrec *ir, gmx_localtop_t *top, rvec x[], t_nblist *nl, struct gmx_genborn_t *born, t_mdatoms *md, t_nrnb *nrnb);
+int calc_gb_rad(struct t_commrec *cr, struct t_forcerec *fr, struct t_inputrec *ir, gmx_localtop_t *top, rvec x[], t_nblist *nl, struct gmx_genborn_t *born, t_mdatoms *md, t_nrnb *nrnb);
/*
* This file is part of the GROMACS molecular simulation package.
*
- * 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.
*/
gmx_bool ir_vdw_might_be_zero_at_cutoff(const t_inputrec *ir);
+/*! \brief Initiate input record structure
+ *
+ * Initialiazes all the arrays and pointers to NULL.
+ *
+ * \param[in] ir Inputrec must be pre-allocated
+ */
+void init_inputrec(t_inputrec *ir);
+
+/*! \brief Free memory from input record.
+ *
+ * All arrays and pointers will be freed.
+ *
+ * \param[in] ir The data structure
+ */
+void done_inputrec(t_inputrec *ir);
+
#ifdef __cplusplus
}
#endif
struct gmx_constr;
struct gmx_edsam;
struct gmx_enerdata_t;
+struct t_expanded;
+struct t_lambda;
+struct t_simtemp;
#ifdef __cplusplus
extern "C" {
struct gmx_ekindata_t;
struct t_commrec;
+struct t_grpopts;
#ifdef __cplusplus
extern "C" {
#endif
-void init_ekindata(FILE *log, gmx_mtop_t *mtop, t_grpopts *opts,
+void init_ekindata(FILE *log, gmx_mtop_t *mtop,
+ struct t_grpopts *opts,
struct gmx_ekindata_t *ekind);
/* Allocate memory and set the grpnr array. */
void done_ekindata(struct gmx_ekindata_t *ekind);
/* Free the memory */
-void accumulate_u(struct t_commrec *cr, t_grpopts *opts,
+void accumulate_u(struct t_commrec *cr, struct t_grpopts *opts,
struct gmx_ekindata_t *ekind);
-/*extern void accumulate_ekin(struct t_commrec *cr,t_grpopts *opts,t_groups *grps);*/
/* Communicate subsystem - group velocities and subsystem ekin respectively
* and sum them up. Return them in grps.
*/
-real sum_ekin(t_grpopts *opts, struct gmx_ekindata_t *ekind, real *dekindlambda,
+real sum_ekin(struct t_grpopts *opts, struct gmx_ekindata_t *ekind, real *dekindlambda,
gmx_bool bEkinFullStep, gmx_bool bScaleEkin);
/* Sum the group ekins into total ekin and calc temp per group,
* return total temperature.
*/
void update_ekindata(int start, int homenr, struct gmx_ekindata_t *ekind,
- t_grpopts *opts, rvec v[], t_mdatoms *md, real lambda);
+ struct t_grpopts *opts, rvec v[], t_mdatoms *md, real lambda);
/* Do the update of group velocities (if bNEMD) and
* (partial) group ekin.
*/
/* DEPRECATED! value for signaling unitialized variables */
#define NOTSET -12345
-#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/legacyheaders/types/mdatom.h"
#include "gromacs/legacyheaders/types/nblist.h"
#include "gromacs/legacyheaders/types/nrnb.h"
#include "gromacs/legacyheaders/types/state.h"
#include "gromacs/topology/topology.h"
+struct t_inputrec;
+
#ifdef __cplusplus
extern "C" {
#endif
/* Functions to initiate and delete structures *
* These functions are defined in gmxlib/typedefs.c
*/
-void init_inputrec(t_inputrec *ir);
void init_energyhistory(energyhistory_t * enerhist);
void done_energyhistory(energyhistory_t * enerhist);
void init_gtc_state(t_state *state, int ngtc, int nnhpres, int nhchainlength);
void init_df_history(df_history_t *dfhist, int nlambda);
void done_df_history(df_history_t *dfhist);
void copy_df_history(df_history_t * df_dest, df_history_t *df_source);
-void done_inputrec(t_inputrec *ir);
void done_state(t_state *state);
-void set_box_rel(t_inputrec *ir, t_state *state);
+void set_box_rel(struct t_inputrec *ir, t_state *state);
/* Set state->box_rel used in mdrun to preserve the box shape */
-void preserve_box_shape(t_inputrec *ir, matrix box_rel, matrix b);
+void preserve_box_shape(struct t_inputrec *ir, matrix box_rel, matrix b);
/* Preserve the box shape, b can be box or boxv */
real max_cutoff(real cutoff1, real cutoff2);
#define EGP_EXCL (1<<0)
#define EGP_TABLE (1<<1)
-typedef struct {
+typedef struct t_grpopts {
int ngtc; /* # T-Coupl groups */
int nhchainlength; /* # of nose-hoover chains per group */
int ngacc; /* # Accelerate groups */
real kB; /* force constant for state B */
} t_pull_coord;
-typedef struct {
+typedef struct t_simtemp {
int eSimTempScale; /* simulated temperature scaling; linear or exponential */
real simtemp_low; /* the low temperature for simulated tempering */
real simtemp_high; /* the high temperature for simulated tempering */
real *temperatures; /* the range of temperatures used for simulated tempering */
} t_simtemp;
-typedef struct {
+typedef struct t_lambda {
int nstdhdl; /* The frequency for calculating dhdl */
double init_lambda; /* fractional value of lambda (usually will use
init_fep_state, this will only be for slow growth,
double dh_hist_spacing; /* The spacing for the dH histogram */
} t_lambda;
-typedef struct {
+typedef struct t_expanded {
int nstexpanded; /* The frequency of expanded ensemble state changes */
int elamstats; /* which type of move updating do we use for lambda monte carlo (or no for none) */
int elmcmove; /* what move set will be we using for state space moves */
real *init_lambda_weights; /* user-specified initial weights to start with */
} t_expanded;
-typedef struct {
+typedef struct pull_params_t {
int ngroup; /* number of pull groups */
int ncoord; /* number of pull coordinates */
real cylinder_r; /* radius of cylinder for dynamic COM */
gmx_enfrotgrp_t enfrotgrp; /* Stores non-inputrec rotation data per group */
} t_rotgrp;
-typedef struct {
+typedef struct t_rot {
int ngrp; /* Number of rotation groups */
int nstrout; /* Output frequency for main rotation outfile */
int nstsout; /* Output frequency for per-slab data */
} t_rot;
/* Abstract type for IMD only defined in IMD.c */
-typedef struct gmx_IMD *t_gmx_IMD;
+struct t_gmx_IMD;
-typedef struct {
- int nat; /* Number of interactive atoms */
- atom_id *ind; /* The global indices of the interactive atoms */
- t_gmx_IMD setup; /* Stores non-inputrec IMD data */
+typedef struct t_IMD {
+ int nat; /* Number of interactive atoms */
+ atom_id *ind; /* The global indices of the interactive atoms */
+ struct t_gmx_IMD *setup; /* Stores non-inputrec IMD data */
} t_IMD;
/* Abstract types for position swapping only defined in swapcoords.c */
typedef struct t_swap *gmx_swapcoords_t;
-typedef struct {
+typedef struct t_swapcoords {
int nstswap; /* Every how many steps a swap is attempted? */
int nat; /* Number of atoms in the ion group */
int nat_split[2]; /* Number of atoms in the split group */
} t_swapcoords;
-typedef struct {
+typedef struct t_adress {
int type; /* type of AdResS simulation */
gmx_bool bnew_wf; /* enable new AdResS weighting function */
gmx_bool bchempot_dx; /*true:interaction table format input is F=-dmu/dx false: dmu_dwp */
int n_energy_grps;
} t_adress;
-typedef struct {
+typedef struct t_inputrec {
int eI; /* Integration method */
gmx_int64_t nsteps; /* number of steps to be taken */
int simulation_part; /* Used in checkpointing to separate chunks */
struct gmx_enerdata_t;
struct t_fcdata;
struct t_graph;
+struct t_grpopts;
#ifdef __cplusplus
extern "C" {
#include "gromacs/legacyheaders/types/fcdata.h"
#include "gromacs/legacyheaders/types/force_flags.h"
#include "gromacs/legacyheaders/types/forcerec.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/listed-forces/bonded.h"
#include "gromacs/listed-forces/position-restraints.h"
#include "gromacs/math/vec.h"
struct gmx_multisim_t;
struct t_fcdata;
struct t_forcerec;
+struct t_inputrec;
+struct t_lambda;
#ifdef __cplusplus
extern "C" {
struct gmx_enerdata_t;
struct gmx_wallcycle;
struct t_forcerec;
+struct t_lambda;
struct t_pbc;
/*! \brief Helper function that wraps calls to posres */
#include "gromacs/legacyheaders/tgroup.h"
#include "gromacs/legacyheaders/typedefs.h"
#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/legacyheaders/types/enums.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/math/vec.h"
#include "gromacs/topology/symtab.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/legacyheaders/typedefs.h"
#include "gromacs/legacyheaders/types/ifunc.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/math/calculate-ewald-splitting-coefficient.h"
#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
#include <signal.h>
#include <stdlib.h>
-#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
static int div_nsteps(int nsteps, int nst)
{
#include "gromacs/legacyheaders/update.h"
#include "gromacs/legacyheaders/vsite.h"
#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/linearalgebra/sparsematrix.h"
#include "gromacs/listed-forces/manage-threading.h"
#include "gromacs/math/vec.h"
#include "gromacs/fileio/filenm.h"
#include "gromacs/legacyheaders/force.h"
#include "gromacs/legacyheaders/nrnb.h"
-#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
#include "gromacs/tables/forcetable.h"
extern "C" {
#endif
+struct pull_params_t;
struct t_pbc;
#include "gromacs/legacyheaders/network.h"
#include "gromacs/legacyheaders/sim_util.h"
#include "gromacs/legacyheaders/txtdump.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/linearalgebra/nrjac.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
struct gmx_domdec_t;
struct t_commrec;
+struct t_rot;
#ifdef __cplusplus
extern "C" {
#include "gromacs/legacyheaders/network.h"
#include "gromacs/legacyheaders/sim_util.h"
#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/groupcoord.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/timing/wallcycle.h"
+struct t_swapcoords;
+
/*! \brief Initialize ion / water position swapping ("Computational Electrophysiology").
*
* This routine does the memory allocation for various helper arrays, opens
#include "gromacs/legacyheaders/gmx_omp_nthreads.h"
#include "gromacs/legacyheaders/names.h"
#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxassert.h"