From 67de2fa793c488088ee463b522a7007a34968627 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 10 Jun 2014 16:22:37 +0000 Subject: [PATCH] [Reactor] Refactor re-implementations of Reactor::initialize The base class methods does almost all the initialization needed for the derived classes, so call that first and then do any additional steps needed. --- src/zeroD/ConstPressureReactor.cpp | 33 ++-------------------- src/zeroD/IdealGasConstPressureReactor.cpp | 32 +-------------------- src/zeroD/IdealGasReactor.cpp | 33 +--------------------- 3 files changed, 4 insertions(+), 94 deletions(-) diff --git a/src/zeroD/ConstPressureReactor.cpp b/src/zeroD/ConstPressureReactor.cpp index 03f0572d0..341284237 100644 --- a/src/zeroD/ConstPressureReactor.cpp +++ b/src/zeroD/ConstPressureReactor.cpp @@ -51,37 +51,8 @@ void ConstPressureReactor::getInitialConditions(double t0, size_t leny, double* void ConstPressureReactor::initialize(doublereal t0) { - m_thermo->restoreState(m_state); - m_sdot.resize(m_nsp, 0.0); - m_wdot.resize(m_nsp, 0.0); - m_nv = m_nsp + 2; - for (size_t w = 0; w < m_nwalls; w++) - if (m_wall[w]->surface(m_lr[w])) { - m_nv += m_wall[w]->surface(m_lr[w])->nSpecies(); - } - - m_enthalpy = m_thermo->enthalpy_mass(); - m_pressure = m_thermo->pressure(); - m_intEnergy = m_thermo->intEnergy_mass(); - - size_t nt = 0, maxnt = 0; - for (size_t m = 0; m < m_nwalls; m++) { - if (m_wall[m]->kinetics(m_lr[m])) { - nt = m_wall[m]->kinetics(m_lr[m])->nTotalSpecies(); - maxnt = std::max(maxnt, nt); - if (m_wall[m]->kinetics(m_lr[m])) { - if (&m_kin->thermo(0) != - &m_wall[m]->kinetics(m_lr[m])->thermo(0)) { - throw CanteraError("ConstPressureReactor::initialize", - "First phase of all kinetics managers must be" - " the gas."); - } - } - } - } - m_work.resize(maxnt); - std::sort(m_pnum.begin(), m_pnum.end()); - m_init = true; + Reactor::initialize(t0); + m_nv -= 1; // Constant pressure reactor has one fewer state variable } void ConstPressureReactor::updateState(doublereal* y) diff --git a/src/zeroD/IdealGasConstPressureReactor.cpp b/src/zeroD/IdealGasConstPressureReactor.cpp index 68a83fe6d..753b752b7 100644 --- a/src/zeroD/IdealGasConstPressureReactor.cpp +++ b/src/zeroD/IdealGasConstPressureReactor.cpp @@ -62,38 +62,8 @@ void IdealGasConstPressureReactor::getInitialConditions(double t0, size_t leny, void IdealGasConstPressureReactor::initialize(doublereal t0) { - m_thermo->restoreState(m_state); - m_sdot.resize(m_nsp, 0.0); - m_wdot.resize(m_nsp, 0.0); + ConstPressureReactor::initialize(t0); m_hk.resize(m_nsp, 0.0); - m_nv = m_nsp + 2; - for (size_t w = 0; w < m_nwalls; w++) - if (m_wall[w]->surface(m_lr[w])) { - m_nv += m_wall[w]->surface(m_lr[w])->nSpecies(); - } - - m_enthalpy = m_thermo->enthalpy_mass(); - m_pressure = m_thermo->pressure(); - m_intEnergy = m_thermo->intEnergy_mass(); - - size_t nt = 0, maxnt = 0; - for (size_t m = 0; m < m_nwalls; m++) { - if (m_wall[m]->kinetics(m_lr[m])) { - nt = m_wall[m]->kinetics(m_lr[m])->nTotalSpecies(); - maxnt = std::max(maxnt, nt); - if (m_wall[m]->kinetics(m_lr[m])) { - if (&m_kin->thermo(0) != - &m_wall[m]->kinetics(m_lr[m])->thermo(0)) { - throw CanteraError("IdealGasConstPressureReactor::initialize", - "First phase of all kinetics managers must be" - " the gas."); - } - } - } - } - m_work.resize(maxnt); - std::sort(m_pnum.begin(), m_pnum.end()); - m_init = true; } void IdealGasConstPressureReactor::updateState(doublereal* y) diff --git a/src/zeroD/IdealGasReactor.cpp b/src/zeroD/IdealGasReactor.cpp index 6338f0a4f..8fa0d6fbc 100644 --- a/src/zeroD/IdealGasReactor.cpp +++ b/src/zeroD/IdealGasReactor.cpp @@ -64,39 +64,8 @@ void IdealGasReactor::getInitialConditions(double t0, size_t leny, double* y) void IdealGasReactor::initialize(doublereal t0) { - m_thermo->restoreState(m_state); - m_sdot.resize(m_nsp, 0.0); - m_wdot.resize(m_nsp, 0.0); + Reactor::initialize(t0); m_uk.resize(m_nsp, 0.0); - m_nv = m_nsp + 3; - for (size_t w = 0; w < m_nwalls; w++) - if (m_wall[w]->surface(m_lr[w])) { - m_nv += m_wall[w]->surface(m_lr[w])->nSpecies(); - } - - m_enthalpy = m_thermo->enthalpy_mass(); - m_pressure = m_thermo->pressure(); - m_intEnergy = m_thermo->intEnergy_mass(); - - size_t nt = 0, maxnt = 0; - for (size_t m = 0; m < m_nwalls; m++) { - m_wall[m]->initialize(); - if (m_wall[m]->kinetics(m_lr[m])) { - nt = m_wall[m]->kinetics(m_lr[m])->nTotalSpecies(); - maxnt = std::max(maxnt, nt); - if (m_wall[m]->kinetics(m_lr[m])) { - if (&m_kin->thermo(0) != - &m_wall[m]->kinetics(m_lr[m])->thermo(0)) { - throw CanteraError("IdealGasReactor::initialize", - "First phase of all kinetics managers must be" - " the gas."); - } - } - } - } - m_work.resize(maxnt); - std::sort(m_pnum.begin(), m_pnum.end()); - m_init = true; } void IdealGasReactor::updateState(doublereal* y)