//==================================================================================================================== void Kinetics::assignShallowPointers(const std::vector<thermo_t*> & tpVector) { size_t ns = tpVector.size(); if (ns != m_thermo.size()) { throw CanteraError(" Kinetics::assignShallowPointers", " Number of ThermoPhase objects arent't the same"); } for (size_t i = 0; i < ns; i++) { ThermoPhase *ntp = tpVector[i]; ThermoPhase *otp = m_thermo[i]; if (ntp->id() != otp->id()) { throw CanteraError(" Kinetics::assignShallowPointers", " id() of the ThermoPhase objects isn't the same"); } if (ntp->eosType() != otp->eosType()) { throw CanteraError(" Kinetics::assignShallowPointers", " eosType() of the ThermoPhase objects isn't the same"); } if (ntp->nSpecies() != otp->nSpecies()) { throw CanteraError(" Kinetics::assignShallowPointers", " Number of ThermoPhase objects isn't the same"); } m_thermo[i] = tpVector[i]; } }
void IdealGasReactor::setThermoMgr(ThermoPhase& thermo) { //! @TODO: Add a method to ThermoPhase that indicates whether a given //! subclass is compatible with this reactor model if (thermo.eosType() != cIdealGas) { throw CanteraError("IdealGasReactor::setThermoMgr", "Incompatible phase type provided"); } Reactor::setThermoMgr(thermo); }