Cantera
2.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
transport
TortuosityMaxwell.cpp
1
/**
2
* @file TortuosityBase.cpp
3
* Base class to compute the increase in diffusive path length associated with
4
* tortuous path diffusion through, for example, porous media.
5
*/
6
7
/*
8
* Copyright (2005) Sandia Corporation. Under the terms of
9
* Contract DE-AC04-94AL85000 with Sandia Corporation, the
10
* U.S. Government retains certain rights in this software.
11
*/
12
13
#include "TortuosityMaxwell.h"
14
#include "
cantera/base/ctexceptions.h
"
15
16
#include <string>
17
18
namespace
Cantera
19
{
20
21
//====================================================================================================================
22
// Default constructor
23
TortuosityMaxwell::TortuosityMaxwell
(doublereal relativeConductivities) :
24
TortuosityBase
(),
25
relativeConductivities_(relativeConductivities)
26
{
27
}
28
//====================================================================================================================
29
// Copy Constructor
30
/*
31
* @param right Object to be copied
32
*/
33
TortuosityMaxwell::TortuosityMaxwell
(
const
TortuosityMaxwell
& right) :
34
TortuosityBase
(),
35
relativeConductivities_(right.relativeConductivities_)
36
{
37
*
this
= right;
38
}
39
//====================================================================================================================
40
// Default destructor for TortuosityMaxwell
41
TortuosityMaxwell::~TortuosityMaxwell
()
42
{
43
44
}
45
//====================================================================================================================
46
// Assignment operator
47
/*
48
* @param right Object to be copied
49
*/
50
TortuosityMaxwell
&
TortuosityMaxwell::operator=
(
const
TortuosityMaxwell
& right)
51
{
52
if
(&right ==
this
) {
53
return
*
this
;
54
}
55
TortuosityBase::operator=
(right);
56
57
relativeConductivities_
= right.
relativeConductivities_
;
58
59
return
*
this
;
60
}
61
//====================================================================================================================
62
// Duplication operator
63
/*
64
* @return Returns a pointer to a duplicate of the current object given a
65
* base class pointer
66
*/
67
TortuosityBase
*
TortuosityMaxwell::duplMyselfAsTortuosityBase
()
const
68
{
69
TortuosityMaxwell
* tb =
new
TortuosityMaxwell
(*
this
);
70
return
dynamic_cast<
TortuosityBase
*
>
(tb);
71
}
72
//====================================================================================================================
73
// The tortuosity factor models the effective increase in the diffusive transport length.
74
/*
75
* This method returns \f$ 1/\tau^2 \f$ in the description of the flux
76
*
77
* \f$ C_T D_i \nabla X_i / \tau^2 \f$.
78
*
79
*/
80
doublereal
TortuosityMaxwell::tortuosityFactor
(doublereal porosity)
81
{
82
return
McMillanFactor
(porosity) / porosity;
83
}
84
//====================================================================================================================
85
// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow.
86
/*
87
* The McMillan number combines the effect of tortuosity
88
* and volume fraction of the transported phase. The net flux
89
* observed is then the product of the McMillan number and the
90
* non-porous transport rate. For a conductivity in a non-porous
91
* media, \f$ \kappa_0 \f$, the conductivity in the porous media
92
* would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$.
93
*/
94
doublereal
TortuosityMaxwell::McMillanFactor
(doublereal porosity)
95
{
96
doublereal tmp = 1 + 3 * (1.0 - porosity) * (
relativeConductivities_
- 1.0) / (
relativeConductivities_
+ 2);
97
return
tmp;
98
}
99
//====================================================================================================================
100
}
Generated by
1.8.2