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