GCC Code Coverage Report


Directory: ../../../builds/dumux-repositories/
File: /builds/dumux-repositories/dumux/dumux/material/binarycoefficients/n2_o2.hh
Date: 2024-05-04 19:09:25
Exec Total Coverage
Lines: 5 5 100.0%
Functions: 1 1 100.0%
Branches: 7 16 43.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 Binarycoefficients
10 * \brief Binary coefficients for nitrogen and oxygen.
11 */
12 #ifndef DUMUX_BINARY_COEFF_N2_O2_HH
13 #define DUMUX_BINARY_COEFF_N2_O2_HH
14
15 #include <dumux/material/binarycoefficients/henryiapws.hh>
16 #include <dumux/material/binarycoefficients/fullermethod.hh>
17
18 #include <dumux/material/components/o2.hh>
19 #include <dumux/material/components/n2.hh>
20
21 namespace Dumux {
22 namespace BinaryCoeff {
23
24 /*!
25 * \ingroup Binarycoefficients
26 * \brief Binary coefficients for nitrogen and oxygen.
27 */
28 class N2_O2
29 {
30 public:
31 /*!
32 * \brief Henry coefficient \f$\mathrm{[Pa]}\f$ for molecular oxygen in liquid nitrogen.
33 * \param temperature the temperature \f$\mathrm{[K]}\f$
34 */
35 template <class Scalar>
36 static Scalar henry(Scalar temperature)
37 {
38 DUNE_THROW(Dune::NotImplemented, "henry coefficient for oxygen in liquid nitrogen");
39 }
40
41 /*!
42 * \brief Binary diffusion coefficient \f$\mathrm{[m^2/s]}\f$ for molecular oxygen in liquid nitrogen.
43 *
44 * Uses fullerMethod to determine the diffusion of water in nitrogen.
45 * \param temperature the temperature \f$\mathrm{[K]}\f$
46 * \param pressure the phase pressure \f$\mathrm{[Pa]}\f$
47 */
48 template <class Scalar>
49 static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
50 {
51 using N2 = Dumux::Components::N2<Scalar>;
52 using O2 = Dumux::Components::O2<Scalar>;
53
54 // atomic diffusion volumes
55 301720 const Scalar SigmaNu[2] = { 18.1 /* N2 */, 16.3 /* O2 */ };
56 // molar masses [g/mol]
57 301720 const Scalar M[2] = { N2::molarMass()*1e3, O2::molarMass()*1e3 };
58 301720 return fullerMethod(M, SigmaNu, temperature, pressure);
59 }
60
61 /*!
62 * \brief Diffusion coefficient \f$\mathrm{[m^2/s]}\f$ for molecular oxygen in liquid nitrogen.
63 * \param temperature the temperature \f$\mathrm{[K]}\f$
64 * \param pressure the phase pressure \f$\mathrm{[Pa]}\f$
65 */
66 template <class Scalar>
67 1 static Scalar liquidDiffCoeff(Scalar temperature, Scalar pressure)
68 {
69
7/16
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
11 DUNE_THROW(Dune::NotImplemented, "diffusion coefficient for liquid oxygen and nitrogen");
70 }
71 };
72
73 } // end namespace BinaryCoeff
74 } // end namespace Dumux
75
76 #endif
77