Cantera
2.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
transport
TortuosityBruggeman.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 "
TortuosityBruggeman.h
"
14
#include "
cantera/base/ctexceptions.h
"
15
16
#include <string>
17
18
namespace
Cantera
19
{
20
21
//====================================================================================================================
22
// Default constructor
23
TortuosityBruggeman::TortuosityBruggeman
(doublereal setPower) :
24
TortuosityBase
(),
25
expBrug_(setPower)
26
{
27
}
28
//====================================================================================================================
29
// Copy Constructor
30
/*
31
* @param right Object to be copied
32
*/
33
TortuosityBruggeman::TortuosityBruggeman
(
const
TortuosityBruggeman
& right) :
34
TortuosityBase
(),
35
expBrug_(right.expBrug_)
36
{
37
*
this
= right;
38
}
39
//====================================================================================================================
40
// Default destructor for TortuosityBruggeman
41
TortuosityBruggeman::~TortuosityBruggeman
()
42
{
43
44
}
45
//====================================================================================================================
46
// Assignment operator
47
/*
48
* @param right Object to be copied
49
*/
50
TortuosityBruggeman
&
TortuosityBruggeman::operator=
(
const
TortuosityBruggeman
& right)
51
{
52
if
(&right ==
this
) {
53
return
*
this
;
54
}
55
TortuosityBase::operator=
(right);
56
57
expBrug_
= right.
expBrug_
;
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
*
TortuosityBruggeman::duplMyselfAsTortuosityBase
()
const
68
{
69
TortuosityBruggeman
* tb =
new
TortuosityBruggeman
(*
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
*/
81
doublereal
TortuosityBruggeman::tortuosityFactor
(doublereal porosity)
82
{
83
return
pow(porosity,
expBrug_
- 1.0);
84
}
85
//====================================================================================================================
86
// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow.
87
/*
88
* The McMillan number combines the effect of tortuosity
89
* and volume fraction of the transported phase. The net flux
90
* observed is then the product of the McMillan number and the
91
* non-porous transport rate. For a conductivity in a non-porous
92
* media, \f$ \kappa_0 \f$, the conductivity in the porous media
93
* would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$.
94
*/
95
doublereal
TortuosityBruggeman::McMillanFactor
(doublereal porosity)
96
{
97
return
pow(porosity,
expBrug_
);
98
}
99
//====================================================================================================================
100
}
Generated by
1.8.2