// build and run simulator object based on user-input
auto simulator = simulatorBuilder.build(
- useModularSimulator, fplog, cr, ms, mdlog, static_cast<int>(filenames.size()),
- filenames.data(), oenv, vsite.get(), constr.get(),
- enforcedRotation ? enforcedRotation->getLegacyEnfrot() : nullptr, deform.get(),
- mdModules_->outputProvider(), mdModules_->notifier(), inputrec, imdSession.get(), pull_work,
- swap, &mtop, mdAtoms.get(), &nrnb, wcycle, fr, replExParams, walltime_accounting);
+ useModularSimulator, static_cast<int>(filenames.size()), filenames.data(), vsite.get(),
+ constr.get(), enforcedRotation ? enforcedRotation->getLegacyEnfrot() : nullptr,
+ deform.get(), mdModules_->outputProvider(), mdModules_->notifier(), inputrec,
+ imdSession.get(), pull_work, swap, &mtop, mdAtoms.get(), &nrnb, wcycle, fr,
+ replExParams, walltime_accounting);
simulator->run();
if (fr->pmePpCommGpu)
//! \brief Build a Simulator object
std::unique_ptr<ISimulator> SimulatorBuilder::build(bool useModularSimulator,
- FILE* fplog,
- t_commrec* cr,
- const gmx_multisim_t* ms,
- const MDLogger& mdlog,
int nfile,
const t_filenm* fnm,
- const gmx_output_env_t* oenv,
VirtualSitesHandler* vsite,
Constraints* constr,
gmx_enfrot* enforcedRotation,
{
// NOLINTNEXTLINE(modernize-make-unique): make_unique does not work with private constructor
return std::unique_ptr<ModularSimulator>(new ModularSimulator(
- fplog, cr, ms, mdlog, nfile, fnm, oenv, simulatorConfig_->mdrunOptions_,
- simulatorConfig_->startingBehavior_, vsite, constr, enforcedRotation, deform,
- outputProvider, mdModulesNotifier, inputrec, imdSession, pull_work, swap, top_global,
- simulatorStateData_->globalState_p, simulatorStateData_->observablesHistory_p, mdAtoms,
- nrnb, wcycle, fr, simulatorStateData_->enerdata_p, simulatorStateData_->ekindata_p,
+ simulatorEnv_->fplog_, simulatorEnv_->commRec_, simulatorEnv_->multisimCommRec_,
+ simulatorEnv_->logger_, nfile, fnm, simulatorEnv_->outputEnv_,
+ simulatorConfig_->mdrunOptions_, simulatorConfig_->startingBehavior_, vsite, constr,
+ enforcedRotation, deform, outputProvider, mdModulesNotifier, inputrec, imdSession,
+ pull_work, swap, top_global, simulatorStateData_->globalState_p,
+ simulatorStateData_->observablesHistory_p, mdAtoms, nrnb, wcycle, fr,
+ simulatorStateData_->enerdata_p, simulatorStateData_->ekindata_p,
simulatorConfig_->runScheduleWork_, replExParams, membedHolder_->membed(), walltime_accounting,
std::move(stopHandlerBuilder_), simulatorConfig_->mdrunOptions_.rerun));
}
// NOLINTNEXTLINE(modernize-make-unique): make_unique does not work with private constructor
return std::unique_ptr<LegacySimulator>(new LegacySimulator(
- fplog, cr, ms, mdlog, nfile, fnm, oenv, simulatorConfig_->mdrunOptions_,
+ simulatorEnv_->fplog_, simulatorEnv_->commRec_, simulatorEnv_->multisimCommRec_,
+ simulatorEnv_->logger_, nfile, fnm, simulatorEnv_->outputEnv_, simulatorConfig_->mdrunOptions_,
simulatorConfig_->startingBehavior_, vsite, constr, enforcedRotation, deform,
outputProvider, mdModulesNotifier, inputrec, imdSession, pull_work, swap, top_global,
simulatorStateData_->globalState_p, simulatorStateData_->observablesHistory_p, mdAtoms,
class SimulatorEnv
{
-
public:
- SimulatorEnv(FILE gmx_unused* pFile,
- t_commrec gmx_unused* pCommrec,
- gmx_multisim_t gmx_unused* pMultisim,
- const MDLogger gmx_unused& logger,
- gmx_output_env_t gmx_unused* pEnv)
+ SimulatorEnv(FILE* fplog,
+ t_commrec* commRec,
+ gmx_multisim_t* multisimCommRec,
+ const MDLogger& logger,
+ gmx_output_env_t* outputEnv) :
+ fplog_{ fplog },
+ commRec_{ commRec },
+ multisimCommRec_{ multisimCommRec },
+ logger_{ logger },
+ outputEnv_{ outputEnv }
{
}
+
+ FILE* fplog_;
+ t_commrec* commRec_;
+ const gmx_multisim_t* multisimCommRec_;
+ const MDLogger& logger_;
+ const gmx_output_env_t* outputEnv_;
};
class Profiling
* \return Unique pointer to a Simulator object
*/
std::unique_ptr<ISimulator> build(bool useModularSimulator,
- FILE* fplog,
- t_commrec* cr,
- const gmx_multisim_t* ms,
- const MDLogger& mdlog,
int nfile,
const t_filenm* fnm,
- const gmx_output_env_t* oenv,
VirtualSitesHandler* vsite,
Constraints* constr,
gmx_enfrot* enforcedRotation,