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-FileCopyrightText: 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 CVFEDiscretization | ||
10 | * \brief The local volume variables class | ||
11 | */ | ||
12 | #ifndef DUMUX_DISCRETIZATION_CVFE_ELEMENT_VOLUMEVARIABLES_HH | ||
13 | #define DUMUX_DISCRETIZATION_CVFE_ELEMENT_VOLUMEVARIABLES_HH | ||
14 | |||
15 | #include <type_traits> | ||
16 | #include <utility> | ||
17 | #include <vector> | ||
18 | |||
19 | #include <dumux/discretization/elementsolution.hh> | ||
20 | |||
21 | namespace Dumux { | ||
22 | |||
23 | /*! | ||
24 | * \ingroup CVFEDiscretization | ||
25 | * \brief The local (stencil) volume variables class for control-volume finite element | ||
26 | * \note The class is specialized for versions with and without caching | ||
27 | * \tparam GVV the grid volume variables type | ||
28 | * \tparam cachingEnabled if the cache is enabled | ||
29 | */ | ||
30 | template<class GVV, bool cachingEnabled> | ||
31 | class CVFEElementVolumeVariables; | ||
32 | |||
33 | /*! | ||
34 | * \ingroup CVFEDiscretization | ||
35 | * \brief The local (stencil) volume variables class for control-volume finite element with caching | ||
36 | * \note the volume variables are stored for the whole grid view in the corresponding GridVolumeVariables class | ||
37 | */ | ||
38 | template<class GVV> | ||
39 | class CVFEElementVolumeVariables<GVV, /*cachingEnabled*/true> | ||
40 | { | ||
41 | public: | ||
42 | //! export type of the grid volume variables | ||
43 | using GridVolumeVariables = GVV; | ||
44 | |||
45 | //! export type of the volume variables | ||
46 | using VolumeVariables = typename GridVolumeVariables::VolumeVariables; | ||
47 | |||
48 | //! Constructor | ||
49 |
13/16✓ Branch 1 taken 4 times.
✓ Branch 2 taken 15080 times.
✓ Branch 4 taken 853 times.
✓ Branch 5 taken 24 times.
✓ Branch 7 taken 1786528 times.
✓ Branch 8 taken 10909 times.
✓ Branch 12 taken 10400 times.
✓ Branch 13 taken 14000 times.
✓ Branch 15 taken 10400 times.
✗ Branch 16 not taken.
✓ Branch 3 taken 926094 times.
✓ Branch 10 taken 6517 times.
✓ Branch 11 taken 7 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 20 times.
✗ Branch 14 not taken.
|
4782099 | CVFEElementVolumeVariables(const GridVolumeVariables& gridVolVars) |
50 | : gridVolVarsPtr_(&gridVolVars) {} | ||
51 | |||
52 | 1429739790 | const VolumeVariables& operator [](std::size_t scvIdx) const | |
53 |
6/6✓ Branch 0 taken 21505128 times.
✓ Branch 1 taken 23552996 times.
✓ Branch 2 taken 139579651 times.
✓ Branch 3 taken 176352129 times.
✓ Branch 4 taken 40525374 times.
✓ Branch 5 taken 88482914 times.
|
725735872 | { return gridVolVars().volVars(eIdx_, scvIdx); } |
54 | |||
55 | template<class SubControlVolume, typename std::enable_if_t<!std::is_integral<SubControlVolume>::value, int> = 0> | ||
56 | 3392549112 | const VolumeVariables& operator [](const SubControlVolume& scv) const | |
57 |
1/2✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
|
1590516758 | { return gridVolVars().volVars(eIdx_, scv.indexInElement()); } |
58 | |||
59 | /*! | ||
60 | * \brief bind the local view (r-value overload) | ||
61 | * This overload is called when an instance of this class is a temporary in the usage context | ||
62 | * This allows a usage like this: `const auto view = localView(...).bind(element);` | ||
63 | */ | ||
64 | template<class FVElementGeometry, class SolutionVector> | ||
65 | 358349 | CVFEElementVolumeVariables bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
66 | const FVElementGeometry& fvGeometry, | ||
67 | const SolutionVector& sol) && | ||
68 | { | ||
69 | 358349 | this->bindElement(element, fvGeometry, sol); | |
70 | return std::move(*this); | ||
71 | } | ||
72 | |||
73 | // For compatibility reasons with the case of not storing the vol vars. | ||
74 | // function to be called before assembling an element, preparing the vol vars within the stencil | ||
75 | template<class FVElementGeometry, class SolutionVector> | ||
76 | 8333784 | void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
77 | const FVElementGeometry& fvGeometry, | ||
78 | const SolutionVector& sol) & | ||
79 | { | ||
80 | 8333784 | bindElement(element, fvGeometry, sol); | |
81 | 303520 | } | |
82 | |||
83 | /*! | ||
84 | * \brief bind the local view (r-value overload) | ||
85 | * This overload is called when an instance of this class is a temporary in the usage context | ||
86 | * This allows a usage like this: `const auto view = localView(...).bind(element);` | ||
87 | */ | ||
88 | template<class FVElementGeometry, class SolutionVector> | ||
89 | 39030 | CVFEElementVolumeVariables bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
90 | const FVElementGeometry& fvGeometry, | ||
91 | const SolutionVector& sol) && | ||
92 | { | ||
93 | 39030 | this->bindElement(element, fvGeometry, sol); | |
94 | return std::move(*this); | ||
95 | } | ||
96 | |||
97 | // function to prepare the vol vars within the element | ||
98 | template<class FVElementGeometry, class SolutionVector> | ||
99 |
13/24✓ Branch 1 taken 55304 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10647 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 138216 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 290541 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 25 taken 10400 times.
✓ Branch 26 taken 640 times.
✓ Branch 28 taken 10400 times.
✗ Branch 29 not taken.
✓ Branch 23 taken 4416 times.
✗ Branch 24 not taken.
✓ Branch 3 taken 15078 times.
✓ Branch 6 taken 30156 times.
✗ Branch 27 not taken.
✓ Branch 15 taken 1193235 times.
✓ Branch 18 taken 71568 times.
✗ Branch 19 not taken.
|
17318562 | void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, |
100 | const FVElementGeometry& fvGeometry, | ||
101 | const SolutionVector& sol) & | ||
102 | { | ||
103 |
18/31✓ Branch 1 taken 55304 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15078 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 153294 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 320697 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 30158 times.
✓ Branch 14 taken 5 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1193237 times.
✓ Branch 18 taken 261051 times.
✓ Branch 19 taken 1193235 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 92366 times.
✓ Branch 31 taken 14816 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 14812 times.
✓ Branch 35 taken 640 times.
✓ Branch 37 taken 10400 times.
✓ Branch 38 taken 640 times.
✓ Branch 40 taken 10400 times.
✗ Branch 41 not taken.
✓ Branch 6 taken 10647 times.
✓ Branch 9 taken 614847 times.
✗ Branch 17 not taken.
✗ Branch 36 not taken.
✗ Branch 39 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
|
17318562 | eIdx_ = fvGeometry.gridGeometry().elementMapper().index(element); |
104 | 6106785 | } | |
105 | |||
106 | //! The global volume variables object we are a restriction of | ||
107 | 3410969720 | const GridVolumeVariables& gridVolVars() const | |
108 |
24/26✓ Branch 1 taken 2252434 times.
✓ Branch 2 taken 7 times.
✓ Branch 3 taken 15840 times.
✓ Branch 4 taken 37500861 times.
✓ Branch 6 taken 6968329 times.
✓ Branch 7 taken 59453281 times.
✓ Branch 8 taken 106528162 times.
✓ Branch 9 taken 302022314 times.
✓ Branch 10 taken 147618756 times.
✓ Branch 11 taken 11363226 times.
✓ Branch 12 taken 409018687 times.
✓ Branch 13 taken 84286916 times.
✓ Branch 14 taken 130437508 times.
✓ Branch 15 taken 116249920 times.
✓ Branch 16 taken 8589768 times.
✓ Branch 17 taken 78913678 times.
✓ Branch 18 taken 25403468 times.
✓ Branch 19 taken 248826950 times.
✓ Branch 20 taken 9268958 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 64494264 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 514648 times.
✓ Branch 25 taken 40560 times.
✓ Branch 5 taken 48656471 times.
✓ Branch 0 taken 2089776 times.
|
3433507964 | { return *gridVolVarsPtr_; } |
109 | |||
110 | private: | ||
111 | const GridVolumeVariables* gridVolVarsPtr_; | ||
112 | std::size_t eIdx_; | ||
113 | }; | ||
114 | |||
115 | |||
116 | /*! | ||
117 | * \ingroup CVFEDiscretization | ||
118 | * \brief The local (stencil) volume variables class for control-volume finite element without caching | ||
119 | */ | ||
120 | template<class GVV> | ||
121 |
67/111✓ Branch 0 taken 292 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 314 times.
✓ Branch 5 taken 1259 times.
✓ Branch 6 taken 42900 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 892 times.
✓ Branch 10 taken 140893 times.
✓ Branch 11 taken 5512137 times.
✓ Branch 12 taken 3 times.
✓ Branch 13 taken 1619 times.
✓ Branch 14 taken 5507401 times.
✓ Branch 15 taken 1122 times.
✓ Branch 18 taken 789354 times.
✓ Branch 19 taken 57360 times.
✓ Branch 20 taken 2475 times.
✓ Branch 21 taken 3561 times.
✓ Branch 22 taken 261381 times.
✓ Branch 23 taken 20364 times.
✓ Branch 26 taken 319650 times.
✓ Branch 27 taken 163973 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 4516 times.
✓ Branch 30 taken 64 times.
✓ Branch 31 taken 958 times.
✓ Branch 32 taken 1628 times.
✓ Branch 33 taken 153853 times.
✓ Branch 34 taken 1387536 times.
✓ Branch 35 taken 487 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✓ Branch 39 taken 260112 times.
✓ Branch 40 taken 6552 times.
✓ Branch 41 taken 6981 times.
✓ Branch 42 taken 64064 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 153856 times.
✓ Branch 46 taken 400 times.
✓ Branch 47 taken 16 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 6724 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 3021 times.
✓ Branch 52 taken 3021 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 353 times.
✗ Branch 55 not taken.
✓ Branch 57 taken 352 times.
✓ Branch 58 taken 1 times.
✓ Branch 59 taken 7712 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 326574 times.
✓ Branch 62 taken 12168 times.
✓ Branch 64 taken 7708 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 175910 times.
✓ Branch 67 taken 14628 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 50000 times.
✓ Branch 71 taken 2 times.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✓ Branch 74 taken 100000 times.
✓ Branch 75 taken 2 times.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✓ Branch 78 taken 50000 times.
✓ Branch 79 taken 705 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 50001 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✓ Branch 88 taken 964000 times.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 36 taken 196032 times.
✓ Branch 45 taken 153840 times.
✓ Branch 56 taken 7712 times.
✓ Branch 16 taken 57594 times.
✓ Branch 17 taken 742 times.
✓ Branch 25 taken 7 times.
✓ Branch 24 taken 1232 times.
✗ Branch 68 not taken.
✗ Branch 63 not taken.
✓ Branch 91 taken 964000 times.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✓ Branch 101 taken 1000 times.
✗ Branch 102 not taken.
✗ Branch 104 not taken.
✓ Branch 105 taken 100 times.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✓ Branch 114 taken 1 times.
✗ Branch 115 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
|
21521611 | class CVFEElementVolumeVariables<GVV, /*cachingEnabled*/false> |
122 | { | ||
123 | public: | ||
124 | //! export type of the grid volume variables | ||
125 | using GridVolumeVariables = GVV; | ||
126 | |||
127 | //! export type of the volume variables | ||
128 | using VolumeVariables = typename GridVolumeVariables::VolumeVariables; | ||
129 | |||
130 | //! Constructor | ||
131 | 9819655 | CVFEElementVolumeVariables(const GridVolumeVariables& gridVolVars) | |
132 |
25/34✓ Branch 1 taken 292 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 44147 times.
✓ Branch 5 taken 154316 times.
✓ Branch 7 taken 5539306 times.
✓ Branch 8 taken 153840 times.
✓ Branch 10 taken 215832 times.
✓ Branch 11 taken 16 times.
✓ Branch 13 taken 219675 times.
✓ Branch 14 taken 352 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6944 times.
✓ Branch 18 taken 3021 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 7712 times.
✓ Branch 21 taken 3021 times.
✓ Branch 23 taken 388742 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 1146830 times.
✗ Branch 27 not taken.
✓ Branch 29 taken 2 times.
✓ Branch 30 taken 1 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 6 taken 754 times.
✓ Branch 12 taken 260096 times.
✓ Branch 3 taken 17170 times.
✓ Branch 9 taken 4489 times.
✓ Branch 17 taken 8108 times.
✗ Branch 31 not taken.
|
9501648 | : gridVolVarsPtr_(&gridVolVars) {} |
133 | |||
134 | /*! | ||
135 | * \brief bind the local view (r-value overload) | ||
136 | * This overload is called when an instance of this class is a temporary in the usage context | ||
137 | * This allows a usage like this: `const auto view = localView(...).bind(element);` | ||
138 | */ | ||
139 | template<class FVElementGeometry, class SolutionVector> | ||
140 | 318007 | CVFEElementVolumeVariables bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
141 | const FVElementGeometry& fvGeometry, | ||
142 | const SolutionVector& sol) && | ||
143 | { | ||
144 |
4/8✓ Branch 1 taken 161146 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 161146 times.
✓ Branch 6 taken 156861 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 156861 times.
|
318007 | this->bindElement(element, fvGeometry, sol); |
145 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 161146 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 156861 times.
|
318007 | return std::move(*this); |
146 | } | ||
147 | |||
148 | // specialization for control-volume finite element, simply forwards to the bindElement method | ||
149 | template<class FVElementGeometry, class SolutionVector> | ||
150 | 8948819 | void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
151 | const FVElementGeometry& fvGeometry, | ||
152 | const SolutionVector& sol) & | ||
153 | { | ||
154 |
21/39✓ Branch 1 taken 57360 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 289615 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15132 times.
✓ Branch 8 taken 57282 times.
✓ Branch 10 taken 31352 times.
✓ Branch 11 taken 92 times.
✓ Branch 15 taken 19752 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 17398 times.
✓ Branch 19 taken 704 times.
✓ Branch 21 taken 1007 times.
✓ Branch 22 taken 64 times.
✓ Branch 24 taken 2184 times.
✓ Branch 25 taken 800 times.
✓ Branch 27 taken 2184 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 101007 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1007 times.
✗ Branch 34 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 8788 times.
✓ Branch 14 taken 31352 times.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 35 taken 200 times.
✓ Branch 38 taken 100 times.
✓ Branch 41 taken 1928 times.
✗ Branch 42 not taken.
✗ Branch 9 not taken.
✗ Branch 6 not taken.
|
8948819 | bindElement(element, fvGeometry, sol); |
155 | 639308 | } | |
156 | |||
157 | /*! | ||
158 | * \brief bind the local view (r-value overload) | ||
159 | * This overload is called when an instance of this class is a temporary in the usage context | ||
160 | * This allows a usage like this: `const auto view = localView(...).bind(element);` | ||
161 | */ | ||
162 | template<class FVElementGeometry, class SolutionVector> | ||
163 | 40626 | CVFEElementVolumeVariables bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
164 | const FVElementGeometry& fvGeometry, | ||
165 | const SolutionVector& sol) && | ||
166 | { | ||
167 |
1/2✓ Branch 1 taken 40626 times.
✗ Branch 2 not taken.
|
40626 | this->bindElement(element, fvGeometry, sol); |
168 | 40626 | return std::move(*this); | |
169 | } | ||
170 | |||
171 | // specialization for control-volume finite element | ||
172 | template<class FVElementGeometry, class SolutionVector> | ||
173 | 25878690 | void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element, | |
174 | const FVElementGeometry& fvGeometry, | ||
175 | const SolutionVector& sol) & | ||
176 | { | ||
177 | // get the solution at the dofs of the element | ||
178 | 25878690 | auto elemSol = elementSolution(element, sol, fvGeometry.gridGeometry()); | |
179 | |||
180 | // resize volume variables to the required size | ||
181 | 25878690 | volumeVariables_.resize(fvGeometry.numScv()); | |
182 |
2/2✓ Branch 0 taken 68062052 times.
✓ Branch 1 taken 20348240 times.
|
108266848 | for (auto&& scv : scvs(fvGeometry)) |
183 | 82388176 | volumeVariables_[scv.indexInElement()].update(elemSol, gridVolVars().problem(), element, scv); | |
184 | 25878672 | } | |
185 | |||
186 | 2475379450 | const VolumeVariables& operator [](std::size_t scvIdx) const | |
187 |
25/28✓ Branch 0 taken 43689 times.
✓ Branch 1 taken 119376906 times.
✓ Branch 2 taken 57872147 times.
✓ Branch 3 taken 62037073 times.
✓ Branch 4 taken 2073204 times.
✓ Branch 5 taken 287590939 times.
✓ Branch 6 taken 173773019 times.
✓ Branch 7 taken 150145682 times.
✓ Branch 8 taken 36603554 times.
✓ Branch 9 taken 483255944 times.
✓ Branch 10 taken 230244904 times.
✓ Branch 11 taken 248018983 times.
✓ Branch 12 taken 12454755 times.
✓ Branch 13 taken 240888424 times.
✓ Branch 14 taken 5156382 times.
✓ Branch 15 taken 44265443 times.
✓ Branch 16 taken 164295 times.
✓ Branch 17 taken 6379081 times.
✓ Branch 18 taken 376 times.
✓ Branch 19 taken 103884 times.
✓ Branch 20 taken 2084560 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2084560 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 1360 times.
✓ Branch 26 taken 375 times.
✓ Branch 27 taken 985 times.
|
1297354099 | { return volumeVariables_[scvIdx]; } |
188 | |||
189 | ✗ | VolumeVariables& operator [](std::size_t scvIdx) | |
190 | ✗ | { return volumeVariables_[scvIdx]; } | |
191 | |||
192 | template<class SubControlVolume, typename std::enable_if_t<!std::is_integral<SubControlVolume>::value, int> = 0> | ||
193 | 5390040360 | const VolumeVariables& operator [](const SubControlVolume& scv) const | |
194 |
34/36✓ Branch 0 taken 308190412 times.
✓ Branch 1 taken 5256640 times.
✓ Branch 2 taken 377179075 times.
✓ Branch 3 taken 528114383 times.
✓ Branch 6 taken 43945292 times.
✓ Branch 7 taken 11714162 times.
✓ Branch 8 taken 4223456 times.
✓ Branch 9 taken 6913492 times.
✓ Branch 11 taken 10797453 times.
✓ Branch 12 taken 3539896 times.
✓ Branch 16 taken 122938 times.
✓ Branch 17 taken 34955041 times.
✓ Branch 18 taken 1841206 times.
✓ Branch 19 taken 3203411 times.
✓ Branch 20 taken 15321191 times.
✓ Branch 21 taken 8595266 times.
✓ Branch 22 taken 4874452 times.
✓ Branch 23 taken 3839952 times.
✓ Branch 24 taken 82761 times.
✓ Branch 25 taken 667718 times.
✓ Branch 26 taken 1300 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 2600 times.
✓ Branch 30 taken 154560 times.
✓ Branch 31 taken 5784 times.
✓ Branch 32 taken 2913 times.
✓ Branch 33 taken 2871 times.
✓ Branch 34 taken 1 times.
✓ Branch 35 taken 37039 times.
✓ Branch 4 taken 599019174 times.
✓ Branch 5 taken 275807918 times.
✓ Branch 10 taken 9570917 times.
✓ Branch 13 taken 23640852 times.
✓ Branch 14 taken 36767 times.
✓ Branch 15 taken 4225598 times.
|
5399218013 | { return volumeVariables_[scv.indexInElement()]; } |
195 | |||
196 | template<class SubControlVolume, typename std::enable_if_t<!std::is_integral<SubControlVolume>::value, int> = 0> | ||
197 | 142741355 | VolumeVariables& operator [](const SubControlVolume& scv) | |
198 |
5/9✗ Branch 0 not taken.
✓ Branch 1 taken 2732208 times.
✓ Branch 2 taken 849392 times.
✓ Branch 3 taken 3611766 times.
✓ Branch 9 taken 57 times.
✗ Branch 10 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2202 times.
✗ Branch 6 not taken.
|
142741355 | { return volumeVariables_[scv.indexInElement()]; } |
199 | |||
200 | //! The global volume variables object we are a restriction of | ||
201 | 67401313 | const GridVolumeVariables& gridVolVars() const | |
202 |
11/18✓ Branch 1 taken 91 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 101 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 9 taken 42315 times.
✓ Branch 12 taken 46190 times.
✓ Branch 15 taken 2 times.
✓ Branch 6 taken 5130 times.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
|
68157313 | { return *gridVolVarsPtr_; } |
203 | |||
204 | private: | ||
205 | const GridVolumeVariables* gridVolVarsPtr_; | ||
206 | std::vector<VolumeVariables> volumeVariables_; | ||
207 | }; | ||
208 | |||
209 | } // end namespace Dumux | ||
210 | |||
211 | #endif | ||
212 |