EXPECT_EQ(0, runner->callGrompp(caller));
}
+ const std::string splitPoint = std::to_string(std::stoi(mdpFieldValues.at("nsteps")) / 2);
+
// prepare the .tpr file for the first part of the two-part run
{
// TODO evolve grompp to report the number of warnings issued, so
caller.addOption("-maxwarn", maxWarningsTolerated);
runner->useTopGroAndNdxFromDatabase(simulationName);
auto firstPartMdpFieldValues = mdpFieldValues;
- firstPartMdpFieldValues["nsteps"] = std::to_string(std::stoi(mdpFieldValues.at("nsteps")) / 2);
+ firstPartMdpFieldValues["nsteps"] = splitPoint;
runner->useStringAsMdpFile(prepareMdpFileContents(firstPartMdpFieldValues));
runner->tprFileName_ = firstPartRunTprFileName;
EXPECT_EQ(0, runner->callGrompp(caller));
runner->edrFileName_ = fullRunEdrFileName;
CommandLine fullRunCaller;
fullRunCaller.append("mdrun");
+ /* Force neighborlist update at the beginning of the second half of the trajectory.
+ * Doing so through CLI options prevents pairlist tuning from changing it. */
+ fullRunCaller.addOption("-nstlist", splitPoint);
ASSERT_EQ(0, runner->callMdrun(fullRunCaller));
}
mdpFieldValues["init-lambda-state"] = "3";
mdpFieldValues["nsteps"] = "16";
- // Forces on GPUs are generally not reproducible enough for a tight
- // tolerance. Similarly, the propagation of sd and bd are not as
+ // Forces and update on GPUs are generally not reproducible enough for a tight
+ // tolerance. Similarly, the propagation of bd is not as
// reproducible as the others. So we use several ULP tolerance
// in all cases. This is looser than needed e.g. for md and md-vv
// with forces on CPUs, but there is no real risk of a bug with
// those propagators that would only be caught with a tighter
// tolerance in this particular test.
- int ulpToleranceInMixed = 32;
+ int ulpToleranceInMixed = 128;
int ulpToleranceInDouble = 64;
if (integrator == "bd")
{
// tests can run in such configurations.
#if !GMX_GPU_OPENCL
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
NormalIntegrators,
MdrunNoAppendContinuationIsExact,
::testing::Combine(::testing::Values("argon12", "spc2", "alanine_vsite_vacuo"),
::testing::Values("no"),
::testing::Values(MdpParameterDatabase::Default)));
-INSTANTIATE_TEST_CASE_P(NormalIntegratorsWithFEP,
- MdrunNoAppendContinuationIsExact,
- ::testing::Combine(::testing::Values("nonanol_vacuo"),
- ::testing::Values("md", "md-vv", "bd", "sd"),
- ::testing::Values("no"),
- ::testing::Values("no"),
- ::testing::Values(MdpParameterDatabase::Default)));
+INSTANTIATE_TEST_SUITE_P(NormalIntegratorsWithFEP,
+ MdrunNoAppendContinuationIsExact,
+ ::testing::Combine(::testing::Values("nonanol_vacuo"),
+ ::testing::Values("md", "md-vv", "bd", "sd"),
+ ::testing::Values("no"),
+ ::testing::Values("no"),
+ ::testing::Values(MdpParameterDatabase::Default)));
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
NVT,
MdrunNoAppendContinuationIsExact,
::testing::Combine(::testing::Values("argon12"),
::testing::Values("no"),
::testing::Values(MdpParameterDatabase::Default)));
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
NPH,
MdrunNoAppendContinuationIsExact,
::testing::Combine(::testing::Values("argon12"),
::testing::Values("berendsen", "parrinello-rahman", "C-rescale"),
::testing::Values(MdpParameterDatabase::Default)));
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
NPT,
MdrunNoAppendContinuationIsExact,
::testing::Combine(::testing::Values("argon12"),
::testing::Values("berendsen", "parrinello-rahman", "C-rescale"),
::testing::Values(MdpParameterDatabase::Default)));
-INSTANTIATE_TEST_CASE_P(MTTK,
- MdrunNoAppendContinuationIsExact,
- ::testing::Combine(::testing::Values("argon12"),
- ::testing::Values("md-vv"),
- ::testing::Values("nose-hoover"),
- ::testing::Values("mttk"),
- ::testing::Values(MdpParameterDatabase::Default)));
-
-INSTANTIATE_TEST_CASE_P(Pull,
- MdrunNoAppendContinuationIsExact,
- ::testing::Combine(::testing::Values("spc2"),
- ::testing::Values("md", "md-vv"),
- ::testing::Values("no"),
- ::testing::Values("no"),
- ::testing::Values(MdpParameterDatabase::Pull)));
-
-INSTANTIATE_TEST_CASE_P(Awh,
- MdrunNoAppendContinuationIsExact,
- ::testing::Combine(::testing::Values("alanine_vacuo"),
- ::testing::Values("md", "md-vv"),
- ::testing::Values("v-rescale"),
- ::testing::Values("no"),
- ::testing::Values(MdpParameterDatabase::Awh)));
-
+INSTANTIATE_TEST_SUITE_P(MTTK,
+ MdrunNoAppendContinuationIsExact,
+ ::testing::Combine(::testing::Values("argon12"),
+ ::testing::Values("md-vv"),
+ ::testing::Values("nose-hoover"),
+ ::testing::Values("mttk"),
+ ::testing::Values(MdpParameterDatabase::Default)));
+
+INSTANTIATE_TEST_SUITE_P(Pull,
+ MdrunNoAppendContinuationIsExact,
+ ::testing::Combine(::testing::Values("spc2"),
+ ::testing::Values("md", "md-vv"),
+ ::testing::Values("no"),
+ ::testing::Values("no"),
+ ::testing::Values(MdpParameterDatabase::Pull)));
+
+INSTANTIATE_TEST_SUITE_P(Awh,
+ MdrunNoAppendContinuationIsExact,
+ ::testing::Combine(::testing::Values("alanine_vacuo"),
+ ::testing::Values("md", "md-vv"),
+ ::testing::Values("v-rescale"),
+ ::testing::Values("no"),
+ ::testing::Values(MdpParameterDatabase::Awh)));
+
+#else
+GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(MdrunNoAppendContinuationIsExact);
#endif
} // namespace