Aquifetp.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2017 TNO
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_AQUIFERFETP_HPP
21#define OPM_AQUIFERFETP_HPP
22
23/*
24 The Aquiferfetp which stands for AquiferFetkovich is a data container object meant to hold the data for the fetkovich aquifer model.
25 This includes the logic for parsing as well as the associated tables. It is meant to be used by opm-grid and opm-simulators in order to
26 implement the Fetkovich analytical aquifer model in OPM Flow.
27*/
28#include <vector>
29
30
31namespace Opm {
32
33class Deck;
34class DeckRecord;
35
36class Aquifetp {
37 public:
38
40 AQUFETP_data(const DeckRecord& record);
41 AQUFETP_data() = default;
42 AQUFETP_data(int aquiferID_, int pvttableID_, double J_, double C_t_, double V0_, double d0_, const std::pair<bool, double>& p0_);
43 bool operator==(const AQUFETP_data& other) const;
44
47 double J, // Specified Productivity Index
48 C_t, // total rock compressibility
49 V0, // initial volume of water in aquifer
50 d0; // aquifer datum depth
51 std::pair<bool, double> p0;
52
53 template<class Serializer>
54 void serializeOp(Serializer& serializer)
55 {
56 serializer(aquiferID);
57 serializer(pvttableID);
58 serializer(J);
59 serializer(C_t);
60 serializer(V0);
61 serializer(d0);
62 serializer(p0);
63 }
64 };
65
66 Aquifetp() = default;
67 Aquifetp(const Deck& deck);
68 Aquifetp(const std::vector<Aquifetp::AQUFETP_data>& data);
69
71
72 const std::vector<Aquifetp::AQUFETP_data>& data() const;
73
74 std::size_t size() const;
75 std::vector<Aquifetp::AQUFETP_data>::const_iterator begin() const;
76 std::vector<Aquifetp::AQUFETP_data>::const_iterator end() const;
77 bool operator==(const Aquifetp& other) const;
78
79 template<class Serializer>
80 void serializeOp(Serializer& serializer)
81 {
82 serializer.vector(m_aqufetp);
83 }
84
85private:
86 std::vector<Aquifetp::AQUFETP_data> m_aqufetp;
87};
88}
89
90
91#endif
Definition: Aquifetp.hpp:36
std::vector< Aquifetp::AQUFETP_data >::const_iterator begin() const
const std::vector< Aquifetp::AQUFETP_data > & data() const
static Aquifetp serializeObject()
Aquifetp()=default
Aquifetp(const Deck &deck)
bool operator==(const Aquifetp &other) const
std::size_t size() const
Aquifetp(const std::vector< Aquifetp::AQUFETP_data > &data)
void serializeOp(Serializer &serializer)
Definition: Aquifetp.hpp:80
std::vector< Aquifetp::AQUFETP_data >::const_iterator end() const
Definition: Deck.hpp:115
Definition: DeckRecord.hpp:32
Definition: Serializer.hpp:38
Definition: A.hpp:4
Definition: Aquifetp.hpp:39
double d0
Definition: Aquifetp.hpp:50
int pvttableID
Definition: Aquifetp.hpp:46
double C_t
Definition: Aquifetp.hpp:48
double J
Definition: Aquifetp.hpp:47
void serializeOp(Serializer &serializer)
Definition: Aquifetp.hpp:54
int aquiferID
Definition: Aquifetp.hpp:45
AQUFETP_data(const DeckRecord &record)
double V0
Definition: Aquifetp.hpp:49
std::pair< bool, double > p0
Definition: Aquifetp.hpp:51
AQUFETP_data(int aquiferID_, int pvttableID_, double J_, double C_t_, double V0_, double d0_, const std::pair< bool, double > &p0_)
bool operator==(const AQUFETP_data &other) const