diff --git a/include/cantera/oneD/StFlow.h b/include/cantera/oneD/StFlow.h index 9b39a0768..deed089bf 100644 --- a/include/cantera/oneD/StFlow.h +++ b/include/cantera/oneD/StFlow.h @@ -78,7 +78,12 @@ public: //! set the transport manager void setTransport(Transport& trans); - void enableSoret(bool withSoret); + //! Enable thermal diffusion, also known as Soret diffusion. + //! Requires that multicomponent transport properties be + //! enabled to carry out calculations. + void enableSoret(bool withSoret) { + m_do_soret = withSoret; + } bool withSoret() const { return m_do_soret; } diff --git a/interfaces/cython/cantera/_cantera.pxd b/interfaces/cython/cantera/_cantera.pxd index 815a0486e..d7bcd53c9 100644 --- a/interfaces/cython/cantera/_cantera.pxd +++ b/interfaces/cython/cantera/_cantera.pxd @@ -748,7 +748,7 @@ cdef extern from "cantera/oneD/Sim1D.h": void setMaxGridPoints(int, size_t) except +translate_exception size_t maxGridPoints(size_t) except +translate_exception void setGridMin(int, double) except +translate_exception - void setFixedTemperature(double) + void setFixedTemperature(double) except +translate_exception void setInterrupt(CxxFunc1*) except +translate_exception void setTimeStepCallback(CxxFunc1*) void setSteadyCallback(CxxFunc1*) diff --git a/src/oneD/StFlow.cpp b/src/oneD/StFlow.cpp index 2b08d0963..8ae383295 100644 --- a/src/oneD/StFlow.cpp +++ b/src/oneD/StFlow.cpp @@ -132,7 +132,7 @@ void StFlow::setupGrid(size_t n, const doublereal* z) } } -void StFlow::resetBadValues(double* xg) +void StFlow::resetBadValues(double* xg) { double* x = xg + loc(); for (size_t j = 0; j < m_points; j++) { @@ -154,17 +154,6 @@ void StFlow::setTransport(Transport& trans) } } -void StFlow::enableSoret(bool withSoret) -{ - if (m_do_multicomponent) { - m_do_soret = withSoret; - } else { - throw CanteraError("setTransport", - "Thermal diffusion (the Soret effect) " - "requires using a multicomponent transport model."); - } -} - void StFlow::_getInitialSoln(double* x) { for (size_t j = 0; j < m_points; j++) { @@ -195,6 +184,12 @@ void StFlow::setGasAtMidpoint(const doublereal* x, size_t j) void StFlow::_finalize(const doublereal* x) { + if (!m_do_multicomponent && m_do_soret) { + throw CanteraError("_finalize", + "Thermal diffusion (the Soret effect) is enabled, and requires " + "using a multicomponent transport model."); + } + size_t nz = m_zfix.size(); bool e = m_do_energy[0]; for (size_t j = 0; j < m_points; j++) {