20#ifndef EXTRA_CONVERGENCE_OUTPUT_THREAD_HPP
21#define EXTRA_CONVERGENCE_OUTPUT_THREAD_HPP
23#include <opm/simulators/timestepping/ConvergenceReport.hpp>
25#include <condition_variable>
33 class ConvergenceOutputConfiguration;
47class ConvergenceOutputThread;
80 void enqueue(std::vector<OutputRequest>&& requests);
96 std::condition_variable cv_{};
99 std::vector<OutputRequest> requests_{};
142 std::string_view baseName,
170 void writeSynchronous(std::vector<ConvergenceReportQueue::OutputRequest>&& requests);
186 std::unique_ptr<Impl> pImpl_;
Parse comma separated option strings into a runtime configuration object for whether to output additi...
Definition ConvergenceOutputConfiguration.hpp:46
Definition ExtraConvergenceOutputThread.cpp:138
Encapsulating object for thread processing producer's convergence output requests.
Definition ExtraConvergenceOutputThread.hpp:105
std::function< std::string_view(int)> ComponentToPhaseName
Protocol for converting a phase/component ID into a human readable phase/component name.
Definition ExtraConvergenceOutputThread.hpp:109
ConvergenceOutputThread & operator=(const ConvergenceOutputThread &src)=delete
Deleted assignment operator.
ConvergenceOutputThread & operator=(ConvergenceOutputThread &&src)=delete
Deleted move-assignment operator.
void writeSynchronous(std::vector< ConvergenceReportQueue::OutputRequest > &&requests)
Perform synchronous file output of a sequence of requests.
Definition ExtraConvergenceOutputThread.cpp:283
void writeASynchronous()
Output thread worker function.
Definition ExtraConvergenceOutputThread.cpp:288
~ConvergenceOutputThread()
Destructor.
std::function< double(double)> ConvertToTimeUnits
Protocol for converting an SI elapsed time value into an equivalent time value in the run's output co...
Definition ExtraConvergenceOutputThread.hpp:115
ConvergenceOutputThread(const ConvergenceOutputThread &src)=delete
Deleted copy constructor.
Communication channel between thread creating output requests and consumer thread writing those reque...
Definition ExtraConvergenceOutputThread.hpp:56
void enqueue(std::vector< OutputRequest > &&requests)
Push sequence of output requests, typically all substeps whether converged or not,...
Definition ExtraConvergenceOutputThread.cpp:232
void signalLastOutputRequest()
Signal end of output request stream.
Definition ExtraConvergenceOutputThread.cpp:252
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition BlackoilPhases.hpp:27
Single output request.
Definition ExtraConvergenceOutputThread.hpp:63
int currentStep
Current timestep within reportStep.
Definition ExtraConvergenceOutputThread.hpp:69
int reportStep
Current report step.
Definition ExtraConvergenceOutputThread.hpp:65
std::vector< ConvergenceReport > reports
Convergence metrics for each non-linear ieration in the currentStep.
Definition ExtraConvergenceOutputThread.hpp:73