diff --git a/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt b/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt index dfb7260dff9b42ff3f523c47e57fd639909f737e..ddd01e76ef4ad85ae7c67015daa51db8fb7d3a3c 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt +++ b/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt @@ -123,8 +123,10 @@ list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES} ${PROPERTY_SOU tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src) list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES}) -list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) -tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) +if(GMX_USE_TNG) + list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) + tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) +endif() get_lmfit_properties(LMFIT_SOURCES LMFIT_LIBRARIES_TO_LINK LMFIT_INCLUDE_DIRECTORY LMFIT_INCLUDE_DIR_ORDER) include_directories(${LMFIT_INCLUDE_DIR_ORDER} SYSTEM "${LMFIT_INCLUDE_DIRECTORY}") diff --git a/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt.preplumed b/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt.preplumed index fd321f1e1cbbe81b98e100baaeff7aabeebd6004..b7d9bf47da46e371f6dfbcddc33fe1a390d1d174 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt.preplumed +++ b/patches/gromacs-2016.1.diff/src/gromacs/CMakeLists.txt.preplumed @@ -121,8 +121,10 @@ list(APPEND LIBGROMACS_SOURCES ${GMXLIB_SOURCES} ${MDLIB_SOURCES} ${PROPERTY_SOU tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src) list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES}) -list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) -tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) +if(GMX_USE_TNG) + list(APPEND LIBGROMACS_SOURCES ${TNG_SOURCES}) + tng_set_source_properties(WITH_ZLIB ${HAVE_ZLIB}) +endif() get_lmfit_properties(LMFIT_SOURCES LMFIT_LIBRARIES_TO_LINK LMFIT_INCLUDE_DIRECTORY LMFIT_INCLUDE_DIR_ORDER) include_directories(${LMFIT_INCLUDE_DIR_ORDER} SYSTEM "${LMFIT_INCLUDE_DIRECTORY}") diff --git a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp index 3bee45971a7e763451ebb77a43f40c0c2f2cb3eb..fef6c62d12f35194d7bcbdfcc9936d300201af04 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp +++ b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp @@ -366,7 +366,7 @@ void do_force_lowlevel(t_forcerec *fr, t_inputrec *ir, TRUE, box); } - do_force_listed(wcycle, box, ir->fepvals, cr->ms, + do_force_listed(wcycle, box, ir->fepvals, cr, idef, (const rvec *) x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, @@ -456,8 +456,7 @@ void do_force_lowlevel(t_forcerec *fr, t_inputrec *ir, * exclusion forces) are calculated, so we can store * the forces in the normal, single fr->f_novirsum array. */ - ewald_LRcorrection(fr->excl_load[t], fr->excl_load[t+1], - cr, t, fr, + ewald_LRcorrection(md->homenr, cr, nthreads, t, fr, md->chargeA, md->chargeB, md->sqrt_c6A, md->sqrt_c6B, md->sigmaA, md->sigmaB, diff --git a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp.preplumed b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp.preplumed index 107e00a8e7b3393ec0eaf42a07f584d29c6ea4eb..fa592e1993b0a7736fe2c524975858c6f2c0bf29 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp.preplumed +++ b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/force.cpp.preplumed @@ -359,7 +359,7 @@ void do_force_lowlevel(t_forcerec *fr, t_inputrec *ir, TRUE, box); } - do_force_listed(wcycle, box, ir->fepvals, cr->ms, + do_force_listed(wcycle, box, ir->fepvals, cr, idef, (const rvec *) x, hist, f, fr, &pbc, graph, enerd, nrnb, lambda, md, fcd, DOMAINDECOMP(cr) ? cr->dd->gatindex : NULL, @@ -449,8 +449,7 @@ void do_force_lowlevel(t_forcerec *fr, t_inputrec *ir, * exclusion forces) are calculated, so we can store * the forces in the normal, single fr->f_novirsum array. */ - ewald_LRcorrection(fr->excl_load[t], fr->excl_load[t+1], - cr, t, fr, + ewald_LRcorrection(md->homenr, cr, nthreads, t, fr, md->chargeA, md->chargeB, md->sqrt_c6A, md->sqrt_c6B, md->sigmaA, md->sigmaB, diff --git a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp index 6282d144cb36d7f660aa4b952ed25a3757e0c24f..7585cdbe09ec09c994e52f6499b59efc9ddcc3d4 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp +++ b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp @@ -408,8 +408,6 @@ void init_em(FILE *fplog, const char *title, *top = gmx_mtop_generate_local_top(top_global, ir->efep != efepNO); - forcerec_set_excl_load(fr, *top); - setup_bonded_threading(fr, &(*top)->idef); if (ir->ePBC != epbcNONE && !fr->bMolPBC) @@ -626,9 +624,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, { t_state *s1, *s2; - int i; int start, end; - rvec *x1, *x2; real dvdl_constr; int nthreads gmx_unused; @@ -661,7 +657,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, s2->natoms = s1->natoms; copy_mat(s1->box, s2->box); /* Copy free energy state */ - for (i = 0; i < efptNR; i++) + for (int i = 0; i < efptNR; i++) { s2->lambda[i] = s1->lambda[i]; } @@ -670,18 +666,16 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, start = 0; end = md->homenr; - x1 = s1->x; - x2 = s2->x; - // cppcheck-suppress unreadVariable nthreads = gmx_omp_nthreads_get(emntUpdate); #pragma omp parallel num_threads(nthreads) { - int gf, i, m; + rvec *x1 = s1->x; + rvec *x2 = s2->x; - gf = 0; + int gf = 0; #pragma omp for schedule(static) nowait - for (i = start; i < end; i++) + for (int i = start; i < end; i++) { try { @@ -689,7 +683,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, { gf = md->cFREEZE[i]; } - for (m = 0; m < DIM; m++) + for (int m = 0; m < DIM; m++) { if (ir->opts.nFreeze[gf][m]) { @@ -707,13 +701,13 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, if (s2->flags & (1<<estCGP)) { /* Copy the CG p vector */ - x1 = s1->cg_p; - x2 = s2->cg_p; + rvec *p1 = s1->cg_p; + rvec *p2 = s2->cg_p; #pragma omp for schedule(static) nowait - for (i = start; i < end; i++) + for (int i = start; i < end; i++) { // Trivial OpenMP block that does not throw - copy_rvec(x1[i], x2[i]); + copy_rvec(p1[i], p2[i]); } } @@ -736,7 +730,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, } s2->ncg_gl = s1->ncg_gl; #pragma omp for schedule(static) nowait - for (i = 0; i < s2->ncg_gl; i++) + for (int i = 0; i < s2->ncg_gl; i++) { s2->cg_gl[i] = s1->cg_gl[i]; } diff --git a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp.preplumed b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp.preplumed index 3890e24e3734a167e3e6c9efab91a204945dcbc1..2d5290d4b9502a9d1f900089717a5b1578c490ed 100644 --- a/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp.preplumed +++ b/patches/gromacs-2016.1.diff/src/gromacs/mdlib/minimize.cpp.preplumed @@ -401,8 +401,6 @@ void init_em(FILE *fplog, const char *title, *top = gmx_mtop_generate_local_top(top_global, ir->efep != efepNO); - forcerec_set_excl_load(fr, *top); - setup_bonded_threading(fr, &(*top)->idef); if (ir->ePBC != epbcNONE && !fr->bMolPBC) @@ -582,9 +580,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, { t_state *s1, *s2; - int i; int start, end; - rvec *x1, *x2; real dvdl_constr; int nthreads gmx_unused; @@ -617,7 +613,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, s2->natoms = s1->natoms; copy_mat(s1->box, s2->box); /* Copy free energy state */ - for (i = 0; i < efptNR; i++) + for (int i = 0; i < efptNR; i++) { s2->lambda[i] = s1->lambda[i]; } @@ -626,18 +622,16 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, start = 0; end = md->homenr; - x1 = s1->x; - x2 = s2->x; - // cppcheck-suppress unreadVariable nthreads = gmx_omp_nthreads_get(emntUpdate); #pragma omp parallel num_threads(nthreads) { - int gf, i, m; + rvec *x1 = s1->x; + rvec *x2 = s2->x; - gf = 0; + int gf = 0; #pragma omp for schedule(static) nowait - for (i = start; i < end; i++) + for (int i = start; i < end; i++) { try { @@ -645,7 +639,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, { gf = md->cFREEZE[i]; } - for (m = 0; m < DIM; m++) + for (int m = 0; m < DIM; m++) { if (ir->opts.nFreeze[gf][m]) { @@ -663,13 +657,13 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, if (s2->flags & (1<<estCGP)) { /* Copy the CG p vector */ - x1 = s1->cg_p; - x2 = s2->cg_p; + rvec *p1 = s1->cg_p; + rvec *p2 = s2->cg_p; #pragma omp for schedule(static) nowait - for (i = start; i < end; i++) + for (int i = start; i < end; i++) { // Trivial OpenMP block that does not throw - copy_rvec(x1[i], x2[i]); + copy_rvec(p1[i], p2[i]); } } @@ -692,7 +686,7 @@ static bool do_em_step(t_commrec *cr, t_inputrec *ir, t_mdatoms *md, } s2->ncg_gl = s1->ncg_gl; #pragma omp for schedule(static) nowait - for (i = 0; i < s2->ncg_gl; i++) + for (int i = 0; i < s2->ncg_gl; i++) { s2->cg_gl[i] = s1->cg_gl[i]; } diff --git a/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp b/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp index 90633b424718f87debe8c579617e2cdc04c70a88..1a2da1d470ceea7b5ac1b6847b6c6aa9c2c7cbd8 100644 --- a/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp +++ b/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp @@ -434,8 +434,6 @@ double gmx::do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { top = gmx_mtop_generate_local_top(top_global, ir->efep != efepNO); - forcerec_set_excl_load(fr, top); - state = serial_init_local_state(state_global); atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms); diff --git a/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp.preplumed b/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp.preplumed index 2a49aba4a37b3d20df5bb7b49f472fbf1f96000c..06c25f321404e012b870cfff79c5044308431b7e 100644 --- a/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp.preplumed +++ b/patches/gromacs-2016.1.diff/src/programs/mdrun/md.cpp.preplumed @@ -421,8 +421,6 @@ double gmx::do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { top = gmx_mtop_generate_local_top(top_global, ir->efep != efepNO); - forcerec_set_excl_load(fr, top); - state = serial_init_local_state(state_global); atoms2md(top_global, ir, 0, NULL, top_global->natoms, mdatoms);