FlowProblemBlackoilProperties.hpp
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
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 2 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 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
28#ifndef OPM_FLOW_BASE_PROBLEM_BLACKOIL_PROPERTIES_HPP
29#define OPM_FLOW_BASE_PROBLEM_BLACKOIL_PROPERTIES_HPP
30
31
32#include <opm/material/fluidmatrixinteractions/EclMaterialLawManager.hpp>
33
35
41
42
43#include <tuple>
44
45namespace Opm {
46template <class TypeTag>
47class FlowProblemBlackoil;
48}
49
50namespace Opm::Properties {
51
52namespace TTag {
53
55 using InheritsFrom = std::tuple<FlowBaseProblem>;
56};
57
58}
59
60// Set the problem property
61template<class TypeTag>
62struct NonlinearSystem<TypeTag, TTag::FlowBaseProblemBlackoil>
64
65
66template<class TypeTag>
67struct Problem<TypeTag, TTag::FlowBaseProblemBlackoil>
69
70template<class TypeTag>
71struct Model<TypeTag, TTag::FlowBaseProblemBlackoil>
73
74// Set the material law for fluid fluxes
75template<class TypeTag>
76struct MaterialLaw<TypeTag, TTag::FlowBaseProblem>
77{
78private:
81
82 using Traits = ThreePhaseMaterialTraits<Scalar,
83 /*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
84 /*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
85 /*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
86
87public:
88 using EclMaterialLawManager = ::Opm::EclMaterialLawManager<Traits>;
89
90 using type = typename EclMaterialLawManager::MaterialLaw;
91};
92
93// Use the "velocity module" which uses the Eclipse "NEWTRAN" transmissibilities
94template<class TypeTag>
95struct FluxModule<TypeTag, TTag::FlowBaseProblemBlackoil>
97
98// Use the dummy gradient calculator in order not to do unnecessary work.
99template<class TypeTag>
100struct GradientCalculator<TypeTag, TTag::FlowBaseProblemBlackoil>
102
103} // namespace Opm::Properties
104
105#endif // OPM_FLOW_BASE_PROBLEM_BLACKOIL_PROPERTIES_HPP
This file contains the flux module which is used for flow problems.
Definition: BlackoilModel.hpp:62
This is a "dummy" gradient calculator which does not do anything.
Definition: DummyGradientCalculator.hpp:50
Definition: FIBlackoilModel.hpp:50
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblemBlackoil.hpp:81
Definition: blackoilmodel.hh:79
Definition: blackoilboundaryratevector.hh:39
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:233
The Opm property system, traits with inheritance.
Specifies a flux module which uses ECL transmissibilities.
Definition: NewTranFluxModule.hpp:68
Specifies the relation used for velocity.
Definition: multiphasebaseproperties.hh:83
Calculates gradients of arbitrary quantities at flux integration points.
Definition: fvbaseproperties.hh:152
::Opm::EclMaterialLawManager< Traits > EclMaterialLawManager
Definition: FlowProblemBlackoilProperties.hpp:88
typename EclMaterialLawManager::MaterialLaw type
Definition: FlowProblemBlackoilProperties.hpp:90
The material law which ought to be used (extracted from the spatial parameters)
Definition: multiphasebaseproperties.hh:55
The type of the model.
Definition: basicproperties.hh:88
Definition: FlowBaseProblemProperties.hpp:61
The type of the problem.
Definition: fvbaseproperties.hh:81
Definition: FlowProblemBlackoilProperties.hpp:54
std::tuple< FlowBaseProblem > InheritsFrom
Definition: FlowProblemBlackoilProperties.hpp:55