GCC Code Coverage Report


Directory: ../../../builds/dumux-repositories/
File: dumux/dumux/material/components/calcite.hh
Date: 2025-04-12 19:19:20
Exec Total Coverage
Lines: 2 2 100.0%
Functions: 0 0 -%
Branches: 10 19 52.6%

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 Components
10 * \brief A class for the CaCO3 mineral phase properties
11 */
12 #ifndef DUMUX_CALCITE_HH
13 #define DUMUX_CALCITE_HH
14
15 #include <dumux/material/components/base.hh>
16 #include <dumux/material/components/solid.hh>
17
18 #include <dumux/material/components/calciumion.hh>
19 #include <dumux/material/components/carbonateion.hh>
20
21 namespace Dumux::Components {
22
23 /*!
24 * \ingroup Components
25 * \brief A class for the CaCO3 mineral phase properties
26 */
27 template <class Scalar>
28 class Calcite
29 : public Components::Base<Scalar, Calcite<Scalar> >
30 , public Components::Solid<Scalar, Calcite<Scalar> >
31 {
32
33 public:
34 using CalciumIon = Components::CalciumIon<Scalar>;
35 using CarbonateIon = Components::CarbonateIon<Scalar>;
36 /*!
37 * \brief A human readable name for calcite.
38 */
39
3/6
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
5 static std::string name()
40
7/13
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 3 not taken.
5 { return "Calcite"; }
41
42 /*!
43 * \brief The molar mass in \f$\mathrm{[kg/mol]}\f$ of calcite.
44 */
45 static constexpr Scalar molarMass()
46 { return CalciumIon::molarMass() + CarbonateIon::molarMass(); } // kg/mol
47
48 /*!
49 * \brief Returns true if the solid phase is assumed to be compressible
50 */
51 static constexpr bool solidIsCompressible()
52 { return false; }
53
54 /*!
55 * \brief The density in \f$\mathrm{[kg/m^3]}\f$ of the component at a given pressure in
56 * \f$\mathrm{[Pa]}\f$ and temperature in \f$\mathrm{[K]}\f$.
57 *
58 * \param temperature temperature of component in \f$\mathrm{[K]}\f$
59 */
60 static constexpr Scalar solidDensity(Scalar temperature)
61 { return 2.71e3; }
62
63 /*!
64 * \brief Thermal conductivity of the component \f$\mathrm{[W/(m*K)]}\f$ as a solid.
65 *
66 * \param temperature temperature of component in \f$\mathrm{[K]}\f$
67 */
68 static Scalar solidThermalConductivity(Scalar temperature)
69 { return 3.849; }
70
71 /*!
72 * \brief Specific isobaric heat capacity of the component \f$\mathrm{[J/(kg*K)]}\f$ as a solid.
73 *
74 * \param temperature temperature of component in \f$\mathrm{[K]}\f$
75 */
76 static Scalar solidHeatCapacity(Scalar temperature)
77 { return 837; }
78 };
79
80 } // end namespace Dumux::Components
81
82 #endif
83