3.2-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
71template<class TypeTag>
73
74// TODO: bundle SolutionVector, JacobianMatrix
75// in LinearAlgebra traits
76
78template<class TypeTag>
79struct SolutionVector<TypeTag, TTag::FiniteVolumeModel> { using type = Dune::BlockVector<GetPropType<TypeTag, Properties::PrimaryVariables>>; };
80
82template<class TypeTag>
83struct JacobianMatrix<TypeTag, TTag::FiniteVolumeModel>
84{
85private:
88 using MatrixBlock = typename Dune::FieldMatrix<Scalar, numEq, numEq>;
89public:
91};
92
93} // namespace Properties
94} // namespace Dumux
95
96 #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 (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Class to specify the type of a boundary.
Definition: common/boundarytypes.hh:38
Type of the global jacobian matrix.
Definition: common/properties.hh:80
Vector containing all primary variable vector of the grid.
Definition: common/properties.hh:82
Stores the boundary types of a single degree of freedom.
Definition: common/properties.hh:84
Definition: common/properties.hh:115
If disabled, the volume variables are not stored (reduces memory, but is slower)
Definition: common/properties.hh:122
specifies if data on flux vars should be saved (faster, but more memory consuming)
Definition: common/properties.hh:132
The grid variables object managing variable data on the grid (volvars/fluxvars cache)
Definition: common/properties.hh:134
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:79
typename Dune::BCRSMatrix< MatrixBlock > type
Definition: fvproperties.hh:90
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 ...