opm-common
Loading...
Searching...
No Matches
EclipseIO.hpp
1/*
2 Copyright (c) 2013 Andreas Lauser
3 Copyright (c) 2013 Uni Research AS
4 Copyright (c) 2014 IRIS AS
5
6 This file is part of the Open Porous Media project (OPM).
7
8 OPM is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 OPM is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with OPM. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#ifndef OPM_ECLIPSE_WRITER_HPP
23#define OPM_ECLIPSE_WRITER_HPP
24
25#include <opm/input/eclipse/EclipseState/Grid/NNC.hpp>
26
27#include <opm/output/data/Solution.hpp>
28#include <opm/output/eclipse/RestartValue.hpp>
29
30#include <map>
31#include <memory>
32#include <optional>
33#include <string>
34#include <vector>
35
36namespace Opm {
37
38class EclipseGrid;
39class EclipseState;
40class RestartKey;
41class Schedule;
42class SummaryConfig;
43class SummaryState;
44class UDQState;
45class WellTestState;
46
47} // namespace Opm
48
49namespace Opm::Action {
50 class State;
51} // namespace Opm::Action
52
53namespace Opm::out {
54 class Summary;
55} // namespace Opm::out
56
57namespace Opm {
58
61{
62public:
92 EclipseIO(const EclipseState& es,
93 EclipseGrid grid,
94 const Schedule& schedule,
95 const SummaryConfig& summary_config,
96 const std::string& basename = std::string{},
97 const bool writeEsmry = false);
98
103 EclipseIO(const EclipseIO&) = delete;
104
109 EclipseIO& operator=(const EclipseIO&) = delete;
110
115
161 std::map<std::string, std::vector<int>> int_data = {},
162 const std::vector<NNCdata>& nnc = {});
163
164
181 void writeInitial(std::vector<data::Solution>,
182 std::map<std::string, std::vector<int>> int_data = {},
183 const std::vector<NNCdata>& nnc = {});
184
185
186 void writeInitial(std::vector<data::Solution>,
187 std::map<std::string, std::vector<int>> int_data = {},
188 const NNCCollection& nnc_col = {});
189
190
247 void writeTimeStep(const Action::State& action_state,
248 const WellTestState& wtest_state,
249 const SummaryState& st,
250 const UDQState& udq_state,
251 int report_step,
252 bool isSubstep,
253 double seconds_elapsed,
254 RestartValue value,
255 const bool write_double = false,
256 std::optional<int> time_step = std::nullopt,
257 const bool isFinalWriteOut = false);
258
318 void writeTimeStep(const Action::State& action_state,
319 const WellTestState& wtest_state,
320 const SummaryState& st,
321 const UDQState& udq_state,
322 int report_step,
323 bool isSubstep,
324 double seconds_elapsed,
325 std::vector<RestartValue> value,
326 const bool write_double = false,
327 std::optional<int> time_step = std::nullopt,
328 const bool isFinalWriteOut = false);
329
330
377 RestartValue loadRestart(Action::State& action_state,
378 SummaryState& summary_state,
379 const std::vector<RestartKey>& solution_keys,
380 const std::vector<RestartKey>& extra_keys = {}) const;
381
411 data::Solution loadRestartSolution(const std::vector<RestartKey>& solution_keys,
412 const int report_step) const;
413
420 const out::Summary& summary() const;
421
428 const SummaryConfig& finalSummaryConfig() const;
429
430private:
432 class Impl;
433
435 std::unique_ptr<Impl> impl;
436};
437
438} // namespace Opm
439
440#endif // OPM_ECLIPSE_WRITER_HPP
Management information about the current run's ACTION system, especially concerning the number of tim...
Definition State.hpp:51
About cell information and dimension: The actual grid information is held in a pointer to an ERT ecl_...
Definition EclipseGrid.hpp:62
Internal implementation class for EclipseIO public interface.
Definition EclipseIO.cpp:134
RestartValue loadRestart(Action::State &action_state, SummaryState &summary_state, const std::vector< RestartKey > &solution_keys, const std::vector< RestartKey > &extra_keys={}) const
Load per-cell solution data and wellstate from restart file.
Definition EclipseIO.cpp:1247
void writeInitial(data::Solution simProps=data::Solution(), std::map< std::string, std::vector< int > > int_data={}, const std::vector< NNCdata > &nnc={})
Output static properties to EGRID and INIT files.
Definition EclipseIO.cpp:1119
EclipseIO(const EclipseIO &)=delete
Deleted copy constructor.
data::Solution loadRestartSolution(const std::vector< RestartKey > &solution_keys, const int report_step) const
Load per-cell solution data from restart file at specific time.
Definition EclipseIO.cpp:1257
EclipseIO(const EclipseState &es, EclipseGrid grid, const Schedule &schedule, const SummaryConfig &summary_config, const std::string &basename=std::string{}, const bool writeEsmry=false)
Constructor.
Definition EclipseIO.cpp:1100
const SummaryConfig & finalSummaryConfig() const
Access finalised summary configuration object.
Definition EclipseIO.cpp:1268
const out::Summary & summary() const
Access internal summary vector calculation engine.
Definition EclipseIO.cpp:1263
void writeTimeStep(const Action::State &action_state, const WellTestState &wtest_state, const SummaryState &st, const UDQState &udq_state, int report_step, bool isSubstep, double seconds_elapsed, RestartValue value, const bool write_double=false, std::optional< int > time_step=std::nullopt, const bool isFinalWriteOut=false)
Write reservoir state and summary information to disk.
Definition EclipseIO.cpp:1153
~EclipseIO()
Destructor.
EclipseIO & operator=(const EclipseIO &)=delete
Deleted assignment operator.
Definition EclipseState.hpp:66
Definition RestartValue.hpp:34
Definition Schedule.hpp:101
Collection of run's summary vectors.
Definition SummaryConfig.hpp:299
Definition SummaryState.hpp:73
Definition UDQState.hpp:40
Definition WellTestState.hpp:65
Definition Solution.hpp:35
Computational engine for calculating summary vectors (2D curves as a function of time) and writing th...
Definition Summary.hpp:57
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30