doubhead.hpp
Go to the documentation of this file.
1/*
2 Copyright 2018 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
20#ifndef OPM_DOUBHEAD_HEADER_INCLUDED
21#define OPM_DOUBHEAD_HEADER_INCLUDED
22
23#include <chrono>
24#include <cstddef>
25#include <vector>
26
27namespace Opm {
28 struct Tuning;
29 class Schedule;
30 class UDQParams;
31}
32
33namespace Opm { namespace RestartIO {
34
36 {
37 public:
38 struct TimeStamp {
39 std::chrono::time_point<std::chrono::system_clock> start;
40 std::chrono::duration<double, std::chrono::seconds::period> elapsed;
41 };
42
43 struct guideRate {
44 double A;
45 double B;
46 double C;
47 double D;
48 double E;
49 double F;
50 double delay;
52 };
53
55
56 ~DoubHEAD() = default;
57 DoubHEAD(const DoubHEAD& rhs) = default;
58 DoubHEAD(DoubHEAD&& rhs) = default;
59
60 DoubHEAD& operator=(const DoubHEAD& rhs) = default;
61 DoubHEAD& operator=(DoubHEAD&& rhs) = default;
62
64 const double cnvT);
65
67 DoubHEAD& nextStep(const double nextTimeStep);
68
69 DoubHEAD& drsdt(const Schedule& sched,
70 const std::size_t lookup_step,
71 const double cnvT);
72
73 DoubHEAD& udq_param(const UDQParams& udqPar);
75
76 const std::vector<double>& data() const
77 {
78 return this->data_;
79 }
80
81 private:
82 std::vector<double> data_;
83 };
84
85}} // Opm::RestartIO
86
87#endif // OPM_DOUBHEAD_HEADER_INCLUDED
Definition: doubhead.hpp:36
DoubHEAD(const DoubHEAD &rhs)=default
DoubHEAD & guide_rate_param(const guideRate &guide_rp)
DoubHEAD & nextStep(const double nextTimeStep)
const std::vector< double > & data() const
Definition: doubhead.hpp:76
DoubHEAD & operator=(DoubHEAD &&rhs)=default
DoubHEAD(DoubHEAD &&rhs)=default
DoubHEAD & udq_param(const UDQParams &udqPar)
DoubHEAD & timeStamp(const TimeStamp &ts)
DoubHEAD & drsdt(const Schedule &sched, const std::size_t lookup_step, const double cnvT)
DoubHEAD & tuningParameters(const Tuning &tuning, const double cnvT)
DoubHEAD & operator=(const DoubHEAD &rhs)=default
Definition: Schedule.hpp:113
Definition: UDQParams.hpp:31
Definition: A.hpp:4
Definition: doubhead.hpp:38
std::chrono::duration< double, std::chrono::seconds::period > elapsed
Definition: doubhead.hpp:40
std::chrono::time_point< std::chrono::system_clock > start
Definition: doubhead.hpp:39
Definition: doubhead.hpp:43
double E
Definition: doubhead.hpp:48
double D
Definition: doubhead.hpp:47
double damping_fact
Definition: doubhead.hpp:51
double delay
Definition: doubhead.hpp:50
double C
Definition: doubhead.hpp:46
double A
Definition: doubhead.hpp:44
double F
Definition: doubhead.hpp:49
double B
Definition: doubhead.hpp:45
Definition: Tuning.hpp:27