Use TopologyData.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Thu, 23 Apr 2020 15:16:21 +0000 (18:16 +0300)
committerJoe Jordan <ejjordan12@gmail.com>
Fri, 26 Jun 2020 10:54:09 +0000 (10:54 +0000)
Refs #3567

src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/simulatorbuilder.cpp
src/gromacs/mdrun/simulatorbuilder.h

index f2ac92546dc3eedcf4eaabd76a40bf844cb50d69..ba3f1bd737b48b57566a2685023f4cf6e1b07a5e 100644 (file)
@@ -1655,7 +1655,7 @@ int Mdrunner::mdrunner()
         simulatorBuilder.add(TopologyData(&mtop, mdAtoms.get()));
 
         // build and run simulator object based on user-input
-        auto simulator = simulatorBuilder.build(useModularSimulator, deform.get(), &mtop, mdAtoms.get());
+        auto simulator = simulatorBuilder.build(useModularSimulator, deform.get());
         simulator->run();
 
         if (fr->pmePpCommGpu)
index 03d9d7f7969f42236cf2a0307c54608836817275..536c2c8c53813d8f690bfabc71f2b8f4c597b0d4 100644 (file)
@@ -56,10 +56,8 @@ namespace gmx
 {
 
 //! \brief Build a Simulator object
-std::unique_ptr<ISimulator> SimulatorBuilder::build(bool            useModularSimulator,
-                                                    BoxDeformation* deform,
-                                                    gmx_mtop_t*     top_global,
-                                                    MDAtoms*        mdAtoms)
+std::unique_ptr<ISimulator> SimulatorBuilder::build(bool useModularSimulator, BoxDeformation* deform)
+
 {
     // TODO: Reduce protocol complexity.
     //     Investigate individual paramters. Identify default-constructable parameters and clarify
@@ -132,8 +130,8 @@ std::unique_ptr<ISimulator> SimulatorBuilder::build(bool            useModularSi
                 constraintsParam_->enforcedRotation, deform, simulatorModules_->outputProvider,
                 simulatorModules_->mdModulesNotifier, legacyInput_->inputrec,
                 interactiveMD_->imdSession, centerOfMassPulling_->pull_work, ionSwapping_->ionSwap,
-                top_global, simulatorStateData_->globalState_p,
-                simulatorStateData_->observablesHistory_p, mdAtoms, profiling_->nrnb,
+                topologyData_->top_global, simulatorStateData_->globalState_p,
+                simulatorStateData_->observablesHistory_p, topologyData_->mdAtoms, profiling_->nrnb,
                 profiling_->wallCycle, legacyInput_->forceRec, simulatorStateData_->enerdata_p,
                 simulatorStateData_->ekindata_p, simulatorConfig_->runScheduleWork_,
                 *replicaExchangeParameters_, membedHolder_->membed(), profiling_->walltimeAccounting,
@@ -146,10 +144,12 @@ std::unique_ptr<ISimulator> SimulatorBuilder::build(bool            useModularSi
             simulatorEnv_->outputEnv_, simulatorConfig_->mdrunOptions_,
             simulatorConfig_->startingBehavior_, constraintsParam_->vsite, constraintsParam_->constr,
             constraintsParam_->enforcedRotation, deform, simulatorModules_->outputProvider,
-            simulatorModules_->mdModulesNotifier, legacyInput_->inputrec, interactiveMD_->imdSession,
-            centerOfMassPulling_->pull_work, ionSwapping_->ionSwap, top_global,
-            simulatorStateData_->globalState_p, simulatorStateData_->observablesHistory_p, mdAtoms,
-            profiling_->nrnb, profiling_->wallCycle, legacyInput_->forceRec, simulatorStateData_->enerdata_p,
+            simulatorModules_->mdModulesNotifier, legacyInput_->inputrec,
+            interactiveMD_->imdSession, centerOfMassPulling_->pull_work, ionSwapping_->ionSwap,
+            topologyData_->top_global,
+            simulatorStateData_->globalState_p,
+            simulatorStateData_->observablesHistory_p, topologyData_->mdAtoms, profiling_->nrnb,
+            profiling_->wallCycle, legacyInput_->forceRec, simulatorStateData_->enerdata_p,
             simulatorStateData_->ekindata_p, simulatorConfig_->runScheduleWork_,
             *replicaExchangeParameters_, membedHolder_->membed(), profiling_->walltimeAccounting,
             std::move(stopHandlerBuilder_), simulatorConfig_->mdrunOptions_.rerun));
index 7a158188ad69011ef66219617935b68846296974..3677e384c5e7ec8dcf6bba6814dc95ab4646c0d6 100644 (file)
@@ -244,7 +244,13 @@ public:
 class TopologyData
 {
 public:
-    TopologyData(gmx_mtop_t gmx_unused* pMtop, MDAtoms gmx_unused* pAtoms) {}
+    TopologyData(gmx_mtop_t gmx_unused* globalTopology, MDAtoms gmx_unused* mdAtoms) :
+        top_global(globalTopology),
+        mdAtoms(mdAtoms)
+    {
+    }
+    gmx_mtop_t* top_global;
+    MDAtoms*    mdAtoms;
 };
 
 /*! \libinternal
@@ -333,10 +339,7 @@ public:
      *
      * \return  Unique pointer to a Simulator object
      */
-    std::unique_ptr<ISimulator> build(bool            useModularSimulator,
-                                      BoxDeformation* deform,
-                                      gmx_mtop_t*     top_global,
-                                      MDAtoms*        mdAtoms);
+    std::unique_ptr<ISimulator> build(bool useModularSimulator, BoxDeformation* deform);
 
 private:
     // Note: we use std::unique_ptr instead of std::optional because we want to