diff --git a/Applications/CLI/ogs.cpp b/Applications/CLI/ogs.cpp index e54c128d1274e2f3843ec64c5f28a0241517b0b5..62bdac39dc385e02a182d588342c10aa2ce78198 100644 --- a/Applications/CLI/ogs.cpp +++ b/Applications/CLI/ogs.cpp @@ -212,6 +212,7 @@ int main(int argc, char* argv[]) #if defined(USE_PETSC) vtkSmartPointer<vtkMPIController> controller; #endif + std::unique_ptr<ProjectData> project; try { bool solver_succeeded = false; @@ -243,10 +244,6 @@ int main(int argc, char* argv[]) BaseLib::setProjectDirectory(BaseLib::extractPath(cli_arg.project)); - ProjectData project(project_config, - BaseLib::getProjectDirectory(), - cli_arg.outdir); - if (!cli_arg.reference_path_is_set) { // Ignore the test_definition section. project_config.ignoreConfigParameter("test_definition"); @@ -283,8 +280,13 @@ int main(int argc, char* argv[]) project_config.ignoreConfigParameter("insitu"); #endif + project = + std::make_unique<ProjectData>(project_config, + BaseLib::getProjectDirectory(), + cli_arg.outdir); + INFO("Initialize processes."); - for (auto& p : project.getProcesses()) + for (auto& p : project->getProcesses()) { p->initialize(); } @@ -295,7 +297,7 @@ int main(int argc, char* argv[]) INFO("Solve processes."); - auto& time_loop = project.getTimeLoop(); + auto& time_loop = project->getTimeLoop(); time_loop.initialize(); solver_succeeded = time_loop.loop();