3.4
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
33#include <dune/grid/yaspgrid.hh>
34#if HAVE_DUNE_ALUGRID
35#include <dune/alugrid/grid.hh>
36#endif
37#if HAVE_DUNE_UGGRID
38#include <dune/grid/uggrid.hh>
39#endif
40
41namespace Dumux
42{
49{
50public:
51 //
52 static const int any = 0;
53 //YaspGrid
54 static const int yaspGrid = 2;
55 //UGGrid
56 static const int ugGrid = 3;
57 //ALUGrid
58 static const int aluGrid = 4;
59};
61template<class Grid, int dim>
62struct GridImp
63{
64 static const int imp = GridTypes::any;
65};
66
67template<int dim>
68struct GridImp<Dune::YaspGrid<dim>, dim>
69{
70 static const int imp = GridTypes::yaspGrid;
71};
72
73#if HAVE_DUNE_ALUGRID
74template<int dim>
75struct GridImp<Dune::ALUGrid<dim, dim, Dune::cube, Dune::nonconforming>, dim>
76{
77 static const int imp = GridTypes::aluGrid;
78};
79#endif
80
81#if HAVE_DUNE_UGGRID
82template<int dim>
83struct GridImp<Dune::UGGrid<dim>, dim>
84{
85 static const int imp = GridTypes::ugGrid;
86};
87#endif
89
90namespace Properties
91{
93namespace TTag {
95}
96
97template<class TypeTag, class MyTypeTag>
99template<class TypeTag, class MyTypeTag>
101template<class TypeTag, class MyTypeTag>
103template<class TypeTag, class MyTypeTag>
105template<class TypeTag, class MyTypeTag>
107}
108}
109
110namespace Dumux
111{
112namespace Properties
113{
114
116template<class TypeTag>
117struct GridImplementation<TypeTag, TTag::MPFAProperties>
118{
119private:
120 using Grid = GetPropType<TypeTag, Properties::Grid>;
121public:
122 static const int value = GridImp<Grid, Grid::dimension>::imp;
123};
125
127template<class TypeTag>
128struct GridTypeIndices<TypeTag, TTag::MPFAProperties> { using type = GridTypes; };
129}
130}// end of Dune namespace
131#endif
Definition: adapt.hh:29
Definition: common/pdesolver.hh:36
a tag to mark properties as undefined
Definition: propertysystem.hh:35
Indices denoting the different grid types.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:49
static const int any
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:52
static const int ugGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:56
static const int yaspGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:54
static const int aluGrid
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:58
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:94
The grid type indices to decide which grid is used.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:98
Gives kind of grid implementation in form of a GridType.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:100
Type of the data container for one interaction volume.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:102
Type of the data container for one interaction volume.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:104
Type defining the transmissibility calculation.
Definition: porousmediumflow/sequential/cellcentered/mpfa/properties.hh:106
Declares all properties used in Dumux.
Base file for properties related to sequential models.