Ejemplo n.º 1
0
  //====================================================================================================================
  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];
    }


  }
Ejemplo n.º 2
0
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);
}