3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
dumux
material
fluidmatrixinteractions
diffusivitymillingtonquirk.hh
Go to the documentation of this file.
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
* See the file COPYING for full copying permissions. *
5
* *
6
* This program is free software: you can redistribute it and/or modify *
7
* it under the terms of the GNU General Public License as published by *
8
* the Free Software Foundation, either version 3 of the License, or *
9
* (at your option) any later version. *
10
* *
11
* This program is distributed in the hope that it will be useful, *
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14
* GNU General Public License for more details. *
15
* *
16
* You should have received a copy of the GNU General Public License *
17
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
18
*****************************************************************************/
24
#ifndef DUMUX_MATERIAL_DIFFUSIVITY_MILLINGTON_QUIRK_HH
25
#define DUMUX_MATERIAL_DIFFUSIVITY_MILLINGTON_QUIRK_HH
26
27
#include <cmath>
28
#include <algorithm>
29
30
namespace
Dumux
{
31
50
template
<
class
Scalar>
51
class
DiffusivityMillingtonQuirk
52
{
53
public
:
62
template
<
class
VolumeVariables>
63
static
Scalar
effectiveDiffusionCoefficient
(
const
VolumeVariables& volVars,
64
const
int
phaseIdx,
65
const
int
compIdxI,
66
const
int
compIdxJ)
67
{
68
// instead of D_eff,pm = phi * Sw * 1/phi^2 * (phi * Sw)^(7/3) * D
69
// we calculate the more efficient
70
// D_eff,pm = phi * Sw^3 * cubicroot(phi * Sw) * D
71
72
using
std::cbrt;
73
using
std::max;
74
const
Scalar diffCoeff = volVars.diffusionCoefficient(phaseIdx, compIdxI, compIdxJ);
75
const
Scalar porosity = volVars.porosity();
76
const
Scalar sat = max<Scalar>(volVars.saturation(phaseIdx), 0.0);
77
return
porosity * (sat*sat*sat) * cbrt(porosity * sat) * diffCoeff;
78
}
79
80
};
81
}
82
#endif
Dumux
Definition
adapt.hh:29
Dumux::DiffusivityMillingtonQuirk
Relation for the saturation-dependent effective diffusion coefficient.
Definition
diffusivitymillingtonquirk.hh:52
Dumux::DiffusivityMillingtonQuirk::effectiveDiffusionCoefficient
static Scalar effectiveDiffusionCoefficient(const VolumeVariables &volVars, const int phaseIdx, const int compIdxI, const int compIdxJ)
Returns the effective diffusion coefficient after Millington Quirk.
Definition
diffusivitymillingtonquirk.hh:63
Generated by
1.16.1