Cantera  2.0
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"
15 
16 #include <string>
17 
18 namespace Cantera
19 {
20 
21 //====================================================================================================================
22 // Default constructor
23 TortuosityMaxwell::TortuosityMaxwell(doublereal relativeConductivities) :
25  relativeConductivities_(relativeConductivities)
26 {
27 }
28 //====================================================================================================================
29 // Copy Constructor
30 /*
31  * @param right Object to be copied
32  */
35  relativeConductivities_(right.relativeConductivities_)
36 {
37  *this = right;
38 }
39 //====================================================================================================================
40 // Default destructor for TortuosityMaxwell
42 {
43 
44 }
45 //====================================================================================================================
46 // Assignment operator
47 /*
48  * @param right Object to be copied
49  */
51 {
52  if (&right == this) {
53  return *this;
54  }
56 
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  */
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 }