3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
porousmediumflow/boxdfm/model.hh
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 * See the file COPYING for full copying permissions. *
5 * *
6 * This program 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 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
25
26#ifndef DUMUX_POROUSMEDIUMFLOW_BOXDFM_MODEL_HH
27#define DUMUX_POROUSMEDIUMFLOW_BOXDFM_MODEL_HH
28
30
31#include "fvgridgeometry.hh"
32#include "fluxvariablescache.hh"
33
34namespace Dumux {
35namespace Properties {
36
38// Create new type tags
39namespace TTag {
40struct BoxDfmModel { using InheritsFrom = std::tuple<BoxModel>; };
41} // end namespace TTag
42
43// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
44// For ensuring backward compatibility on the user side, it is necessary to
45// stick to the old name for the specializations, see the discussion in MR 1647.
46// Use diagnostic pragmas to prevent the emission of a warning message.
47// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
48#pragma GCC diagnostic push
49#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
51template<class TypeTag>
52struct FVGridGeometry<TypeTag, TTag::BoxDfmModel>
53{
54private:
55 static constexpr bool enableCache = getPropValue<TypeTag, Properties::EnableGridGeometryCache>();
58public:
60};
61#pragma GCC diagnostic pop
62
64template<class TypeTag>
65struct FluxVariablesCache<TypeTag, TTag::BoxDfmModel> { using type = BoxDfmFluxVariablesCache<TypeTag>; };
66
67} // namespace Properties
68} // namespace Dumux
69
70#endif
Defines a type tag and some properties for models using the box scheme.
make the local view function available whenever we use the grid geometry
Definition adapt.hh:29
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:153
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:149
Definition common/properties.hh:47
Type tag for numeric models.
Definition grid.hh:35
The type of the global finite volume geometry.
Definition common/properties.hh:125
Stores data associated with flux vars.
Definition common/properties.hh:182
We only store discretization-related quantities for the box method. However, we cannot reuse the cach...
Definition porousmediumflow/boxdfm/fluxvariablescache.hh:45
Base class for the finite volume geometry vector for box schemes.
Definition porousmediumflow/boxdfm/fvgridgeometry.hh:85
Definition porousmediumflow/boxdfm/model.hh:40
std::tuple< BoxModel > InheritsFrom
Definition porousmediumflow/boxdfm/model.hh:40
BoxDfmFVGridGeometry< Scalar, GridView, enableCache > type
Definition porousmediumflow/boxdfm/model.hh:59
BoxDfmFluxVariablesCache< TypeTag > type
Definition porousmediumflow/boxdfm/model.hh:65
Cache class for the flux variables to be used in conjunction with the box discrete fracture scheme.
Base class for the finite volume geometry vector for box schemes that consider extra connectivity bet...