FlowProblemCompProperties.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_PROBLEM_COMP_PROPERTIES_HPP
29#define OPM_FLOW_PROBLEM_COMP_PROPERTIES_HPP
30
31
32#include <opm/material/fluidmatrixinteractions/EclMaterialLawManager.hpp>
33
35
37
38#include <tuple>
39
40namespace Opm {
41template <class TypeTag>
42class FlowProblemComp;
43}
44
45namespace Opm::Properties {
46
47namespace TTag {
48
50 using InheritsFrom = std::tuple<FlowBaseProblem>;
51};
52
53}
54// Set the problem property
55template<class TypeTag>
56struct Problem<TypeTag, TTag::FlowBaseProblemComp>
58
59template<class TypeTag>
60struct TracerModel<TypeTag, TTag::FlowBaseProblemComp> {
62};
63
64// Set the material law for fluid fluxes
65template<class TypeTag>
66struct MaterialLaw<TypeTag, TTag::FlowBaseProblemComp>
67{
68private:
71
72 // using Traits = ThreePhaseMaterialTraits<Scalar,
73 // /*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
74 // /*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
75 // /*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
76
77 // TODO: We should be able to use FluidSystem here and using Indices to handle the active phases
78 // some more development is needed
79 using Traits = ThreePhaseMaterialTraits<Scalar,
80 /*wettingPhaseIdx=*/ 0,
81 /*nonWettingPhaseIdx=*/ 1,
82 /*gasPhaseIdx=*/ 2>;
83
84public:
85 using EclMaterialLawManager = ::Opm::EclMaterialLawManager<Traits>;
86
87 using type = typename EclMaterialLawManager::MaterialLaw;
88};
89
90// Enable diffusion
91template<class TypeTag>
92struct EnableDiffusion<TypeTag, TTag::FlowBaseProblemComp>
93{ static constexpr bool value = false; };
94
95} // namespace Opm::Properties
96#endif // OPM_FLOW_PROBLEM_COMP_PROPERTIES_HPP
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblemComp.hpp:56
A class which handles tracers as specified in by ECL.
Definition: TracerModel.hpp:68
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.
Enable diffusive fluxes?
Definition: multiphasebaseproperties.hh:79
typename EclMaterialLawManager::MaterialLaw type
Definition: FlowProblemCompProperties.hpp:87
::Opm::EclMaterialLawManager< Traits > EclMaterialLawManager
Definition: FlowProblemCompProperties.hpp:85
The material law which ought to be used (extracted from the spatial parameters)
Definition: multiphasebaseproperties.hh:51
The type of the problem.
Definition: fvbaseproperties.hh:81
Definition: FlowProblemCompProperties.hpp:49
std::tuple< FlowBaseProblem > InheritsFrom
Definition: FlowProblemCompProperties.hpp:50
Definition: FlowBaseProblemProperties.hpp:87