3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
fvproperties.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#ifndef DUMUX_FV_PROPERTIES_HH
26#define DUMUX_FV_PROPERTIES_HH
27
28#include <dune/istl/bvector.hh>
29#include <dune/istl/bcrsmatrix.hh>
30
34
36
37namespace Dumux {
38namespace Properties {
39
41// Create new type tags
42namespace TTag {
43struct FiniteVolumeModel { using InheritsFrom = std::tuple<GridProperties>; };
44} // end namespace TTag
45
47template<class TypeTag>
48struct GridVariables<TypeTag, TTag::FiniteVolumeModel>
49{
50private:
54public:
56};
57
59template<class TypeTag>
60struct EnableGridGeometryCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
61
63template<class TypeTag>
64struct EnableGridVolumeVariablesCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
65
67template<class TypeTag>
68struct EnableGridFluxVariablesCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
69
70// TODO: bundle SolutionVector, JacobianMatrix
71// in LinearAlgebra traits
72
74template<class TypeTag>
75struct SolutionVector<TypeTag, TTag::FiniteVolumeModel> { using type = Dune::BlockVector<GetPropType<TypeTag, Properties::PrimaryVariables>>; };
76
78template<class TypeTag>
79struct JacobianMatrix<TypeTag, TTag::FiniteVolumeModel>
80{
81private:
84 using MatrixBlock = typename Dune::FieldMatrix<Scalar, numEq, numEq>;
85public:
87};
88
89} // namespace Properties
90} // namespace Dumux
91
92 #endif
Defines a type tags and some fundamental grid-related properties.
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:150
Type of the global jacobian matrix.
Definition: common/properties.hh:67
Vector containing all primary variable vector of the grid.
Definition: common/properties.hh:69
Definition: common/properties.hh:104
If disabled, the volume variables are not stored (reduces memory, but is slower)
Definition: common/properties.hh:111
specifies if data on flux vars should be saved (faster, but more memory consuming)
Definition: common/properties.hh:121
The grid variables object managing variable data on the grid (volvars/fluxvars cache)
Definition: common/properties.hh:123
Definition: matrix.hh:32
The grid variable class for finite volume schemes storing variables on scv and scvf (volume and flux ...
Definition: discretization/fvgridvariables.hh:42
Definition: fvproperties.hh:43
std::tuple< GridProperties > InheritsFrom
Definition: fvproperties.hh:43
Dune::BlockVector< GetPropType< TypeTag, Properties::PrimaryVariables > > type
Definition: fvproperties.hh:75
typename Dune::BCRSMatrix< MatrixBlock > type
Definition: fvproperties.hh:86
Class to specify the type of a boundary.
Declares all properties used in Dumux.
The grid variable class for finite volume schemes, storing variables on scv and scvf (volume and flux...