3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
freeflow/navierstokes/problem.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 *****************************************************************************/
24#ifndef DUMUX_NAVIERSTOKES_PROBLEM_HH
25#define DUMUX_NAVIERSTOKES_PROBLEM_HH
26
27#warning "This header is deprecated and will be removed after release 3.6. Use the new mass and momentum problem headers"
28
29#include <dune/common/exceptions.hh>
30#include <dune/common/typetraits.hh>
36
37namespace Dumux {
38
40template<class TypeTag, class DiscretizationMethod> struct NavierStokesParentProblemImpl;
41
42// compatibility with old-style Navier-Stokes models
43template<class TypeTag>
44struct [[deprecated("Will be removed after 3.6. Directly use StaggeredFVProblem.")]]
45NavierStokesParentProblemImpl<TypeTag, DiscretizationMethods::Staggered>
46{
48};
49
51template<class TypeTag>
52using NavierStokesParentProblem [[deprecated("Will be removed after 3.6. Directly use StaggeredFVProblem.")]]
55>::type;
56
57template<class TypeTag, class DiscretizationMethod>
59
60template<class TypeTag>
61class [[deprecated("Class will be removed after 3.6. Use new staggered problem.")]]
62NavierStokesProblemImpl<TypeTag, DiscretizationMethods::Staggered>
63 : public NavierStokesStaggeredProblem<TypeTag>
64{
67
68public:
74 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
75 const std::string& paramGroup = "")
76 : ParentType(gridGeometry, paramGroup)
77 {}
78};
79
80template<class TypeTag>
81class [[deprecated("Class will be removed after 3.6. Use matching momentum problem.")]]
82NavierStokesProblemImpl<TypeTag, DiscretizationMethods::FCStaggered>
83 : public NavierStokesMomentumProblemImpl<TypeTag, DiscretizationMethods::FCStaggered>
84{
88
89public:
93 using InitialValues = typename ParentType::InitialValues;
94 using Sources = typename ParentType::Sources;
95 using DirichletValues = typename ParentType::DirichletValues;
96 using BoundaryFluxes = typename ParentType::BoundaryFluxes;
97
98 using MomentumFluxType = typename ParentType::MomentumFluxType;
99
102
103 using ParentType::isMomentumProblem;
104
111 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
112 std::shared_ptr<CouplingManager> couplingManager,
113 const std::string& paramGroup = "")
114 : ParentType(gridGeometry, couplingManager, paramGroup)
115 {}
116
122 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
123 const std::string& paramGroup = "")
124 : ParentType(gridGeometry, paramGroup)
125 {}
126};
127
128template<class TypeTag>
129class [[deprecated("Class will be removed after 3.6. Use matching momentum problem.")]]
130NavierStokesProblemImpl<TypeTag, DiscretizationMethods::FCDiamond>
131 : public NavierStokesMomentumProblemImpl<TypeTag, DiscretizationMethods::FCDiamond>
132{
136
137public:
141 using InitialValues = typename ParentType::InitialValues;
142 using Sources = typename ParentType::Sources;
143 using DirichletValues = typename ParentType::DirichletValues;
144 using BoundaryFluxes = typename ParentType::BoundaryFluxes;
145
147 using BoundaryTypes = typename ParentType::BoundaryTypes;
148
149 using ParentType::isMomentumProblem;
150
157 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
158 std::shared_ptr<CouplingManager> couplingManager,
159 const std::string& paramGroup = "")
160 : ParentType(gridGeometry, couplingManager, paramGroup)
161 {}
162
168 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
169 const std::string& paramGroup = "")
170 : ParentType(gridGeometry, paramGroup)
171 {}
172};
173
174template<class TypeTag>
175class [[deprecated("Class will be removed after 3.6. Use matching mass problem.")]]
176NavierStokesProblemImpl<TypeTag, DiscretizationMethods::CCTpfa>
177 : public NavierStokesMassProblemImpl<TypeTag, DiscretizationMethods::CCTpfa>
178{
182
183public:
187 using InitialValues = typename ParentType::InitialValues;
188 using Sources = typename ParentType::Sources;
189 using DirichletValues = typename ParentType::DirichletValues;
190 using BoundaryFluxes = typename ParentType::BoundaryFluxes;
191
194
195 using ParentType::isMomentumProblem;
196
203 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
204 std::shared_ptr<CouplingManager> couplingManager,
205 const std::string& paramGroup = "")
206 : ParentType(gridGeometry, couplingManager, paramGroup)
207 {}
208
214 NavierStokesProblemImpl(std::shared_ptr<const GridGeometry> gridGeometry,
215 const std::string& paramGroup = "")
216 : ParentType(gridGeometry, paramGroup)
217 {}
218};
219
226template<class TypeTag>
227using NavierStokesProblem [[deprecated("Will be removed after 3.6. Use matching mass or momentum problem.")]]
229
230} // end namespace Dumux
231
232#endif
The available discretization methods in Dumux.
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
typename NavierStokesParentProblemImpl< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >::type NavierStokesParentProblem
The actual NavierStokesParentProblem.
Definition: freeflow/navierstokes/problem.hh:55
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:180
CVFE< CVFEMethods::CR_RT > FCDiamond
Definition: method.hh:90
constexpr Staggered staggered
Definition: method.hh:138
Class to specify the type of a boundary.
Definition: common/boundarytypes.hh:38
Base class for all finite-volume problems.
Definition: common/fvproblem.hh:55
Base class for all staggered finite-volume problems.
Definition: staggeredfvproblem.hh:48
Definition: freeflow/navierstokes/mass/problem.hh:39
Definition: freeflow/navierstokes/momentum/problem.hh:38
Dune::FieldVector< Scalar, dimWorld > MomentumFluxType
Definition: freeflow/navierstokes/momentum/problem.hh:84
Dune::FieldVector< Scalar, dimWorld > InitialValues
Definition: freeflow/navierstokes/momentum/problem.hh:79
Dune::FieldVector< Scalar, dimWorld > BoundaryFluxes
Definition: freeflow/navierstokes/momentum/problem.hh:82
Dune::FieldVector< Scalar, dimWorld > DirichletValues
Definition: freeflow/navierstokes/momentum/problem.hh:81
Dune::FieldVector< Scalar, dimWorld > Sources
Definition: freeflow/navierstokes/momentum/problem.hh:80
The implementation is specialized for the different discretizations.
Definition: freeflow/navierstokes/problem.hh:40
Definition: freeflow/navierstokes/problem.hh:58
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
The constructor for usage without a coupling manager.
Definition: freeflow/navierstokes/problem.hh:74
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
The constructor for usage without a coupling manager.
Definition: freeflow/navierstokes/problem.hh:122
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< CouplingManager > couplingManager, const std::string &paramGroup="")
The constructor.
Definition: freeflow/navierstokes/problem.hh:111
typename ParentType::DirichletValues DirichletValues
Definition: freeflow/navierstokes/problem.hh:143
typename ParentType::BoundaryFluxes BoundaryFluxes
Definition: freeflow/navierstokes/problem.hh:144
typename ParentType::BoundaryTypes BoundaryTypes
Export the boundary types.
Definition: freeflow/navierstokes/problem.hh:147
typename ParentType::Sources Sources
Definition: freeflow/navierstokes/problem.hh:142
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< CouplingManager > couplingManager, const std::string &paramGroup="")
The constructor.
Definition: freeflow/navierstokes/problem.hh:157
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
The constructor for usage without a coupling manager.
Definition: freeflow/navierstokes/problem.hh:168
typename ParentType::InitialValues InitialValues
Definition: freeflow/navierstokes/problem.hh:141
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< CouplingManager > couplingManager, const std::string &paramGroup="")
The constructor.
Definition: freeflow/navierstokes/problem.hh:203
typename ParentType::DirichletValues DirichletValues
Definition: freeflow/navierstokes/problem.hh:189
typename ParentType::BoundaryFluxes BoundaryFluxes
Definition: freeflow/navierstokes/problem.hh:190
typename ParentType::InitialValues InitialValues
Definition: freeflow/navierstokes/problem.hh:187
NavierStokesProblemImpl(std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
The constructor for usage without a coupling manager.
Definition: freeflow/navierstokes/problem.hh:214
typename ParentType::Sources Sources
Definition: freeflow/navierstokes/problem.hh:188
Navier-Stokes staggered problem base class.
Definition: freeflow/navierstokes/staggered/problem.hh:45
Declares all properties used in Dumux.