From 8f02c777a5904069e8c8b57ae695be1fb383f033 Mon Sep 17 00:00:00 2001 From: Jeff Santner Date: Tue, 14 Nov 2017 14:04:45 -0800 Subject: [PATCH] [ck2cti] Allow negative reaction orders, with warning --- interfaces/cython/cantera/ck2cti.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/interfaces/cython/cantera/ck2cti.py b/interfaces/cython/cantera/ck2cti.py index e2f945862..a475b7f28 100644 --- a/interfaces/cython/cantera/ck2cti.py +++ b/interfaces/cython/cantera/ck2cti.py @@ -306,17 +306,6 @@ class Reaction(object): k_indent = ' ' * (kinstr.find('(') + 1) - options = self.kinetics.options() - if self.duplicate: - options.append('duplicate') - if len(options) == 1: - optStr = repr(options[0]) - else: - optStr = repr(options) - - if self.duplicate: - kinstr = kinstr[:-1] + ",\n{0}options={1})".format(k_indent, optStr) - if self.fwdOrders: order = ' '.join('{0}:{1}'.format(k,v) for (k,v) in self.fwdOrders.items()) @@ -325,6 +314,22 @@ class Reaction(object): if self.ID: kinstr = kinstr[:-1] + ",\n{0}id={1!r})".format(k_indent, self.ID) + options = self.kinetics.options() + if self.duplicate: + options.append('duplicate') + + if any((float(x) < 0 for x in self.fwdOrders.values())): + options.append('negative_orders') + logging.info('Allowing negative reaction order for reaction {0}.'.format(self.index)) + + if len(options) == 1: + optStr = repr(options[0]) + else: + optStr = repr(options) + + if options: + kinstr = kinstr[:-1] + ",\n{0}options={1})".format(k_indent, optStr) + return kinstr