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
40
41
42#include <tuple>
43
44namespace Opm {
45template <class TypeTag>
46class FlowProblemBlackoil;
47}
48
49namespace Opm::Properties {
50
51namespace TTag {
52
54 using InheritsFrom = std::tuple<FlowBaseProblem>;
55};
56
57}
58
59// Set the problem property
60template<class TypeTag>
61struct Problem<TypeTag, TTag::FlowBaseProblemBlackoil>
63
64template<class TypeTag>
65struct Model<TypeTag, TTag::FlowBaseProblemBlackoil>
67
68// Set the material law for fluid fluxes
69template<class TypeTag>
70struct MaterialLaw<TypeTag, TTag::FlowBaseProblem>
71{
72private:
75
76 using Traits = ThreePhaseMaterialTraits<Scalar,
77 /*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
78 /*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
79 /*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
80
81public:
82 using EclMaterialLawManager = ::Opm::EclMaterialLawManager<Traits>;
83
84 using type = typename EclMaterialLawManager::MaterialLaw;
85};
86
87// Use the "velocity module" which uses the Eclipse "NEWTRAN" transmissibilities
88template<class TypeTag>
89struct FluxModule<TypeTag, TTag::FlowBaseProblemBlackoil>
91
92// Use the dummy gradient calculator in order not to do unnecessary work.
93template<class TypeTag>
94struct GradientCalculator<TypeTag, TTag::FlowBaseProblemBlackoil>
96
97} // namespace Opm::Properties
98
99#endif // OPM_FLOW_BASE_PROBLEM_BLACKOIL_PROPERTIES_HPP
This file contains the flux module which is used for flow problems.
This is a "dummy" gradient calculator which does not do anything.
Definition: DummyGradientCalculator.hpp:50
Definition: FIBlackoilModel.hpp:44
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblemBlackoil.hpp:74
Definition: blackoilmodel.hh:72
Definition: blackoilboundaryratevector.hh:37
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:235
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:72
Calculates gradients of arbitrary quantities at flux integration points.
Definition: fvbaseproperties.hh:152
::Opm::EclMaterialLawManager< Traits > EclMaterialLawManager
Definition: FlowProblemBlackoilProperties.hpp:82
typename EclMaterialLawManager::MaterialLaw type
Definition: FlowProblemBlackoilProperties.hpp:84
The material law which ought to be used (extracted from the spatial parameters)
Definition: multiphasebaseproperties.hh:51
The type of the model.
Definition: basicproperties.hh:88
The type of the problem.
Definition: fvbaseproperties.hh:81
Definition: FlowProblemBlackoilProperties.hpp:53
std::tuple< FlowBaseProblem > InheritsFrom
Definition: FlowProblemBlackoilProperties.hpp:54