void GasKinetics::modifyReaction(size_t i, shared_ptr<Reaction> rNew) { // operations common to all reaction types BulkKinetics::modifyReaction(i, rNew); switch (rNew->reaction_type) { case ELEMENTARY_RXN: modifyElementaryReaction(i, dynamic_cast<ElementaryReaction&>(*rNew)); break; case THREE_BODY_RXN: modifyThreeBodyReaction(i, dynamic_cast<ThreeBodyReaction&>(*rNew)); break; case FALLOFF_RXN: case CHEMACT_RXN: modifyFalloffReaction(i, dynamic_cast<FalloffReaction&>(*rNew)); break; case PLOG_RXN: modifyPlogReaction(i, dynamic_cast<PlogReaction&>(*rNew)); break; case CHEBYSHEV_RXN: modifyChebyshevReaction(i, dynamic_cast<ChebyshevReaction&>(*rNew)); break; default: throw CanteraError("GasKinetics::modifyReaction", "Unknown reaction type specified: " + int2str(rNew->reaction_type)); } // invalidate all cached data m_ROP_ok = false; m_temp += 0.1234; m_pres += 0.1234; }
void AqueousKinetics::modifyReaction(size_t i, shared_ptr<Reaction> rNew) { BulkKinetics::modifyReaction(i, rNew); modifyElementaryReaction(i, dynamic_cast<ElementaryReaction&>(*rNew)); // invalidate all cached data m_ROP_ok = false; m_temp += 0.1234; }