diff --git a/Cantera/src/transport/AqueousTransport.h b/Cantera/src/transport/AqueousTransport.h index 446701ddb..07e3e3dd9 100644 --- a/Cantera/src/transport/AqueousTransport.h +++ b/Cantera/src/transport/AqueousTransport.h @@ -135,7 +135,7 @@ namespace Cantera { virtual ~AqueousTransport() {} //! Return the model id for this transport parameterization - virtual int model() { return cAqueousTransport; } + virtual int model() const { return cAqueousTransport; } //! overloaded base class methods diff --git a/Cantera/src/transport/DustyGasTransport.h b/Cantera/src/transport/DustyGasTransport.h index aaedc9947..e28fa4ae5 100644 --- a/Cantera/src/transport/DustyGasTransport.h +++ b/Cantera/src/transport/DustyGasTransport.h @@ -40,7 +40,7 @@ namespace Cantera { //--------------------------------------------------------- // overloaded base class methods - virtual int model() { return cDustyGasTransport; } + virtual int model() const { return cDustyGasTransport; } virtual void setParameters(const int type, const int k, const doublereal* const p); diff --git a/Cantera/src/transport/LiquidTransport.cpp b/Cantera/src/transport/LiquidTransport.cpp index aa2f0a3da..8175c32eb 100644 --- a/Cantera/src/transport/LiquidTransport.cpp +++ b/Cantera/src/transport/LiquidTransport.cpp @@ -926,4 +926,20 @@ namespace Cantera { } } } + + + /** + * Throw an exception if this method is invoked. + * This probably indicates something is not yet implemented. + */ + doublereal LiquidTransport::err(std::string msg) const { + throw CanteraError("Liquid Transport Class", + "\n\n\n**** Method "+ msg +" not implemented in model " + + int2str(model()) + " ****\n" + "(Did you forget to specify a transport model?)\n\n\n"); + + return 0.0; + } + + } diff --git a/Cantera/src/transport/LiquidTransport.h b/Cantera/src/transport/LiquidTransport.h index 06f93bb37..852641192 100644 --- a/Cantera/src/transport/LiquidTransport.h +++ b/Cantera/src/transport/LiquidTransport.h @@ -193,7 +193,7 @@ namespace Cantera { //! Return the model id for this transport parameterization - virtual int model() { + virtual int model() const { return cLiquidTransport; } diff --git a/Cantera/src/transport/MixTransport.h b/Cantera/src/transport/MixTransport.h index a7558ca42..18a781577 100755 --- a/Cantera/src/transport/MixTransport.h +++ b/Cantera/src/transport/MixTransport.h @@ -51,7 +51,7 @@ namespace Cantera { virtual ~MixTransport() {} - virtual int model() { return cMixtureAveraged; } + virtual int model() const { return cMixtureAveraged; } //! Viscosity of the mixture /*! diff --git a/Cantera/src/transport/MultiTransport.h b/Cantera/src/transport/MultiTransport.h index f362ac253..5979b8ce9 100755 --- a/Cantera/src/transport/MultiTransport.h +++ b/Cantera/src/transport/MultiTransport.h @@ -85,7 +85,7 @@ namespace Cantera { virtual ~MultiTransport(); // overloaded base class methods - virtual int model() { + virtual int model() const { if (m_mode == CK_Mode) return CK_Multicomponent; else diff --git a/Cantera/src/transport/SolidTransport.h b/Cantera/src/transport/SolidTransport.h index 027ba9816..76e18f943 100644 --- a/Cantera/src/transport/SolidTransport.h +++ b/Cantera/src/transport/SolidTransport.h @@ -46,7 +46,7 @@ namespace Cantera { public: virtual ~SolidTransport() {} - virtual int model() { return cSolidTransport; } + virtual int model() const { return cSolidTransport; } virtual doublereal thermalConductivity(); virtual void getMixDiffCoeffs(doublereal* const d); diff --git a/Cantera/src/transport/TransportBase.cpp b/Cantera/src/transport/TransportBase.cpp index 532530690..75da215b7 100644 --- a/Cantera/src/transport/TransportBase.cpp +++ b/Cantera/src/transport/TransportBase.cpp @@ -9,10 +9,12 @@ #include "ThermoPhase.h" #include "LiquidTransport.h" +#include "ctexceptions.h" #include "utilities.h" #include "LiquidTransportParams.h" #include "TransportFactory.h" +#include "stringUtils.h" #include "ctlapack.h" @@ -31,8 +33,6 @@ namespace Cantera { //////////////////// class LiquidTransport methods ////////////// - - Transport::Transport(thermo_t* thermo, int ndim) : m_thermo(thermo), m_ready(false), @@ -109,5 +109,37 @@ namespace Cantera { { err("setParameters"); } + + + void Transport::setThermo(thermo_t& thermo) { + if (!ready()) { + m_thermo = &thermo; + m_nmin = m_thermo->nSpecies(); + } + else + throw CanteraError("Transport::setThermo", + "the phase object cannot be changed after " + "the transport manager has been constructed."); + } + + + doublereal Transport::err(std::string msg) const { + + throw CanteraError("Transport Base Class", + "\n\n\n**** Method "+ msg +" not implemented in model " + + int2str(model()) + " ****\n" + "(Did you forget to specify a transport model?)\n\n\n"); + + return 0.0; + } + + void Transport::finalize() { + if (!ready()) + m_ready = true; + else + throw CanteraError("Transport::finalize", + "finalize has already been called."); + } + } diff --git a/Cantera/src/transport/TransportBase.h b/Cantera/src/transport/TransportBase.h index 777cc8315..dd0d7aae3 100755 --- a/Cantera/src/transport/TransportBase.h +++ b/Cantera/src/transport/TransportBase.h @@ -109,7 +109,7 @@ namespace Cantera { * virtual method returns an integer flag that identifies the * transport model implemented. The base class returns 0. */ - virtual int model() {return 0;} + virtual int model() const {return 0;} /** * Phase object. Every transport manager is designed to compute diff --git a/Cantera/src/transport/TransportFactory.cpp b/Cantera/src/transport/TransportFactory.cpp index aa7490c2b..2beffa8e9 100755 --- a/Cantera/src/transport/TransportFactory.cpp +++ b/Cantera/src/transport/TransportFactory.cpp @@ -95,31 +95,6 @@ namespace Cantera { #endif }; - //////////////////// class Transport methods ///////////////////// - - void Transport::setThermo(thermo_t& thermo) { - if (!ready()) { - m_thermo = &thermo; - m_nmin = m_thermo->nSpecies(); - } - else - throw CanteraError("Transport::setThermo", - "the phase object cannot be changed after " - "the transport manager has been constructed."); - } - - void Transport::finalize() { - if (!ready()) - m_ready = true; - else - throw CanteraError("Transport::finalize", - "finalize has already been called."); - } - - doublereal Transport::err(string msg) const { - throw NotImplemented(msg); - //return 0.0; - } //////////////////// class TransportFactory methods ////////////// diff --git a/Cantera/src/transport/WaterTransport.h b/Cantera/src/transport/WaterTransport.h index 6e3b10b4a..31d89966a 100644 --- a/Cantera/src/transport/WaterTransport.h +++ b/Cantera/src/transport/WaterTransport.h @@ -81,7 +81,7 @@ namespace Cantera { virtual ~WaterTransport(); //! Return the model id for this transport parameterization - virtual int model() { + virtual int model() const { return cWaterTransport; }