Cantera  2.3.0
Tortuosity.h
Go to the documentation of this file.
1 /**
2  * @file Tortuosity.h
3  * Class to compute the increase in diffusive path length in porous media
4  * assuming the Bruggeman exponent relation
5  */
6 
7 // This file is part of Cantera. See License.txt in the top-level directory or
8 // at http://www.cantera.org/license.txt for license and copyright information.
9 
10 #ifndef CT_TORTUOSITY_H
11 #define CT_TORTUOSITY_H
12 
13 namespace Cantera
14 {
15 
16 //! Specific Class to handle tortuosity corrections for diffusive transport
17 //! in porous media using the Bruggeman exponent
18 /*!
19  * @attention This class currently does not have any test cases or examples. Its
20  * implementation may be incomplete, and future changes to Cantera may
21  * unexpectedly cause this class to stop working. If you use this class,
22  * please consider contributing examples or test cases. In the absence of
23  * new tests or examples, this class may be deprecated and removed in a
24  * future version of Cantera. See
25  * https://github.com/Cantera/cantera/issues/267 for additional information.
26  *
27  * Class to compute the increase in diffusive path length associated with
28  * tortuous path diffusion through, for example, porous media. This base class
29  * implementation relates tortuosity to volume fraction through a power-law
30  * relationship that goes back to Bruggeman. The exponent is referred to as the
31  * Bruggeman exponent.
32  *
33  * Note that the total diffusional flux is generally written as
34  *
35  * \f[
36  * \frac{ \phi C_T D_i \nabla X_i }{ \tau^2 }
37  * \f]
38  *
39  * where \f$ \phi \f$ is the volume fraction of the transported phase,
40  * \f$ \tau \f$ is referred to as the tortuosity. (Other variables are
41  * \f$ C_T \f$, the total concentration, \f$ D_i \f$, the diffusion coefficient,
42  * and \f$ X_i \f$, the mole fraction with Fickian transport assumed.)
43  */
45 {
46 public:
47  //! Default constructor uses Bruggeman exponent of 1.5
48  Tortuosity(double setPower = 1.5) : expBrug_(setPower) {
49  }
50 
51  //! The tortuosity factor models the effective increase in the
52  //! diffusive transport length.
53  /**
54  * This method returns \f$ 1/\tau^2 \f$ in the description of the
55  * flux \f$ \phi C_T D_i \nabla X_i / \tau^2 \f$.
56  */
57  virtual double tortuosityFactor(double porosity) {
58  return pow(porosity, expBrug_ - 1.0);
59  }
60 
61  //! The McMillan number is the ratio of the flux-like
62  //! variable to the value it would have without porous flow.
63  /**
64  * The McMillan number combines the effect of tortuosity and volume fraction
65  * of the transported phase. The net flux observed is then the product of
66  * the McMillan number and the non-porous transport rate. For a
67  * conductivity in a non-porous media, \f$ \kappa_0 \f$, the conductivity in
68  * the porous media would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$.
69  */
70  virtual double McMillan(double porosity) {
71  return pow(porosity, expBrug_);
72  }
73 
74 protected:
75  //! Bruggeman exponent: power to which the tortuosity depends on the volume
76  //! fraction
77  double expBrug_;
78 };
79 
80 
81 /**
82  * This class implements transport coefficient corrections appropriate for
83  * porous media where percolation theory applies.
84  *
85  * @attention This class currently does not have any test cases or examples. Its
86  * implementation may be incomplete, and future changes to Cantera may
87  * unexpectedly cause this class to stop working. If you use this class,
88  * please consider contributing examples or test cases. In the absence of
89  * new tests or examples, this class may be deprecated and removed in a
90  * future version of Cantera. See
91  * https://github.com/Cantera/cantera/issues/267 for additional information.
92  */
94 {
95 public:
96  //! Default constructor uses Bruggeman exponent of 1.5
97  TortuosityPercolation(double percolationThreshold = 0.4, double conductivityExponent = 2.0) : percolationThreshold_(percolationThreshold), conductivityExponent_(conductivityExponent) {
98  }
99 
100  double tortuosityFactor(double porosity) {
101  return McMillan(porosity) / porosity;
102  }
103 
104  double McMillan(double porosity) {
105  return pow((porosity - percolationThreshold_)
106  / (1.0 - percolationThreshold_),
108  }
109 
110 protected:
111  //! Critical volume fraction / site density for percolation
113  //! Conductivity exponent
114  /**
115  * The McMillan number (ratio of effective conductivity
116  * to non-porous conductivity) is
117  * \f[
118  * \kappa/\kappa_0 = ( \phi - \phi_c )^\mu
119  * \f]
120  * where \f$ \mu \f$ is the conductivity exponent (typical values range from
121  * 1.6 to 2.0) and \f$ \phi_c \f$ is the percolation threshold.
122  */
124 };
125 
126 
127 /**
128  * This class implements transport coefficient corrections appropriate for
129  * porous media with a dispersed phase. This model goes back to Maxwell. The
130  * formula for the conductivity is expressed in terms of the volume fraction of
131  * the continuous phase, \f$ \phi \f$, and the relative conductivities of the
132  * dispersed and continuous phases, \f$ r = \kappa_d / \kappa_0 \f$. For dilute
133  * particle suspensions the effective conductivity is
134  * \f[
135  * \kappa / \kappa_0 = 1 + 3 ( 1 - \phi ) ( r - 1 ) / ( r + 2 ) + O(\phi^2)
136  * \f]
137  *
138  * @attention This class currently does not have any test cases or examples. Its
139  * implementation may be incomplete, and future changes to Cantera may
140  * unexpectedly cause this class to stop working. If you use this class,
141  * please consider contributing examples or test cases. In the absence of
142  * new tests or examples, this class may be deprecated and removed in a
143  * future version of Cantera. See
144  * https://github.com/Cantera/cantera/issues/267 for additional information.
145  */
147 {
148 public:
149  //! Default constructor uses Bruggeman exponent of 1.5
150  TortuosityMaxwell(double relativeConductivites = 0.0) : relativeConductivites_(relativeConductivites) {
151  }
152 
153  double tortuosityFactor(double porosity) {
154  return McMillan(porosity) / porosity;
155  }
156 
157  double McMillan(double porosity) {
158  return 1 + 3 * (1.0 - porosity) * (relativeConductivites_ - 1.0) / (relativeConductivites_ + 2);
159  }
160 
161 protected:
162  //! Relative conductivities of the dispersed and continuous phases,
163  //! `relativeConductivites_` \f$ = \kappa_d / \kappa_0 \f$.
165 };
166 
167 }
168 #endif
double McMillan(double porosity)
The McMillan number is the ratio of the flux-like variable to the value it would have without porous ...
Definition: Tortuosity.h:157
double tortuosityFactor(double porosity)
The tortuosity factor models the effective increase in the diffusive transport length.
Definition: Tortuosity.h:153
double expBrug_
Bruggeman exponent: power to which the tortuosity depends on the volume fraction. ...
Definition: Tortuosity.h:77
double McMillan(double porosity)
The McMillan number is the ratio of the flux-like variable to the value it would have without porous ...
Definition: Tortuosity.h:104
virtual double tortuosityFactor(double porosity)
The tortuosity factor models the effective increase in the diffusive transport length.
Definition: Tortuosity.h:57
This class implements transport coefficient corrections appropriate for porous media where percolatio...
Definition: Tortuosity.h:93
Tortuosity(double setPower=1.5)
Default constructor uses Bruggeman exponent of 1.5.
Definition: Tortuosity.h:48
Specific Class to handle tortuosity corrections for diffusive transport in porous media using the Bru...
Definition: Tortuosity.h:44
double percolationThreshold_
Critical volume fraction / site density for percolation.
Definition: Tortuosity.h:112
double relativeConductivites_
Relative conductivities of the dispersed and continuous phases, relativeConductivites_ ...
Definition: Tortuosity.h:164
double tortuosityFactor(double porosity)
The tortuosity factor models the effective increase in the diffusive transport length.
Definition: Tortuosity.h:100
TortuosityMaxwell(double relativeConductivites=0.0)
Default constructor uses Bruggeman exponent of 1.5.
Definition: Tortuosity.h:150
double conductivityExponent_
Conductivity exponent.
Definition: Tortuosity.h:123
virtual double McMillan(double porosity)
The McMillan number is the ratio of the flux-like variable to the value it would have without porous ...
Definition: Tortuosity.h:70
Namespace for the Cantera kernel.
Definition: application.cpp:29
This class implements transport coefficient corrections appropriate for porous media with a dispersed...
Definition: Tortuosity.h:146
TortuosityPercolation(double percolationThreshold=0.4, double conductivityExponent=2.0)
Default constructor uses Bruggeman exponent of 1.5.
Definition: Tortuosity.h:97