msim.hpp
Go to the documentation of this file.
1#ifndef ISIM_MAIN_HPP
2#define ISIM_MAIN_HPP
3
4#include <functional>
5#include <string>
6#include <map>
7
14
17
18
19namespace Opm {
20
21class EclipseIO;
22class ParseContext;
23class Parser;
24class Python;
25class SummaryState;
26class msim {
27
28public:
29 using well_rate_function = double(const EclipseState&, const Schedule&, const SummaryState& st, const data::Solution&, size_t report_step, double seconds_elapsed);
30 using solution_function = void(const EclipseState&, const Schedule&, data::Solution&, size_t report_step, double seconds_elapsed);
31
32 msim(const EclipseState& state);
33
34 void well_rate(const std::string& well, data::Rates::opt rate, std::function<well_rate_function> func);
35 void solution(const std::string& field, std::function<solution_function> func);
36 void run(Schedule& schedule, EclipseIO& io, bool report_only);
37 void post_step(Schedule& schedule, SummaryState& st, data::Solution& sol, data::Wells& well_data, size_t report_step);
38private:
39
40 void run_step(const Schedule& schedule, SummaryState& st, data::Solution& sol, data::Wells& well_data, size_t report_step, EclipseIO& io) const;
41 void run_step(const Schedule& schedule, SummaryState& st, data::Solution& sol, data::Wells& well_data, size_t report_step, double dt, EclipseIO& io) const;
42 void output(SummaryState& st, size_t report_step, bool substep, double seconds_elapsed, const data::Solution& sol, const data::Wells& well_data, EclipseIO& io) const;
43 void simulate(const Schedule& schedule, const SummaryState& st, data::Solution& sol, data::Wells& well_data, size_t report_step, double seconds_elapsed, double time_step) const;
44
45 EclipseState state;
46 std::map<std::string, std::map<data::Rates::opt, std::function<well_rate_function>>> well_rates;
47 std::map<std::string, std::function<solution_function>> solutions;
48};
49}
50
51
52#endif
const char *const string
Definition: cJSON.h:170
A class to write the reservoir state and the well state of a blackoil simulation to disk using the Ec...
Definition: EclipseIO.hpp:53
Definition: EclipseState.hpp:63
Definition: Schedule.hpp:113
Definition: SummaryState.hpp:65
opt
Definition: Wells.hpp:51
Definition: custom-opm-common/opm-common/opm/output/data/Solution.hpp:32
Definition: Wells.hpp:299
Definition: msim.hpp:26
void(const EclipseState &, const Schedule &, data::Solution &, size_t report_step, double seconds_elapsed) solution_function
Definition: msim.hpp:30
void well_rate(const std::string &well, data::Rates::opt rate, std::function< well_rate_function > func)
void run(Schedule &schedule, EclipseIO &io, bool report_only)
void solution(const std::string &field, std::function< solution_function > func)
double(const EclipseState &, const Schedule &, const SummaryState &st, const data::Solution &, size_t report_step, double seconds_elapsed) well_rate_function
Definition: msim.hpp:29
msim(const EclipseState &state)
void post_step(Schedule &schedule, SummaryState &st, data::Solution &sol, data::Wells &well_data, size_t report_step)
Definition: A.hpp:4