From 0be497b7a9ea605dad3780c479c3018f3c93bc41 Mon Sep 17 00:00:00 2001 From: David van der Spoel Date: Wed, 2 Aug 2017 09:15:50 +0200 Subject: [PATCH] Worked around missing OpenMP implementation in orires. The orientation restraint code is not aware of OpenMP threads and uses some global information. By only running it on the master node results are now independent of number of threads used. Fixes #2223 Change-Id: Ie86f4bd4e645fa71a58114950f6a297b5788e022 --- src/gromacs/listed-forces/listed-forces.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gromacs/listed-forces/listed-forces.cpp b/src/gromacs/listed-forces/listed-forces.cpp index 8113493caf..e5021b19a2 100644 --- a/src/gromacs/listed-forces/listed-forces.cpp +++ b/src/gromacs/listed-forces/listed-forces.cpp @@ -361,6 +361,17 @@ calc_one_bond(int thread, v = 0; } #endif + else if (ftype == F_ORIRES) + { + if (thread == 0) + { + v = interaction_function[ftype].ifunc(nbonds*nat1, iatoms, + idef->iparams, + x, f, fshift, + pbc, g, lambda[efptFTYPE], &(dvdl[efptFTYPE]), + md, fcd, global_atom_index); + } + } else { v = interaction_function[ftype].ifunc(nbn, iatoms+nb0, -- 2.11.4.GIT