Doxygen update

Rearrangement of LTPspecies to put more routines in .cpp files
This commit is contained in:
Harry Moffat 2010-08-14 19:19:43 +00:00
parent 6ab225ebdf
commit 95fd7f0b76
3 changed files with 160 additions and 100 deletions

View file

@ -15,7 +15,7 @@ using namespace std;
namespace Cantera {
//====================================================================================================================
/**
/*
* Exception thrown if an error is encountered while reading the transport database.
*/
class LTPError : public CanteraError {
@ -48,6 +48,34 @@ namespace Cantera {
E /= GasConstant;
}
//====================================================================================================================
// Construct an LTPspecies object for a liquid tranport property.
/*
* The species transport property is constructed from the XML node,
* \verbatim <propNode>, \endverbatim that is a child of the
* \verbatim <transport> \endverbatim node in the species block and specifies a type of transport
* property (like viscosity)
*
* @param propNode Pointer to the XML node that contains the property information
* @param name String containing the species name
* @param tp_ind enum TransportPropertyType containing the property id that this object
* is creating a parameterization for (e.g., viscosity)
* @param thermo const pointer to the ThermoPhase object, which is used to find the temperature.
*/
LTPspecies::LTPspecies(const XML_Node * const propNode, std::string name,
TransportPropertyType tp_ind, const thermo_t* const thermo) :
m_speciesName(name),
m_model(LTR_MODEL_NOTSET),
m_property(tp_ind),
m_thermo(thermo),
m_mixWeight(1.0)
{
if (propNode) {
if (propNode->hasChild("mixtureWeighting") ) {
m_mixWeight = getFloat(*propNode, "mixtureWeighting");
}
}
}
//====================================================================================================================
// Copy constructor
LTPspecies::LTPspecies(const LTPspecies &right)
{
@ -78,6 +106,43 @@ namespace Cantera {
return prp;
}
//====================================================================================================================
LTPspecies::~LTPspecies()
{
}
//====================================================================================================================
// Returns the vector of pure species tranport property
/*
* The pure species transport property (i.e. pure species viscosity)
* is returned. Any temperature and composition dependence will be
* adjusted internally according to the information provided by the
* subclass object.
*/
doublereal LTPspecies::getSpeciesTransProp()
{
return 0.0;
}
//====================================================================================================================
// Check to see if the property evaluation will be positive
bool LTPspecies::checkPositive() const
{
return (m_coeffs[0] > 0);
}
//====================================================================================================================
doublereal LTPspecies::getMixWeight() const
{
return m_mixWeight;
}
//====================================================================================================================
// Internal model to adjust species-specific properties for composition.
/*
* Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
void LTPspecies::adjustCoeffsForComposition()
{
}
//====================================================================================================================
// Construct an LTPspecies object for a liquid tranport property
// expressed as a constant value.
/* The transport property is constructed from the XML node,
@ -85,17 +150,17 @@ namespace Cantera {
* \verbatim <transport> \endverbatim node and specifies a type of
* transport property (like viscosity)
*/
LTPspecies_Const::LTPspecies_Const(const XML_Node &propNode,
std::string name,
TransportPropertyType tp_ind,
thermo_t* thermo) :
LTPspecies(propNode, name, tp_ind, thermo)
LTPspecies_Const::LTPspecies_Const(const XML_Node &propNode, std::string name,
TransportPropertyType tp_ind, const thermo_t * const thermo) :
LTPspecies(&propNode, name, tp_ind, thermo)
{
m_model = LTR_MODEL_CONSTANT;
double A_k = getFloatCurrent(propNode, "toSI");
if (A_k > 0.0) {
m_coeffs.push_back(A_k);
} else throw LTPError("negative or zero " + propNode.name());
} else {
throw LTPError("negative or zero " + propNode.name());
}
}
//====================================================================================================================
// Copy constructor
@ -109,17 +174,15 @@ namespace Cantera {
LTPspecies_Const& LTPspecies_Const::operator=(const LTPspecies_Const& right)
{
if (&right != this) {
//LTPspecies::operator=(right);
m_speciesName = right.m_speciesName;
m_property = right.m_property;
m_model = right.m_model;
m_coeffs = right.m_coeffs;
m_thermo = right.m_thermo;
m_mixWeight = right.m_mixWeight;
LTPspecies::operator=(right);
}
return *this;
}
//====================================================================================================================
LTPspecies_Const::~LTPspecies_Const()
{
}
//====================================================================================================================
// Duplication routine
/*
* @return Returns a copy of this routine as a pointer to LTPspecies
@ -144,7 +207,7 @@ namespace Cantera {
*/
LTPspecies_Arrhenius::LTPspecies_Arrhenius(const XML_Node &propNode, std::string name,
TransportPropertyType tp_ind, thermo_t* thermo) :
LTPspecies(propNode, name, tp_ind, thermo)
LTPspecies(&propNode, name, tp_ind, thermo)
{
m_model = LTR_MODEL_ARRHENIUS;
m_temp = 0.0;
@ -250,7 +313,7 @@ namespace Cantera {
*/
LTPspecies_Poly::LTPspecies_Poly(const XML_Node &propNode, std::string name,
TransportPropertyType tp_ind, thermo_t* thermo) :
LTPspecies(propNode, name, tp_ind, thermo)
LTPspecies(&propNode, name, tp_ind, thermo)
{
m_model = LTR_MODEL_POLY;
m_temp = 0.0;
@ -327,7 +390,7 @@ namespace Cantera {
*/
LTPspecies_ExpT::LTPspecies_ExpT(const XML_Node &propNode, std::string name, TransportPropertyType tp_ind,
thermo_t* thermo) :
LTPspecies(propNode, name, tp_ind, thermo)
LTPspecies(&propNode, name, tp_ind, thermo)
{
m_model = LTR_MODEL_EXPT;
m_temp = 0.0;

View file

@ -12,7 +12,6 @@
#ifndef CT_LTPSPECIES_H
#define CT_LTPSPECIES_H
// Cantera includes
#include "ct_defs.h"
#include "TransportBase.h"
@ -25,7 +24,7 @@
namespace Cantera {
//====================================================================================================================
//! Enumeration of the types of transport properties that can be
//! handled by the variables in the various Transport classes.
/*!
@ -53,8 +52,9 @@ namespace Cantera {
TP_DIFFUSIVITY,
TP_HYDRORADIUS,
TP_ELECTCOND
};
};
//====================================================================================================================
//! Temperature dependence type for pure (liquid) species properties
/*!
* Types of temperature dependencies:
@ -88,35 +88,38 @@ namespace Cantera {
//! Construct an LTPspecies object for a liquid tranport property.
/*!
* The transport property is constructed from the XML node,
* \verbatim <propNode>, \endverbatim that is a child of the
* \verbatim <transport> \endverbatim node and specifies a type of
* transport property (like viscosity)
* The species transport property is constructed from the XML node,
* \verbatim <propNode>, \endverbatim that is a child of the
* \verbatim <transport> \endverbatim node in the species block and specifies a type of transport
* property (like viscosity)
*
* @param propNode Pointer to the XML node that contains the property information. A default
* value of 0 is allowed for the base class, but not for classes which
* are assumed to be parameterized by reading XML_Node information.
* @param name String containing the species name
* @param tp_ind enum TransportPropertyType containing the property id that this object
* is creating a parameterization for (e.g., viscosity)
* @param thermo const pointer to the ThermoPhase object, which is used to find the temperature.
*/
LTPspecies(const XML_Node &propNode = 0,
std::string name = "-",
TransportPropertyType tp_ind = TP_UNKNOWN,
const thermo_t* const thermo = 0) :
m_speciesName(name),
m_model(LTR_MODEL_NOTSET),
m_property(tp_ind),
m_thermo(thermo),
m_mixWeight(1.0)
{
if (propNode.hasChild("mixtureWeighting") ) {
m_mixWeight = getFloat(propNode, "mixtureWeighting");
}
}
LTPspecies(const XML_Node * const propNode = 0, std::string name = "-",
TransportPropertyType tp_ind = TP_UNKNOWN, const thermo_t* const thermo = 0);
//! Copy constructor
/*!
* @param right Object to be copied
*/
LTPspecies(const LTPspecies &right);
//! Assignment operator
LTPspecies& operator=(const LTPspecies& right);
/*!
* @param right Object to be copied
*/
LTPspecies& operator=(const LTPspecies& right);
virtual ~LTPspecies( ) { }
//! Destructor
virtual ~LTPspecies();
//! duplication routine
//! Duplication routine
/*!
* @return Returns a copy of this routine as a pointer to LTPspecies
*/
@ -127,17 +130,36 @@ namespace Cantera {
* The pure species transport property (i.e. pure species viscosity)
* is returned. Any temperature and composition dependence will be
* adjusted internally according to the information provided by the
* subclass object.
* subclass object.
*
* @return Returns a single double containing the property evaluation
* at the current ThermoPhase temperature.
*/
virtual doublereal getSpeciesTransProp( ) { return 0.0; }
virtual doublereal getSpeciesTransProp();
virtual bool checkPositive( ) { return ( m_coeffs[0] > 0 ); }
//! Check to see if the property evaluation will be positive
/*!
* @return returns a boolean
*/
virtual bool checkPositive() const;
doublereal getMixWeight( ) {
return m_mixWeight;
}
//! return the weight mixture
/*!
* @return returns a single double which is used as a weight
*/
doublereal getMixWeight() const;
private:
//! Internal model to adjust species-specific properties for composition.
/*!
* Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
virtual void adjustCoeffsForComposition();
protected:
//! Species Name
std::string m_speciesName;
@ -166,17 +188,8 @@ namespace Cantera {
* 1.0--note that 0.0 is not innocuous if there are logarithms involved.
*/
doublereal m_mixWeight;
//! Internal model to adjust species-specific properties for composition.
/*!
* Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
virtual void adjustCoeffsForComposition() { }
};
//====================================================================================================================
//! Class LTPspecies_Const holds transport parameters for a
//! specific liquid-phase species (LTPspecies) when the
@ -206,20 +219,32 @@ namespace Cantera {
/** The transport property is constructed from the XML node,
* \verbatim <propNode>, \endverbatim that is a child of the
* \verbatim <transport> \endverbatim node and specifies a type of
* transport property (like viscosity)
* transport property (like viscosity).
*
*
* @param propNode Reference to the XML node that contains the property information.
* @param name String containing the species name
* @param tp_ind enum TransportPropertyType containing the property id that this object
* is creating a parameterization for (e.g., viscosity)
* @param thermo const pointer to the ThermoPhase object, which is used to find the temperature.
*/
LTPspecies_Const(const XML_Node &propNode,
std::string name,
TransportPropertyType tp_ind,
thermo_t* thermo);
LTPspecies_Const(const XML_Node &propNode, std::string name,
TransportPropertyType tp_ind, const thermo_t * const thermo);
//! Copy constructor
/*!
* @param right Object to be copied
*/
LTPspecies_Const(const LTPspecies_Const &right);
//! Assignment operator
LTPspecies_Const& operator=(const LTPspecies_Const& right );
/*!
* @param right Object to be copied
*/
LTPspecies_Const& operator=(const LTPspecies_Const& right);
virtual ~LTPspecies_Const( ) { }
//! Destructor
virtual ~LTPspecies_Const();
//! duplication routine
/*!
@ -233,16 +258,8 @@ namespace Cantera {
* is returned. Any temperature and composition dependence will be
* adjusted internally according to the information provided.
*/
doublereal getSpeciesTransProp( );
doublereal getSpeciesTransProp();
protected:
//! Internal model to adjust species-specific properties for composition.
/** Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
void adjustCoeffsForComposition( ) { }
};
//====================================================================================================================
@ -295,7 +312,7 @@ namespace Cantera {
LTPspecies_Arrhenius( const LTPspecies_Arrhenius &right );
//! Assignment operator
LTPspecies_Arrhenius& operator=(const LTPspecies_Arrhenius& right );
LTPspecies_Arrhenius& operator=(const LTPspecies_Arrhenius& right);
virtual ~LTPspecies_Arrhenius( ) { }
@ -326,7 +343,7 @@ namespace Cantera {
* Any temperature and composition dependence will be
* adjusted internally according to the information provided.
*/
doublereal getSpeciesTransProp( );
doublereal getSpeciesTransProp();
protected:
@ -341,14 +358,6 @@ namespace Cantera {
//! logarithm of most recent evaluation of transport property
doublereal m_logProp;
//! Internal model to adjust species-specific properties for composition.
/*!
* Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
void adjustCoeffsForComposition( ) { }
};
//====================================================================================================================
@ -399,7 +408,8 @@ namespace Cantera {
//! Assignment operator
LTPspecies_Poly& operator=(const LTPspecies_Poly& right );
virtual ~LTPspecies_Poly( ) { }
//! Destructor
virtual ~LTPspecies_Poly() { }
//! Duplication routine
/*!
@ -413,7 +423,7 @@ namespace Cantera {
* is returned. Any temperature and composition dependence will be
* adjusted internally according to the information provided.
*/
doublereal getSpeciesTransProp( );
doublereal getSpeciesTransProp();
protected:
@ -423,13 +433,6 @@ namespace Cantera {
//! most recent evaluation of transport property
doublereal m_prop;
//! Internal model to adjust species-specific properties for composition.
/*!
* Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
void adjustCoeffsForComposition( ){ }
};
//====================================================================================================================
@ -485,7 +488,7 @@ namespace Cantera {
//! Assignment operator
LTPspecies_ExpT& operator=(const LTPspecies_ExpT& right );
virtual ~LTPspecies_ExpT( ) { }
virtual ~LTPspecies_ExpT() { }
//! duplication routine
/*!
@ -499,7 +502,7 @@ namespace Cantera {
* is returned. Any temperature and composition dependence will be
* adjusted internally according to the information provided.
*/
doublereal getSpeciesTransProp( );
doublereal getSpeciesTransProp();
protected:
@ -509,12 +512,6 @@ namespace Cantera {
//! most recent evaluation of transport property
doublereal m_prop;
//! Internal model to adjust species-specific properties for composition.
/** Currently just a place holder, but this method could take
* the composition from the thermo object and adjust coefficients
* accoding to some unspecified model.
*/
void adjustCoeffsForComposition( ){ }
};
//====================================================================================================================

View file

@ -323,7 +323,7 @@ namespace Cantera {
break;
default:
throw CanteraError("newLTP","unknown transport model: " + model);
ltps = new LTPspecies(trNode, name, tp_ind, thermo);
ltps = new LTPspecies(&trNode, name, tp_ind, thermo);
}
return ltps;
}