My Project
Loading...
Searching...
No Matches
NumericalAquiferConnection.hpp
1/*
2 Copyright (C) 2020 SINTEF Digital
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_NUMERICALAQUIFERCONNECTION_HPP
21#define OPM_NUMERICALAQUIFERCONNECTION_HPP
22
23#include <opm/input/eclipse/EclipseState/Grid/FaceDir.hpp>
24#include <map>
25#include <array>
26#include <vector>
27
28namespace Opm {
29
30 class EclipseGrid;
31 class Deck;
32 class DeckRecord;
33
35 // TODO: I do not think we need all the values here
36 size_t aquifer_id;
37 size_t I, J, K;
38 size_t global_index;
39 FaceDir::DirEnum face_dir;
40 double trans_multipler;
41 int trans_option;
42 bool connect_active_cell;
43
44 // The following are options related to VE simulation
45 double ve_frac_relperm;
46 double ve_frac_cappress;
47
48 NumericalAquiferConnection(size_t i, size_t j, size_t k, size_t global_index, bool allow_connect_active, const DeckRecord& record);
50
51 bool operator==(const NumericalAquiferConnection& other) const;
52
53 template<class Serializer>
54 void serializeOp(Serializer& serializer) {
55 serializer(this->aquifer_id);
56 serializer(this->I);
57 serializer(this->J);
58 serializer(this->K);
59 serializer(this->global_index);
60 serializer(this->face_dir);
61 serializer(this->trans_multipler);
62 serializer(this->trans_option);
63 serializer(this->connect_active_cell);
64 serializer(this->ve_frac_relperm);
65 serializer(this->ve_frac_cappress);
66 }
67
68 static std::map<size_t, std::map<size_t, NumericalAquiferConnection>>
69 generateConnections(const Deck& deck, const EclipseGrid& grid);
70 private:
71 static std::vector<NumericalAquiferConnection>
72 connectionsFromSingleRecord(const EclipseGrid& grid, const DeckRecord& record);
73 };
74}
75
76#endif //OPM_NUMERICALAQUIFERCONNECTION_HPP
Definition DeckRecord.hpp:32
Definition Deck.hpp:49
About cell information and dimension: The actual grid information is held in a pointer to an ERT ecl_...
Definition EclipseGrid.hpp:55
Class for (de-)serializing.
Definition Serializer.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition NumericalAquiferConnection.hpp:34