diff --git a/src/transport/TortuosityBase.cpp b/src/transport/TortuosityBase.cpp deleted file mode 100644 index febf872c8..000000000 --- a/src/transport/TortuosityBase.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @file TortuosityBase.cpp - * Base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#include "TortuosityBase.h" -#include "cantera/base/ctexceptions.h" - -namespace Cantera -{ -//==================================================================================================================== -// Default constructor -TortuosityBase::TortuosityBase() -{ -} -//==================================================================================================================== -// Copy Constructor -/* - * @param right Object to be copied - */ -TortuosityBase::TortuosityBase(const TortuosityBase& right) -{ - *this = right; -} -//==================================================================================================================== -// Default destructor for TortuosityBase -TortuosityBase::~TortuosityBase() -{ - -} -//==================================================================================================================== -// Assignment operator -/* - * @param right Object to be copied - */ -TortuosityBase& TortuosityBase::operator=(const TortuosityBase& right) -{ - if (&right == this) { - return *this; - } - return *this; -} -//==================================================================================================================== -// Duplication operator -/* - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ -TortuosityBase* TortuosityBase::duplMyselfAsTortuosityBase() const -{ - return new TortuosityBase(*this); -} -//==================================================================================================================== -// The tortuosity factor models the effective increase in the diffusive transport length. -/* - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ -doublereal TortuosityBase::tortuosityFactor(doublereal porosity) -{ - throw NotImplementedError("TortuosityBase::tortuosityFactor"); -} -//==================================================================================================================== -// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow. -/* - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ -doublereal TortuosityBase::McMillanFactor(doublereal porosity) -{ - throw NotImplementedError("TortuosityBase::McMillanFactor"); -} -//==================================================================================================================== -} diff --git a/src/transport/TortuosityBase.h b/src/transport/TortuosityBase.h deleted file mode 100644 index f9d4857c8..000000000 --- a/src/transport/TortuosityBase.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @file TortuosityBase.h - * Virtual base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#ifndef CT_TORTUOSITYBASE_H -#define CT_TORTUOSITYBASE_H - -#include "cantera/base/ct_defs.h" - -namespace Cantera -{ - -//! Base case to handle tortuosity corrections for diffusive transport -//! in porous media -/*! - * Class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - * This base class implementation relates tortuosity to volume fraction - * through a power-law relationship that goes back to Bruggeman. The - * exponent is referred to as the Bruggeman exponent. - * - * Note that the total diffusional flux is generally written as - * - * \f[ - * \frac{ \phi C_T D_i \nabla X_i }{ \tau^2 } - * \f] - * - * where \f$ \phi \f$ is the volume fraction of the transported phase, - * \f$ \tau \f$ is referred to as the tortuosity. (Other variables are - * \f$ C_T \f$, the total concentration, \f$ D_i \f$, the diffusion - * coefficient, and \f$ X_i \f$, the mole fraction with Fickian - * transport assumed.) - * - * The tortuosity comes into play in conjunction the the - */ -class TortuosityBase -{ - -public: - //! Default constructor uses Bruggeman exponent of 1.5 - TortuosityBase(); - - //! Copy Constructor - /*! - * @param right Object to be copied - */ - TortuosityBase(const TortuosityBase& right); - - //! Default destructor for TortuosityBase - virtual ~TortuosityBase(); - - //! Assignment operator - /*! - * @param right Object to be copied - */ - TortuosityBase& operator=(const TortuosityBase& right); - - //! Duplication operator - /*! - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ - virtual TortuosityBase* duplMyselfAsTortuosityBase() const; - - //! The tortuosity factor models the effective increase in the - //! diffusive transport length. - /*! - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ - virtual doublereal tortuosityFactor(doublereal porosity); - - //! The McMillan number is the ratio of the flux-like - //! variable to the value it would have without porous flow. - /** - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ - virtual doublereal McMillanFactor(doublereal porosity); - -protected: - -}; - -} - -#endif diff --git a/src/transport/TortuosityBruggeman.cpp b/src/transport/TortuosityBruggeman.cpp deleted file mode 100644 index 8d445f0ed..000000000 --- a/src/transport/TortuosityBruggeman.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/** - * @file TortuosityBase.cpp - * Base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#include "TortuosityBruggeman.h" -#include "cantera/base/ctexceptions.h" - -namespace Cantera -{ - -//==================================================================================================================== -// Default constructor -TortuosityBruggeman::TortuosityBruggeman(doublereal setPower) : - TortuosityBase(), - expBrug_(setPower) -{ -} -//==================================================================================================================== -// Copy Constructor -/* - * @param right Object to be copied - */ -TortuosityBruggeman::TortuosityBruggeman(const TortuosityBruggeman& right) : - TortuosityBase(), - expBrug_(right.expBrug_) -{ - *this = right; -} -//==================================================================================================================== -// Assignment operator -/* - * @param right Object to be copied - */ -TortuosityBruggeman& TortuosityBruggeman::operator=(const TortuosityBruggeman& right) -{ - if (&right == this) { - return *this; - } - TortuosityBase::operator=(right); - - expBrug_ = right.expBrug_; - - return *this; -} -//==================================================================================================================== -// Duplication operator -/* - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ -TortuosityBase* TortuosityBruggeman::duplMyselfAsTortuosityBase() const -{ - return new TortuosityBruggeman(*this); -} -//==================================================================================================================== -// The tortuosity factor models the effective increase in the diffusive transport length. -/* - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ -doublereal TortuosityBruggeman::tortuosityFactor(doublereal porosity) -{ - return pow(porosity, expBrug_ - 1.0); -} -//==================================================================================================================== -// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow. -/* - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ -doublereal TortuosityBruggeman::McMillanFactor(doublereal porosity) -{ - return pow(porosity, expBrug_); -} -//==================================================================================================================== -} diff --git a/src/transport/TortuosityBruggeman.h b/src/transport/TortuosityBruggeman.h deleted file mode 100644 index 2224ebda2..000000000 --- a/src/transport/TortuosityBruggeman.h +++ /dev/null @@ -1,105 +0,0 @@ -/** - * @file TortuosityBase.h - * Virtual base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#ifndef CT_TORTUOSITYBRUGGEMAN_H -#define CT_TORTUOSITYBRUGGEMAN_H - -#include "TortuosityBase.h" - -namespace Cantera -{ - -//! Base case to handle tortuosity corrections for diffusive transport -//! in porous media using the Bruggeman exponential approximation -/*! - * Class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - * This base class implementation relates tortuosity to volume fraction - * through a power-law relationship that goes back to Bruggeman. The - * exponent is referred to as the Bruggeman exponent. - * - * Note that the total diffusional flux is generally written as - * - * \f[ - * \frac{ \phi C_T D_i \nabla X_i }{ \tau^2 } - * \f] - * - * where \f$ \phi \f$ is the volume fraction of the transported phase, - * \f$ \tau \f$ is referred to as the tortuosity. (Other variables are - * \f$ C_T \f$, the total concentration, \f$ D_i \f$, the diffusion - * coefficient, and \f$ X_i \f$, the mole fraction with Fickian - * transport assumed.) - * - * The tortuosity comes into play in conjunction the the - */ -class TortuosityBruggeman : public TortuosityBase -{ - -public: - //! Default constructor uses Bruggeman exponent of 1.5 - /*! - * @param setPower Exponent in the Bruggeman factor. The default is 1.5 - */ - TortuosityBruggeman(doublereal setPower = 1.5); - - //! Copy Constructor - /*! - * @param right Object to be copied - */ - TortuosityBruggeman(const TortuosityBruggeman& right); - - //! Assignment operator - /*! - * @param right Object to be copied - */ - TortuosityBruggeman& operator=(const TortuosityBruggeman& right); - - //! Duplication operator - /*! - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ - virtual TortuosityBase* duplMyselfAsTortuosityBase() const; - - //! The tortuosity factor models the effective increase in the - //! diffusive transport length. - /*! - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ - virtual doublereal tortuosityFactor(doublereal porosity); - - //! The McMillan number is the ratio of the flux-like - //! variable to the value it would have without porous flow. - /** - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ - virtual doublereal McMillanFactor(doublereal porosity); - - -protected: - //! Bruggeman exponent: power to which the tortuosity depends on the volume fraction - doublereal expBrug_; - -}; - -} - -#endif diff --git a/src/transport/TortuosityMaxwell.cpp b/src/transport/TortuosityMaxwell.cpp deleted file mode 100644 index 05986d379..000000000 --- a/src/transport/TortuosityMaxwell.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/** - * @file TortuosityBase.cpp - * Base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#include "TortuosityMaxwell.h" -#include "cantera/base/ctexceptions.h" - -namespace Cantera -{ - -//==================================================================================================================== -// Default constructor -TortuosityMaxwell::TortuosityMaxwell(doublereal relativeConductivities) : - TortuosityBase(), - relativeConductivities_(relativeConductivities) -{ -} -//==================================================================================================================== -// Copy Constructor -/* - * @param right Object to be copied - */ -TortuosityMaxwell::TortuosityMaxwell(const TortuosityMaxwell& right) : - TortuosityBase(), - relativeConductivities_(right.relativeConductivities_) -{ - *this = right; -} -//==================================================================================================================== -// Assignment operator -/* - * @param right Object to be copied - */ -TortuosityMaxwell& TortuosityMaxwell::operator=(const TortuosityMaxwell& right) -{ - if (&right == this) { - return *this; - } - TortuosityBase::operator=(right); - - relativeConductivities_ = right.relativeConductivities_; - - return *this; -} -//==================================================================================================================== -// Duplication operator -/* - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ -TortuosityBase* TortuosityMaxwell::duplMyselfAsTortuosityBase() const -{ - return new TortuosityMaxwell(*this); -} -//==================================================================================================================== -// The tortuosity factor models the effective increase in the diffusive transport length. -/* - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - */ -doublereal TortuosityMaxwell::tortuosityFactor(doublereal porosity) -{ - return McMillanFactor(porosity) / porosity; -} -//==================================================================================================================== -// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow. -/* - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ -doublereal TortuosityMaxwell::McMillanFactor(doublereal porosity) -{ - return 1 + 3 * (1.0 - porosity) * (relativeConductivities_ - 1.0) / (relativeConductivities_ + 2); -} -//==================================================================================================================== -} diff --git a/src/transport/TortuosityMaxwell.h b/src/transport/TortuosityMaxwell.h deleted file mode 100644 index 5966635c7..000000000 --- a/src/transport/TortuosityMaxwell.h +++ /dev/null @@ -1,109 +0,0 @@ -/** - * @file TortuosityBase.h - * Virtual base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#ifndef CT_TORTUOSITYBRUGGEMAN_H -#define CT_TORTUOSITYBRUGGEMAN_H - -#include "TortuosityBase.h" - -namespace Cantera -{ - -//! Maxwell model for tortuosity -/*! - * - * This class implements transport coefficient corrections - * appropriate for porous media with a dispersed phase. - * This model goes back to Maxwell. The formula for the - * conductivity is expressed in terms of the volume fraction - * of the continuous phase, \f$ \phi \f$, and the relative - * conductivities of the dispersed and continuous phases, - * \f$ r = \kappa_d / \kappa_0 \f$. For dilute particle - * suspensions the effective conductivity is - * - * \f[ - * \kappa / \kappa_0 = 1 + 3 ( 1 - \phi ) ( r - 1 ) / ( r + 2 ) - * + O(\phi^2) - * \f] - * - * The class is derived from the TortuosityBase class. - * - */ -class TortuosityMaxwell : public TortuosityBase -{ - -public: - //! Default constructor uses Maxwelln exponent of 1.5 - /*! - * @param setPower Exponent in the Maxwell factor. The default is 1.5 - */ - TortuosityMaxwell(double relativeConductivites = 0.0); - - //! Copy Constructor - /*! - * @param right Object to be copied - */ - TortuosityMaxwell(const TortuosityMaxwell& right); - - //! Assignment operator - /*! - * @param right Object to be copied - */ - TortuosityMaxwell& operator=(const TortuosityMaxwell& right); - - //! Duplication operator - /*! - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ - virtual TortuosityBase* duplMyselfAsTortuosityBase() const; - - //! The tortuosity factor models the effective increase in the - //! diffusive transport length. - /*! - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ - virtual doublereal tortuosityFactor(doublereal porosity); - - //! The McMillan number is the ratio of the flux-like - //! variable to the value it would have without porous flow. - /** - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ - virtual doublereal McMillanFactor(doublereal porosity); - - -protected: - - //! Relative conductivities of the dispersed and continuous phases, - /*! - * - * \f[ - * \mathtt{relativeConductivites\_} = \kappa_d / \kappa_0 - * \f] - */ - doublereal relativeConductivities_; - -}; - -} - -#endif diff --git a/src/transport/TortuosityPercolation.cpp b/src/transport/TortuosityPercolation.cpp deleted file mode 100644 index e26e9708a..000000000 --- a/src/transport/TortuosityPercolation.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/** - * @file TortuosityPercolation.cpp - * Base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#include "TortuosityPercolation.h" -#include "cantera/base/ctexceptions.h" - -namespace Cantera -{ - -//==================================================================================================================== -// Default constructor -TortuosityPercolation::TortuosityPercolation(double percolationThreshold, double conductivityExponent) : - TortuosityBase(), - percolationThreshold_(percolationThreshold), - conductivityExponent_(conductivityExponent) -{ - -} -//==================================================================================================================== -// Copy Constructor -/* - * @param right Object to be copied - */ -TortuosityPercolation::TortuosityPercolation(const TortuosityPercolation& right) : - TortuosityBase(), - percolationThreshold_(right.percolationThreshold_), - conductivityExponent_(right.conductivityExponent_) -{ - *this = right; -} -//==================================================================================================================== -// Assignment operator -/* - * @param right Object to be copied - */ -TortuosityPercolation& TortuosityPercolation::operator=(const TortuosityPercolation& right) -{ - if (&right == this) { - return *this; - } - TortuosityBase::operator=(right); - - percolationThreshold_ = right.percolationThreshold_; - conductivityExponent_ = right.conductivityExponent_; - - return *this; -} -//==================================================================================================================== -// Duplication operator -/* - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ -TortuosityBase* TortuosityPercolation::duplMyselfAsTortuosityBase() const -{ - return new TortuosityPercolation(*this); -} -//==================================================================================================================== -// The tortuosity factor models the effective increase in the diffusive transport length. -/* - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - */ -doublereal TortuosityPercolation::tortuosityFactor(doublereal porosity) -{ - return McMillanFactor(porosity) / porosity; -} -//==================================================================================================================== -// The McMillan number is the ratio of the flux-like variable to the value it would have without porous flow. -/* - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ -doublereal TortuosityPercolation::McMillanFactor(doublereal porosity) -{ - doublereal tmp = pow(((porosity - percolationThreshold_) - / (1.0 - percolationThreshold_)) , - conductivityExponent_); - return tmp; -} -//==================================================================================================================== -} diff --git a/src/transport/TortuosityPercolation.h b/src/transport/TortuosityPercolation.h deleted file mode 100644 index 2990728bb..000000000 --- a/src/transport/TortuosityPercolation.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - * @file TortuosityBase.h - * Virtual base class to compute the increase in diffusive path length associated with - * tortuous path diffusion through, for example, porous media. - */ - -/* - * Copyright (2005) Sandia Corporation. Under the terms of - * Contract DE-AC04-94AL85000 with Sandia Corporation, the - * U.S. Government retains certain rights in this software. - */ - -#ifndef CT_TORTUOSITYPERCOLATION_H -#define CT_TORTUOSITYPERCOLATION_H - -#include "TortuosityBase.h" - -namespace Cantera -{ - -//! This class implements transport coefficient corrections -//! appropriate for porous media where percolation theory applies. -class TortuosityPercolation : public TortuosityBase -{ - -public: - //! Default constructor uses Percolation exponent of 1.5 - /*! - * @param setPower Exponent in the Percolation factor. The default is 1.5 - */ - TortuosityPercolation(double percolationThreshold = 0.4, double conductivityExponent = 2.0); - - //! Copy Constructor - /*! - * @param right Object to be copied - */ - TortuosityPercolation(const TortuosityPercolation& right); - - //! Assignment operator - /*! - * @param right Object to be copied - */ - TortuosityPercolation& operator=(const TortuosityPercolation& right); - - //! Duplication operator - /*! - * @return Returns a pointer to a duplicate of the current object given a - * base class pointer - */ - virtual TortuosityBase* duplMyselfAsTortuosityBase() const; - - //! The tortuosity factor models the effective increase in the - //! diffusive transport length. - /*! - * This method returns \f$ 1/\tau^2 \f$ in the description of the flux - * - * \f$ C_T D_i \nabla X_i / \tau^2 \f$. - * - * - */ - virtual doublereal tortuosityFactor(doublereal porosity); - - //! The McMillan number is the ratio of the flux-like - //! variable to the value it would have without porous flow. - /*! - * The McMillan number combines the effect of tortuosity - * and volume fraction of the transported phase. The net flux - * observed is then the product of the McMillan number and the - * non-porous transport rate. For a conductivity in a non-porous - * media, \f$ \kappa_0 \f$, the conductivity in the porous media - * would be \f$ \kappa = (\rm McMillan) \kappa_0 \f$. - */ - virtual doublereal McMillanFactor(doublereal porosity); - - -protected: - - //! Critical volume fraction / site density for percolation - double percolationThreshold_; - - //! Conductivity exponent - /*! - * The McMillan number (ratio of effective conductivity to non-porous conductivity) is - * \f[ \kappa/\kappa_0 = ( \phi - \phi_c )^\mu \f] - * where \f$ \mu \f$ is the conductivity exponent (typical values range from 1.6 to 2.0) and \f$ \phi_c \f$ - * is the percolation threshold. - */ - double conductivityExponent_; -}; - -} - -#endif