My Project
Loading...
Searching...
No Matches
CarfinManager.hpp
1/*
2 Copyright 2022 Equinor
3 This file is part of the Open Porous Media project (OPM).
4 OPM is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8 OPM is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with OPM. If not, see <http://www.gnu.org/licenses/>.
14*/
15
16#ifndef CARFINMANAGER_HPP_
17#define CARFINMANAGER_HPP_
18
19#include <opm/input/eclipse/EclipseState/Grid/Carfin.hpp>
20#include <opm/input/eclipse/EclipseState/Grid/GridDims.hpp>
21
22#include <memory>
23#include <vector>
24
25namespace Opm {
26
28 {
29 public:
30 explicit CarfinManager(const GridDims& gridDims,
31 Carfin::IsActive isActive,
32 Carfin::ActiveIdx activeIdx);
33
34 void setInputCarfin(std::string name, int i1, int i2, int j1, int j2, int k1, int k2, int nx , int ny , int nz);
35 void readKeywordCarfin(std::string name, int i1, int i2, int j1, int j2, int k1, int k2, int nx , int ny , int nz);
36
37 void endSection();
38 void endInputCarfin();
39 void endKeyword();
40
41 const Carfin& getActiveCarfin() const;
42 const std::vector<Carfin::cell_index>& index_list() const;
43
44 private:
45 GridDims gridDims_{};
46 Carfin::IsActive isActive_{};
47 Carfin::ActiveIdx activeIdx_{};
48
49 std::unique_ptr<Carfin> m_globalCarfin;
50 std::unique_ptr<Carfin> m_inputCarfin;
51 std::unique_ptr<Carfin> m_keywordCarfin;
52
53 std::unique_ptr<Carfin>
54 makeLgr(std::string name, int i1, int i2,
55 int j1, int j2,
56 int k1, int k2,
57 int nx , int ny , int nz) const;
58 };
59}
60
61
62#endif
Definition CarfinManager.hpp:28
Definition Carfin.hpp:34
Definition GridDims.hpp:31
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30