opm-simulators
Toggle main menu visibility
Loading...
Searching...
No Matches
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
34
#include <
opm/models/utils/propertysystem.hh
>
35
36
#include <
opm/simulators/flow/FlowBaseProblemProperties.hpp
>
37
38
#include <tuple>
39
40
namespace
Opm
{
41
template
<
class
TypeTag>
42
class
FlowProblemComp
;
43
}
44
45
namespace
Opm::Properties {
46
47
namespace
TTag
{
48
49
struct
FlowBaseProblemComp
{
50
using
InheritsFrom = std::tuple<FlowBaseProblem>;
51
};
52
53
}
54
// Set the problem property
55
template
<
class
TypeTag>
56
struct
Problem
<TypeTag,
TTag
::FlowBaseProblemComp>
57
{
using
type =
FlowProblemComp<TypeTag>
; };
58
59
template
<
class
TypeTag>
60
struct
TracerModel
<TypeTag,
TTag
::FlowBaseProblemComp> {
61
using
type =
::Opm::TracerModel<TypeTag>
;
62
};
63
64
// Set the material law for fluid fluxes
65
template
<
class
TypeTag>
66
struct
MaterialLaw
<TypeTag,
TTag
::FlowBaseProblemComp>
67
{
68
private
:
69
using
Scalar =
GetPropType<TypeTag, Properties::Scalar>
;
70
using
FluidSystem =
GetPropType<TypeTag, Properties::FluidSystem>
;
71
72
using
Traits = ThreePhaseMaterialTraits<Scalar,
73
/*wettingPhaseIdx=*/
FluidSystem::waterPhaseIdx,
74
/*nonWettingPhaseIdx=*/
FluidSystem::oilPhaseIdx,
75
/*gasPhaseIdx=*/
FluidSystem::gasPhaseIdx,
76
/* hysteresis */
true
,
77
/* endpointscaling */
true
>;
78
79
public
:
80
using
EclMaterialLawManager = ::Opm::EclMaterialLaw::Manager<Traits>;
81
82
using
type =
typename
EclMaterialLawManager::MaterialLaw;
83
};
84
85
// Enable diffusion
86
template
<
class
TypeTag>
87
struct
EnableDiffusion
<TypeTag,
TTag
::FlowBaseProblemComp>
88
{
static
constexpr
bool
value =
false
; };
89
90
}
// namespace Opm::Properties
91
#endif
// OPM_FLOW_PROBLEM_COMP_PROPERTIES_HPP
FlowBaseProblemProperties.hpp
Opm::FlowProblemComp
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition
FlowProblemComp.hpp:60
Opm::TracerModel
A class which handles tracers as specified in by ECL.
Definition
TracerModel.hpp:75
Opm::Properties::TTag
The generic type tag for problems using the immiscible multi-phase model.
Definition
blackoilmodel.hh:81
Opm
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition
blackoilbioeffectsmodules.hh:43
Opm::GetPropType
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
propertysystem.hh
The Opm property system, traits with inheritance.
Opm::Properties::EnableDiffusion
Enable diffusive fluxes?
Definition
multiphasebaseproperties.hh:91
Opm::Properties::MaterialLaw
The material law which ought to be used (extracted from the spatial parameters).
Definition
multiphasebaseproperties.hh:55
Opm::Properties::Problem
The type of the problem.
Definition
fvbaseproperties.hh:81
Opm::Properties::TTag::FlowBaseProblemComp
Definition
FlowProblemCompProperties.hpp:49
Opm::Properties::TracerModel
Definition
FlowBaseProblemProperties.hpp:102
opm
simulators
flow
FlowProblemCompProperties.hpp
Generated by
1.17.0