GCC Code Coverage Report


Directory: ../../../builds/dumux-repositories/
File: /builds/dumux-repositories/dumux/test/porenetwork/1p/noncreepingflow/spatialparams.hh
Date: 2024-09-21 20:52:54
Exec Total Coverage
Lines: 3 13 23.1%
Functions: 0 9 0.0%
Branches: 1 8 12.5%

Line Branch Exec Source
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 // SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 /*!
8 * \file
9 * \ingroup PoreNetworkModels
10 * \ingroup SpatialParameters
11 * \brief Spatial parameters for a pore-network model with non-creeping flow.
12 */
13 #ifndef DUMUX_PNM_NONCREEPING_SPATIAL_PARAMS_1P_HH
14 #define DUMUX_PNM_NONCREEPING_SPATIAL_PARAMS_1P_HH
15
16 #include <dumux/porenetwork/common/spatialparams.hh>
17 #include <dumux/porenetwork/common/poreproperties.hh>
18 #include <dumux/porenetwork/common/throatproperties.hh>
19
20 namespace Dumux::PoreNetwork {
21
22 template<class GridGeometry, class Scalar>
23
1/6
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
2 class NonCreepingSpatialParams : public SpatialParams<GridGeometry, Scalar, NonCreepingSpatialParams<GridGeometry, Scalar>>
24 {
25 using ParentType = SpatialParams<GridGeometry, Scalar, NonCreepingSpatialParams<GridGeometry, Scalar>>;
26
27 using GridView = typename GridGeometry::GridView;
28 using Element = typename GridView::template Codim<0>::Entity;
29 using FVElementGeometry = typename GridGeometry::LocalView;
30 using SubControlVolume = typename GridGeometry::SubControlVolume;
31
32 public:
33 using PermeabilityType = Scalar;
34 using ParentType::ParentType;
35
36 template<class ElementSolutionVector>
37 auto temperature(const Element& element,
38 const SubControlVolume& scv,
39 const ElementSolutionVector& elemSol) const
40 { return 273.15 + 10.0; }
41
42 template<class ElementSolutionVector>
43 auto extrusionFactor(const Element& element,
44 const SubControlVolume& scv,
45 const ElementSolutionVector& elemSol) const
46 { return 1.0; }
47
48 template<class ElementSolutionVector>
49 auto poreShapeFactor(const Element& element,
50 const SubControlVolume& scv,
51 const ElementSolutionVector& elemSol) const
52 {
53 return Throat::shapeFactorCircle<Scalar>();
54 }
55
56 template<class ElementSolutionVector>
57 Scalar poreCrossSectionalArea(const Element& element,
58 const SubControlVolume& scv,
59 const ElementSolutionVector& elemSol) const
60 {
61 126588 const auto poreRadius = this->gridGeometry().poreInscribedRadius(scv.dofIndex());
62 63294 return poreRadius*poreRadius*M_PI;
63 }
64
65 template<class ElementSolutionVector>
66 Scalar poreLength(const Element& element,
67 const SubControlVolume& scv,
68 const ElementSolutionVector& elemSol) const
69 {
70 return this->gridGeometry().poreInscribedRadius(scv.dofIndex());
71 }
72
73 // dimensionless kinetic-energy coefficient which for non-creeping flow is equal to 1.0
74 template<class ElementSolutionVector>
75 Scalar kineticEnergyCoefficient(const Element& element,
76 const SubControlVolume& scv,
77 const ElementSolutionVector& elemSol) const
78 { return 1.0; }
79
80 // dimensionless momentum coefficient which for non-creeping flow is equal to 1.0
81 template<class ElementSolutionVector>
82 Scalar momentumCoefficient(const Element& element,
83 const SubControlVolume& scv,
84 const ElementSolutionVector& elemSol) const
85 { return 1.0; }
86
87 };
88 } // end namespace Dumux::PoreNetwork
89
90 #endif
91