My Project
Loading...
Searching...
No Matches
ScheduleStatic.hpp
1/*
2 Copyright 2013 Statoil ASA.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef SCHEDULE_STATIC_HPP
20#define SCHEDULE_STATIC_HPP
21
22#include <opm/input/eclipse/EclipseState/Runspec.hpp>
23
24#include <opm/input/eclipse/Schedule/MessageLimits.hpp>
25#include <opm/input/eclipse/Schedule/OilVaporizationProperties.hpp>
26#include <opm/input/eclipse/Schedule/RSTConfig.hpp>
27#include <opm/input/eclipse/Schedule/ScheduleRestartInfo.hpp>
28
29#include <opm/input/eclipse/Units/UnitSystem.hpp>
30
31#include <memory>
32#include <optional>
33#include <string>
34
35namespace Opm {
36
37class Python;
38
40{
41 std::shared_ptr<const Python> m_python_handle;
42 std::string m_input_path;
43 ScheduleRestartInfo rst_info;
44 MessageLimits m_deck_message_limits;
45 UnitSystem m_unit_system;
46 Runspec m_runspec;
47 RSTConfig rst_config;
48 std::optional<int> output_interval;
49 double sumthin{-1.0};
50 bool rptonly{false};
51 bool gaslift_opt_active{false};
52 std::optional<OilVaporizationProperties> oilVap;
53
54 ScheduleStatic() = default;
55
56 explicit ScheduleStatic(std::shared_ptr<const Python> python_handle) :
57 m_python_handle(python_handle)
58 {}
59
60 ScheduleStatic(std::shared_ptr<const Python> python_handle,
61 const ScheduleRestartInfo& restart_info,
62 const Deck& deck,
63 const Runspec& runspec,
64 const std::optional<int>& output_interval_,
65 const ParseContext& parseContext,
66 ErrorGuard& errors);
67
68 template<class Serializer>
69 void serializeOp(Serializer& serializer)
70 {
71 serializer(m_deck_message_limits);
72 serializer(this->rst_info);
73 serializer(m_runspec);
74 serializer(m_unit_system);
75 serializer(this->m_input_path);
76 serializer(rst_info);
77 serializer(rst_config);
78 serializer(this->output_interval);
79 serializer(this->gaslift_opt_active);
80 }
81
82 static ScheduleStatic serializationTestObject();
83
84 bool operator==(const ScheduleStatic& other) const;
85};
86
87} // end namespace Opm
88
89#endif // SCHEDULE_STATIC_HPP
Definition Deck.hpp:49
Definition ErrorGuard.hpp:29
Definition MessageLimits.hpp:28
Definition ParseContext.hpp:84
Definition RSTConfig.hpp:202
Definition Runspec.hpp:481
Class for (de-)serializing.
Definition Serializer.hpp:84
Definition UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition ScheduleRestartInfo.hpp:31
Definition ScheduleStatic.hpp:40