From dc16b31c5d120b126467c131a178b87e21e9fd6c Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Thu, 12 May 2022 09:25:25 +0200 Subject: [PATCH] Revert "[cli] Removed vtkMPIController dependency in cli." This reverts commit 325168f0c9b826c9590ce1656c6510fcc7eaecf0. --- Applications/ApplicationsLib/Simulation.cpp | 12 +++++++++++- Applications/ApplicationsLib/Simulation.h | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Applications/ApplicationsLib/Simulation.cpp b/Applications/ApplicationsLib/Simulation.cpp index e59f96856ac..5886a5cb76c 100644 --- a/Applications/ApplicationsLib/Simulation.cpp +++ b/Applications/ApplicationsLib/Simulation.cpp @@ -25,9 +25,16 @@ #include "ProcessLib/TimeLoop.h" Simulation::Simulation(int argc, char* argv[]) - : linear_solver_library_setup(argc, argv), test_definition{std::nullopt} + : linear_solver_library_setup(argc, argv), +#if defined(USE_PETSC) + controller(vtkSmartPointer<vtkMPIController>::New()), +#endif + test_definition{std::nullopt} { #if defined(USE_PETSC) + controller->Initialize(&argc, &argv, 1); + vtkMPIController::SetGlobalController(controller); + { // Can be called only after MPI_INIT. int mpi_rank; MPI_Comm_rank(PETSC_COMM_WORLD, &mpi_rank); @@ -161,4 +168,7 @@ Simulation::~Simulation() InSituLib::Finalize(); } #endif +#if defined(USE_PETSC) + controller->Finalize(1); +#endif } diff --git a/Applications/ApplicationsLib/Simulation.h b/Applications/ApplicationsLib/Simulation.h index aff6ff254e6..de1ea40647a 100644 --- a/Applications/ApplicationsLib/Simulation.h +++ b/Applications/ApplicationsLib/Simulation.h @@ -10,6 +10,11 @@ * */ +#ifdef USE_PETSC +#include <vtkMPIController.h> +#include <vtkSmartPointer.h> +#endif + #include "Applications/ApplicationsLib/LinearSolverLibrarySetup.h" #include "Applications/ApplicationsLib/TestDefinition.h" @@ -39,6 +44,9 @@ public: private: ApplicationsLib::LinearSolverLibrarySetup linear_solver_library_setup; +#if defined(USE_PETSC) + vtkSmartPointer<vtkMPIController> controller; +#endif std::unique_ptr<ProjectData> project_data; std::optional<ApplicationsLib::TestDefinition> test_definition; }; -- GitLab