3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
spatialparams_bloodflow.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_BlOOD_FLOW_SPATIALPARAMS_HH
26#define DUMUX_BlOOD_FLOW_SPATIALPARAMS_HH
27
29
30namespace Dumux {
31
36template<class GridGeometry, class Scalar>
38: public FVSpatialParamsOneP<GridGeometry, Scalar, BloodFlowSpatialParams<GridGeometry, Scalar>>
39{
42 using GlobalPosition = typename GridGeometry::GlobalCoordinate;
43
44public:
45 // export permeability type
46 using PermeabilityType = Scalar;
47
48 BloodFlowSpatialParams(std::shared_ptr<const GridGeometry> gridGeometry)
50 {
51 radius_ = getParam<Scalar>("SpatialParams.Radius");
52 }
53
59 PermeabilityType permeabilityAtPos(const GlobalPosition& ipGlobal) const
60 {
61 return (1 + ipGlobal[2] + 0.5*ipGlobal[2]*ipGlobal[2])/(M_PI*radius(0)*radius(0));
62 }
63
65 static constexpr bool evaluatePermeabilityAtScvfIP()
66 { return true; }
67
73 Scalar radius(unsigned int eIdxGlobal) const
74 {
75 return radius_;
76 }
77
83 Scalar porosityAtPos(const GlobalPosition& globalPos) const
84 {
85 return 1.0;
86 }
87
88private:
89 Scalar radius_;
90};
91
92} // end namespace Dumux
93
94#endif
The base class for spatial parameters of one-phase problems using a fully implicit discretization met...
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
The base class for spatial parameters of one-phase problems using a fully implicit discretization met...
Definition: fv1p.hh:77
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: fv1p.hh:334
Definition of the spatial parameters for the blood flow problem.
Definition: spatialparams_bloodflow.hh:39
Scalar PermeabilityType
Definition: spatialparams_bloodflow.hh:46
BloodFlowSpatialParams(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: spatialparams_bloodflow.hh:48
Scalar radius(unsigned int eIdxGlobal) const
Returns the radius of the circular pipe for the current sub-control volume in [m].
Definition: spatialparams_bloodflow.hh:73
PermeabilityType permeabilityAtPos(const GlobalPosition &ipGlobal) const
Returns the intrinsic permeability for the current sub-control volume in [m^2].
Definition: spatialparams_bloodflow.hh:59
static constexpr bool evaluatePermeabilityAtScvfIP()
we evaluate the permeability directly at the scvf since we have an analytical expression for it
Definition: spatialparams_bloodflow.hh:65
Scalar porosityAtPos(const GlobalPosition &globalPos) const
Returns the porosity .
Definition: spatialparams_bloodflow.hh:83