From 028bca0d73fa16df7d2a1126e877ad6133925b25 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 11 Nov 2014 00:11:55 +0000 Subject: [PATCH] [Kinetics] Implement addReaction from Reaction for AqueousKinetics --- include/cantera/kinetics/AqueousKinetics.h | 1 + src/kinetics/AqueousKinetics.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/cantera/kinetics/AqueousKinetics.h b/include/cantera/kinetics/AqueousKinetics.h index 9bc8dbf95..772c179b1 100644 --- a/include/cantera/kinetics/AqueousKinetics.h +++ b/include/cantera/kinetics/AqueousKinetics.h @@ -56,6 +56,7 @@ public: void updateKc(); virtual void addReaction(ReactionData& r); + virtual void addReaction(shared_ptr r); }; } diff --git a/src/kinetics/AqueousKinetics.cpp b/src/kinetics/AqueousKinetics.cpp index ea0a1ba3b..986985107 100644 --- a/src/kinetics/AqueousKinetics.cpp +++ b/src/kinetics/AqueousKinetics.cpp @@ -11,6 +11,7 @@ */ #include "cantera/kinetics/AqueousKinetics.h" +#include "cantera/kinetics/Reaction.h" #include "cantera/base/vec_functions.h" using namespace std; @@ -156,4 +157,16 @@ void AqueousKinetics::addReaction(ReactionData& r) BulkKinetics::addReaction(r); } +void AqueousKinetics::addReaction(shared_ptr r) +{ + if (r->reaction_type == ELEMENTARY_RXN) { + addElementaryReaction(dynamic_cast(*r)); + } else { + throw CanteraError("AqueousKinetics::addReaction", + "Invalid reaction type: " + int2str(r->reaction_type)); + } + + BulkKinetics::addReaction(r); +} + }