3.3.0
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
35
37
38namespace Dumux {
39namespace Properties {
40
42// Create new type tags
43namespace TTag {
44struct FiniteVolumeModel { using InheritsFrom = std::tuple<GridProperties>; };
45} // end namespace TTag
46
48template<class TypeTag>
49struct GridVariables<TypeTag, TTag::FiniteVolumeModel>
50{
51private:
55public:
57};
58
60template<class TypeTag>
61struct EnableGridGeometryCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
62
64template<class TypeTag>
65struct EnableGridVolumeVariablesCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
66
68template<class TypeTag>
69struct EnableGridFluxVariablesCache<TypeTag, TTag::FiniteVolumeModel> { static constexpr bool value = false; };
70
71DUNE_NO_DEPRECATED_BEGIN
73template<class TypeTag>
74struct BoundaryTypes<TypeTag, TTag::FiniteVolumeModel>
76DUNE_NO_DEPRECATED_END
77// TODO: bundle SolutionVector, JacobianMatrix
78// in LinearAlgebra traits
79
81template<class TypeTag>
82struct SolutionVector<TypeTag, TTag::FiniteVolumeModel> { using type = Dune::BlockVector<GetPropType<TypeTag, Properties::PrimaryVariables>>; };
83
85template<class TypeTag>
86struct JacobianMatrix<TypeTag, TTag::FiniteVolumeModel>
87{
88private:
91 using MatrixBlock = typename Dune::FieldMatrix<Scalar, numEq, numEq>;
92public:
94};
95
96} // namespace Properties
97} // namespace Dumux
98
99 #endif
Defines a type tags and some fundamental grid-related properties.
Helpers for deprecation.
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:67
Vector containing all primary variable vector of the grid.
Definition: common/properties.hh:69
Stores the boundary types of a single degree of freedom.
Definition: common/properties.hh:72
Definition: common/properties.hh:103
If disabled, the volume variables are not stored (reduces memory, but is slower)
Definition: common/properties.hh:110
specifies if data on flux vars should be saved (faster, but more memory consuming)
Definition: common/properties.hh:120
The grid variables object managing variable data on the grid (volvars/fluxvars cache)
Definition: common/properties.hh:122
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:44
std::tuple< GridProperties > InheritsFrom
Definition: fvproperties.hh:44
Dune::BlockVector< GetPropType< TypeTag, Properties::PrimaryVariables > > type
Definition: fvproperties.hh:82
typename Dune::BCRSMatrix< MatrixBlock > type
Definition: fvproperties.hh:93
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 ...