From 693beb6de8046ce332fa67cbdf0fa73e84f53885 Mon Sep 17 00:00:00 2001 From: Ingmar Schoegl Date: Sat, 12 Aug 2023 07:34:04 -0500 Subject: [PATCH] [kinetics] Track undeclared third body usage --- include/cantera/kinetics/Kinetics.h | 3 +++ src/kinetics/BulkKinetics.cpp | 2 ++ src/kinetics/Kinetics.cpp | 3 +++ 3 files changed, 8 insertions(+) diff --git a/include/cantera/kinetics/Kinetics.h b/include/cantera/kinetics/Kinetics.h index 9d8af48d1..6c62c4640 100644 --- a/include/cantera/kinetics/Kinetics.h +++ b/include/cantera/kinetics/Kinetics.h @@ -1625,6 +1625,9 @@ protected: //! See skipUndeclaredThirdBodies() bool m_skipUndeclaredThirdBodies = false; + //! Flag indicating whether reactions include undeclared third bodies + bool m_hasUndeclaredThirdBodies = false; + //! reference to Solution std::weak_ptr m_root; }; diff --git a/src/kinetics/BulkKinetics.cpp b/src/kinetics/BulkKinetics.cpp index f35119164..dfa8052de 100644 --- a/src/kinetics/BulkKinetics.cpp +++ b/src/kinetics/BulkKinetics.cpp @@ -88,6 +88,8 @@ void BulkKinetics::addThirdBody(shared_ptr r) throw CanteraError("BulkKinetics::addThirdBody", "Found third-body" " efficiency for undefined species '{}' while adding reaction '{}'", name, r->equation()); + } else { + m_hasUndeclaredThirdBodies = true; } } m_multi_concm.install(nReactions() - 1, efficiencies, diff --git a/src/kinetics/Kinetics.cpp b/src/kinetics/Kinetics.cpp index 5710d69e3..4031a705a 100644 --- a/src/kinetics/Kinetics.cpp +++ b/src/kinetics/Kinetics.cpp @@ -643,6 +643,9 @@ AnyMap Kinetics::parameters() if (nReactions() == 0) { out["reactions"] = "none"; } + if (m_hasUndeclaredThirdBodies) { + out["skip-undeclared-third-bodies"] = true; + } } return out; }