Cantera  2.1.2
TortuosityPercolation.cpp
Go to the documentation of this file.
1 /**
2  * @file TortuosityPercolation.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 "TortuosityPercolation.h"
15 
16 namespace Cantera
17 {
18 
19 //====================================================================================================================
20 // Default constructor
21 TortuosityPercolation::TortuosityPercolation(double percolationThreshold, double conductivityExponent) :
23  percolationThreshold_(percolationThreshold),
24  conductivityExponent_(conductivityExponent)
25 {
26 
27 }
28 //====================================================================================================================
29 // Copy Constructor
30 /*
31  * @param right Object to be copied
32  */
35  percolationThreshold_(right.percolationThreshold_),
36  conductivityExponent_(right.conductivityExponent_)
37 {
38  *this = right;
39 }
40 //====================================================================================================================
41 // Assignment operator
42 /*
43  * @param right Object to be copied
44  */
46 {
47  if (&right == this) {
48  return *this;
49  }
51 
54 
55  return *this;
56 }
57 //====================================================================================================================
58 // Duplication operator
59 /*
60  * @return Returns a pointer to a duplicate of the current object given a
61  * base class pointer
62  */
64 {
65  return new TortuosityPercolation(*this);
66 }
67 //====================================================================================================================
68 // The tortuosity factor models the effective increase in the diffusive transport length.
69 /*
70  * This method returns \f$ 1/\tau^2 \f$ in the description of the flux
71  *
72  * \f$ C_T D_i \nabla X_i / \tau^2 \f$.
73  *
74  */
75 doublereal TortuosityPercolation::tortuosityFactor(doublereal porosity)
76 {
77  return McMillanFactor(porosity) / porosity;
78 }
79 //====================================================================================================================
80 // The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow.
81 /*
82  * The McMillan number combines the effect of tortuosity
83  * and volume fraction of the transported phase. The net flux
84  * observed is then the product of the McMillan number and the
85  * non-porous transport rate. For a conductivity in a non-porous
86  * media, \f$ \kappa_0 \f$, the conductivity in the porous media
87  * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$.
88  */
89 doublereal TortuosityPercolation::McMillanFactor(doublereal porosity)
90 {
91  doublereal tmp = pow(((porosity - percolationThreshold_)
92  / (1.0 - percolationThreshold_)) ,
94  return tmp;
95 }
96 //====================================================================================================================
97 }
virtual doublereal tortuosityFactor(doublereal porosity)
The tortuosity factor models the effective increase in the diffusive transport length.
TortuosityBase & operator=(const TortuosityBase &right)
Assignment operator.
Base case to handle tortuosity corrections for diffusive transport in porous media.
This class implements transport coefficient corrections appropriate for porous media where percolatio...
double percolationThreshold_
Critical volume fraction / site density for percolation.
virtual doublereal McMillanFactor(doublereal porosity)
The McMillan number is the ratio of the flux-like variable to the value it would have without porous ...
double conductivityExponent_
Conductivity exponent.
virtual TortuosityBase * duplMyselfAsTortuosityBase() const
Duplication operator.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
TortuosityPercolation(double percolationThreshold=0.4, double conductivityExponent=2.0)
Default constructor uses Percolation exponent of 1.5.
TortuosityPercolation & operator=(const TortuosityPercolation &right)
Assignment operator.