12 #include <vtkCPDataDescription.h>
13 #include <vtkCPInputDataDescription.h>
14 #include <vtkCPProcessor.h>
15 #include <vtkCPPythonScriptPipeline.h>
17 #include <vtkUnstructuredGrid.h>
28 std::string
const& path)
44 fs::path(script_config.getConfigParameter<std::string>(
"name"));
45 if (scriptPath.is_relative())
47 scriptPath = fs::path(path) / scriptPath;
49 if (!fs::exists(scriptPath))
51 ERR(
"In-situ script {:s} does not exist!", scriptPath.string());
53 INFO(
"Initializing in-situ script: {:s}", scriptPath.string());
54 vtkNew<vtkCPPythonScriptPipeline> pipeline;
55 pipeline->Initialize(scriptPath.c_str());
56 Processor->AddPipeline(pipeline.GetPointer());
68 unsigned int const timeStep,
bool const lastTimeStep,
69 std::string output_directory)
74 vtkNew<vtkCPDataDescription> dataDescription;
75 dataDescription->AddInput(
"input");
76 dataDescription->SetTimeData(time, timeStep);
77 if (lastTimeStep ==
true)
81 dataDescription->ForceOutputOn();
83 if (
Processor->RequestDataDescription(dataDescription.GetPointer()) != 0)
85 INFO(
"Start InSitu process: timestep #{:d} (t={:g}, last={:d})",
86 timeStep, time, lastTimeStep);
87 vtkNew<MeshLib::VtkMappedMeshSource> vtkSource;
88 vtkSource->SetMesh(&mesh);
90 dataDescription->GetInputDescriptionByName(
"input")->SetGrid(
91 vtkSource->GetOutput());
92 auto const cwd = fs::current_path();
93 fs::current_path(std::move(output_directory));
94 Processor->CoProcess(dataDescription.GetPointer());
95 fs::current_path(cwd);
96 INFO(
"End InSitu process.");
void INFO(char const *fmt, Args const &... args)
void ERR(char const *fmt, Args const &... args)
Definition of the Mesh class.
VtkMappedMeshSource is a source class to transform OGS meshes into complete vtkUnstructuredGrids....
Range< SubtreeIterator > getConfigSubtreeList(std::string const &root) const
void Initialize(BaseLib::ConfigTree const &scripts_config, std::string const &path)
void CoProcess(MeshLib::Mesh const &mesh, double const time, unsigned int const timeStep, bool const lastTimeStep, std::string output_directory)
vtkCPProcessor * Processor