3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
porousmediumflow/sequential/cellcentered/mpfa/properties.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 *****************************************************************************/
19
27#ifndef DUMUX_FVMPFAPROPERTIES_HH
28#define DUMUX_FVMPFAPROPERTIES_HH
29
30// dumux environment
32#include <dune/grid/yaspgrid.hh>
33#if HAVE_DUNE_ALUGRID
34#include <dune/alugrid/grid.hh>
35#endif
36#if HAVE_UG
37#include <dune/grid/uggrid.hh>
38#endif
39
40namespace Dumux
41{
48{
49public:
50 //
51 static const int any = 0;
52 //YaspGrid
53 static const int yaspGrid = 2;
54 //UGGrid
55 static const int ugGrid = 3;
56 //ALUGrid
57 static const int aluGrid = 4;
58};
60template<class Grid, int dim>
61struct GridImp
62{
63 static const int imp = GridTypes::any;
64};
65
66template<int dim>
67struct GridImp<Dune::YaspGrid<dim>, dim>
68{
69 static const int imp = GridTypes::yaspGrid;
70};
71
72#if HAVE_DUNE_ALUGRID
73template<int dim>
74struct GridImp<Dune::ALUGrid<dim, dim, Dune::cube, Dune::nonconforming>, dim>
75{
76 static const int imp = GridTypes::aluGrid;
77};
78#endif
79
80#if HAVE_UG
81template<int dim>
82struct GridImp<Dune::UGGrid<dim>, dim>
83{
84 static const int imp = GridTypes::ugGrid;
85};
86#endif
88
89namespace Properties
90{
93
99}
100}
101
102namespace Dumux
103{
104namespace Properties
105{
106
108template<class TypeTag>
109struct GridImplementation<TypeTag, TTag::MPFAProperties>
110{
111private:
112 using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
113public:
114 static const int value = GridImp<Grid, Grid::dimension>::imp;
115};
117
120}
121}// end of Dune namespace
122#endif
#define GET_PROP_TYPE(TypeTag, PropTagName)
Definition: propertysystemmacros.hh:283
#define NEW_TYPE_TAG(...)
Definition: propertysystemmacros.hh:130
#define NEW_PROP_TAG(PTagName)
Define a property tag.
Definition: propertysystemmacros.hh:159
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
Property tag GridImplementation
Gives kind of grid implementation in form of a GridType.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:95
SET_TYPE_PROP(FVPressureOneP, Velocity, FVVelocity1P< TypeTag >)
Set velocity reconstruction implementation standard cell centered finite volume schemes as default.
Property tag MPFAInteractionVolumeContainer
Type of the data container for one interaction volume.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:97
Type tag MPFAProperties
Basic Type tag for MFPA models.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:92
Property tag MPFATransmissibilityCalculator
Type defining the transmissibility calculation.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:98
Property tag MPFAInteractionVolume
Type of the data container for one interaction volume.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:96
Property tag GridTypeIndices
The grid type indices to decide which grid is used.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:94
Definition: common/properties/model.hh:34
Indices denoting the different grid types.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:48
static const int any
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:51
static const int ugGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:55
static const int yaspGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:53
static const int aluGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:57
Base file for properties related to sequential models.