Remove redundant, inaccessible Tortuosity classes

This commit is contained in:
Ray Speth 2014-11-07 02:14:59 +00:00
parent 8b8a95a2ff
commit ecf4301208
8 changed files with 0 additions and 775 deletions

View file

@ -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");
}
//====================================================================================================================
}

View file

@ -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

View file

@ -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_);
}
//====================================================================================================================
}

View file

@ -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

View file

@ -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);
}
//====================================================================================================================
}

View file

@ -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

View file

@ -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;
}
//====================================================================================================================
}

View file

@ -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