157 lines
4.1 KiB
C++
157 lines
4.1 KiB
C++
/**
|
|
* @file SpeciesThermoInterpType.cpp
|
|
*/
|
|
|
|
// This file is part of Cantera. See License.txt in the top-level directory or
|
|
// at http://www.cantera.org/license.txt for license and copyright information.
|
|
|
|
#include "cantera/thermo/SpeciesThermoInterpType.h"
|
|
#include "cantera/thermo/VPSSMgr.h"
|
|
#include "cantera/thermo/PDSS.h"
|
|
|
|
namespace Cantera
|
|
{
|
|
|
|
SpeciesThermoInterpType::SpeciesThermoInterpType() :
|
|
m_lowT(0.0),
|
|
m_highT(0.0),
|
|
m_Pref(0.0)
|
|
{
|
|
}
|
|
|
|
SpeciesThermoInterpType::SpeciesThermoInterpType(double tlow,
|
|
double thigh,
|
|
double pref) :
|
|
m_lowT(tlow),
|
|
m_highT(thigh),
|
|
m_Pref(pref)
|
|
{
|
|
}
|
|
|
|
SpeciesThermoInterpType::SpeciesThermoInterpType(const SpeciesThermoInterpType &b) :
|
|
m_lowT(b.m_lowT),
|
|
m_highT(b.m_highT),
|
|
m_Pref(b.m_Pref)
|
|
{
|
|
warn_deprecated("SpeciesThermoInterpType copy constructor",
|
|
"To be removed after Cantera 2.3.");
|
|
}
|
|
|
|
SpeciesThermoInterpType& SpeciesThermoInterpType::operator=(const SpeciesThermoInterpType& b)
|
|
{
|
|
warn_deprecated("SpeciesThermoInterpType assignment operator",
|
|
"To be removed after Cantera 2.3.");
|
|
if (&b != this) {
|
|
m_lowT = b.m_lowT;
|
|
m_highT = b.m_highT;
|
|
m_Pref = b.m_Pref;
|
|
}
|
|
return *this;
|
|
}
|
|
|
|
void SpeciesThermoInterpType::updateProperties(const doublereal* tempPoly,
|
|
doublereal* cp_R, doublereal* h_RT, doublereal* s_R) const
|
|
{
|
|
double T = tempPoly[0];
|
|
updatePropertiesTemp(T, cp_R, h_RT, s_R);
|
|
}
|
|
|
|
doublereal SpeciesThermoInterpType::reportHf298(doublereal* const h298) const
|
|
{
|
|
throw CanteraError("SpeciesThermoInterpType::reportHf298",
|
|
"Not implemented");
|
|
}
|
|
|
|
void SpeciesThermoInterpType::modifyOneHf298(const size_t k,
|
|
const doublereal Hf298New)
|
|
{
|
|
throw CanteraError("SpeciesThermoInterpType::modifyOneHf298",
|
|
"Not implemented");
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
STITbyPDSS::STITbyPDSS()
|
|
{
|
|
warn_deprecated("STITbyPDSS::STITbyPDSS()",
|
|
"Default constructor to be removed after Cantera 2.3.");
|
|
}
|
|
|
|
STITbyPDSS::STITbyPDSS(VPSSMgr* vpssmgr_ptr, PDSS* PDSS_ptr) :
|
|
SpeciesThermoInterpType(),
|
|
m_vpssmgr_ptr(vpssmgr_ptr),
|
|
m_PDSS_ptr(PDSS_ptr)
|
|
{
|
|
}
|
|
|
|
STITbyPDSS::STITbyPDSS(const STITbyPDSS& b) :
|
|
SpeciesThermoInterpType(b),
|
|
m_vpssmgr_ptr(b.m_vpssmgr_ptr),
|
|
m_PDSS_ptr(b.m_PDSS_ptr)
|
|
{
|
|
}
|
|
|
|
SpeciesThermoInterpType* STITbyPDSS::duplMyselfAsSpeciesThermoInterpType() const
|
|
{
|
|
return new STITbyPDSS(*this);
|
|
}
|
|
|
|
void STITbyPDSS::initAllPtrs(size_t speciesIndex, VPSSMgr* vpssmgr_ptr,
|
|
PDSS* PDSS_ptr)
|
|
{
|
|
m_vpssmgr_ptr = vpssmgr_ptr;
|
|
m_PDSS_ptr = PDSS_ptr;
|
|
}
|
|
|
|
doublereal STITbyPDSS::minTemp() const
|
|
{
|
|
return m_PDSS_ptr->minTemp();
|
|
}
|
|
|
|
doublereal STITbyPDSS::maxTemp() const
|
|
{
|
|
return m_PDSS_ptr->maxTemp();
|
|
}
|
|
|
|
doublereal STITbyPDSS::refPressure() const
|
|
{
|
|
return m_PDSS_ptr->refPressure();
|
|
}
|
|
|
|
int STITbyPDSS::reportType() const
|
|
{
|
|
return PDSS_TYPE;
|
|
}
|
|
|
|
void STITbyPDSS::updateProperties(const doublereal* tempPoly,
|
|
doublereal* cp_R, doublereal* h_RT,
|
|
doublereal* s_R) const
|
|
{
|
|
doublereal T = tempPoly[0];
|
|
updatePropertiesTemp(T, cp_R, h_RT, s_R);
|
|
}
|
|
|
|
void STITbyPDSS::updatePropertiesTemp(const doublereal temp,
|
|
doublereal* cp_R,
|
|
doublereal* h_RT,
|
|
doublereal* s_R) const
|
|
{
|
|
m_PDSS_ptr->setTemperature(temp);
|
|
*h_RT = m_PDSS_ptr->enthalpy_RT_ref();
|
|
*cp_R = m_PDSS_ptr->cp_R_ref();
|
|
*s_R = m_PDSS_ptr->entropy_R_ref();
|
|
}
|
|
|
|
void STITbyPDSS::reportParameters(size_t& index, int& type,
|
|
doublereal& minTemp, doublereal& maxTemp,
|
|
doublereal& refPressure,
|
|
doublereal* const coeffs) const
|
|
{
|
|
index = 0;
|
|
type = PDSS_TYPE;
|
|
minTemp = m_vpssmgr_ptr->minTemp();
|
|
maxTemp = m_vpssmgr_ptr->maxTemp();
|
|
refPressure = m_PDSS_ptr->refPressure();
|
|
}
|
|
|
|
}
|