GCC Code Coverage Report


Directory: ../../../builds/dumux-repositories/
File: /builds/dumux-repositories/dumux/dumux/porenetwork/1pnc/volumevariables.hh
Date: 2024-05-04 19:09:25
Exec Total Coverage
Lines: 6 8 75.0%
Functions: 2 4 50.0%
Branches: 0 0 -%

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 PNMOnePNCModel
10 * \copydoc Dumux::PoreNetwork::OnePNCVolumeVariables
11 */
12
13 #ifndef DUMUX_PNM_1PNC_VOLUME_VARIABLES_HH
14 #define DUMUX_PNM_1PNC_VOLUME_VARIABLES_HH
15
16 #include <dumux/porousmediumflow/1pnc/volumevariables.hh>
17
18 namespace Dumux::PoreNetwork {
19
20 /*!
21 * \ingroup PNMOnePNCModel
22 * \brief Contains the quantities which are are constant within a
23 * finite volume in the one-phase, n-component model.
24 *
25 * \note The default value for the phase index given in the fluid property interfaces is not used,
26 * but is only here to enable calling these functions without handing in a phase index
27 * (as in a single-phasic context there is only one phase).
28 */
29 template <class Traits>
30 401384 class OnePNCVolumeVariables
31 : public Dumux::OnePNCVolumeVariables<Traits>
32 {
33 using ParentType = Dumux::OnePNCVolumeVariables<Traits>;
34 using Scalar = typename Traits::PrimaryVariables::value_type;
35 public:
36
37 /*!
38 * \brief Updates all quantities for a given control volume.
39 *
40 * \param elemSol A vector containing all primary variables connected to the element
41 * \param problem The object specifying the problem which ought to
42 * be simulated
43 * \param element An element which contains part of the control volume
44 * \param scv The sub-control volume
45 */
46 template<class ElemSol, class Problem, class Element, class Scv>
47 532108 void update(const ElemSol& elemSol,
48 const Problem& problem,
49 const Element& element,
50 const Scv& scv)
51 {
52 532108 ParentType::update(elemSol, problem, element, scv);
53
54 1596324 poreInscribedRadius_ = problem.spatialParams().poreInscribedRadius(element, scv, elemSol);
55 2128432 poreVolume_ = problem.gridGeometry().poreVolume(scv.dofIndex()) * this->porosity();
56 532108 }
57
58 /*!
59 * \brief Returns the pore's inscribed radius.
60 */
61 Scalar poreInscribedRadius() const
62 { return poreInscribedRadius_; }
63
64 /*!
65 * \brief Returns the pore volume. // TODO should this be a fraction only?
66 */
67 Scalar poreVolume() const
68 { return poreVolume_; }
69
70 protected:
71 Scalar poreInscribedRadius_;
72 Scalar poreVolume_;
73 };
74
75 } // end namespace Dumux::PoreNetwork
76
77 #endif
78