GCC Code Coverage Report


Directory: ../../../builds/dumux-repositories/
File: /builds/dumux-repositories/dumux/dumux/freeflow/navierstokes/mass/1p/fluxvariables.hh
Date: 2024-05-04 19:09:25
Exec Total Coverage
Lines: 4 9 44.4%
Functions: 0 72 0.0%
Branches: 1 21 4.8%

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 NavierStokesModel
10 * \copydoc Dumux::NavierStokesMassOnePFluxVariables
11 */
12 #ifndef DUMUX_FREEFLOW_NAVIERSTOKES_MASS_1P_FLUXVARIABLES_HH
13 #define DUMUX_FREEFLOW_NAVIERSTOKES_MASS_1P_FLUXVARIABLES_HH
14
15 #include <dumux/flux/upwindscheme.hh>
16 #include <dumux/freeflow/navierstokes/scalarfluxvariables.hh>
17
18 #include "advectiveflux.hh"
19
20 namespace Dumux {
21
22 /*!
23 * \ingroup NavierStokesModel
24 * \brief The flux variables class for the single-phase flow Navier-Stokes model.
25 */
26 template<class Problem,
27 class ModelTraits,
28 class FluxTs,
29 class ElementVolumeVariables,
30 class ElementFluxVariablesCache,
31 class UpwindScheme = UpwindScheme<typename ProblemTraits<Problem>::GridGeometry>>
32 class NavierStokesMassOnePFluxVariables
33 : public NavierStokesScalarConservationModelFluxVariables<Problem,
34 ModelTraits,
35 FluxTs,
36 ElementVolumeVariables,
37 ElementFluxVariablesCache,
38 UpwindScheme>
39 {
40 using ParentType = NavierStokesScalarConservationModelFluxVariables<Problem,
41 ModelTraits,
42 FluxTs,
43 ElementVolumeVariables,
44 ElementFluxVariablesCache,
45 UpwindScheme>;
46
47 using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
48 using NumEqVector = typename VolumeVariables::PrimaryVariables;
49
50 public:
51
52 /*!
53 * \brief Returns the advective mass flux in kg/s.
54 */
55 NumEqVector advectiveFlux(int phaseIdx = 0) const
56 {
57 NumEqVector result(0.0);
58 // g++ requires to capture 'this' by value
59
0/6
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
100475134 const auto upwinding = [this](const auto& term) { return this->getAdvectiveFlux(term); };
60
0/6
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
100475134 AdvectiveFlux<ModelTraits>::addAdvectiveFlux(result, upwinding);
61 return result;
62 }
63
64 /*!
65 * \brief Returns all fluxes for the single-phase flow Navier-Stokes model: the
66 * advective mass flux in kg/s and the energy flux in J/s (for nonisothermal models).
67 */
68 NumEqVector flux(int phaseIdx = 0) const
69 {
70
0/4
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
100475134 NumEqVector flux = advectiveFlux(phaseIdx);
71
1/3
✓ Branch 0 taken 249600 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
100475134 ParentType::addHeatFlux(flux);
72 return flux;
73 }
74 };
75
76 } // end namespace Dumux
77
78 #endif
79