From 629ea742ac169a16e61cbfa7b918c5a98cbb0921 Mon Sep 17 00:00:00 2001 From: Kevin Spiekermann Date: Fri, 6 Dec 2019 18:11:38 -0500 Subject: [PATCH] Normalize mole fractions for simpleReactor Add code to input.py to normalize mole fractions for simpleReactor if not using a mole fraction range since ranged reactors already normalize. Temp --- rmgpy/rmg/input.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rmgpy/rmg/input.py b/rmgpy/rmg/input.py index 0c152b0323..43b6261191 100644 --- a/rmgpy/rmg/input.py +++ b/rmgpy/rmg/input.py @@ -226,6 +226,23 @@ def simple_reactor(temperature, [not isinstance(x, list) for x in initialMoleFractions.values()]): nSims = 1 + # normalize mole fractions if not using a mole fraction range + if all([not isinstance(x, list) for x in initialMoleFractions.values()]): + total_initial_moles = sum(initialMoleFractions.values()) + if total_initial_moles != 1: + logging.warning('Initial mole fractions do not sum to one; normalizing.') + logging.info('') + logging.info('Original composition:') + for spec, molfrac in initialMoleFractions.items(): + logging.info('{0} = {1}'.format(spec, molfrac)) + for spec in initialMoleFractions: + initialMoleFractions[spec] /= total_initial_moles + logging.info('') + logging.info('Normalized mole fractions:') + for spec, molfrac in initialMoleFractions.items(): + logging.info('{0} = {1}'.format(spec, molfrac)) + logging.info('') + termination = [] if terminationConversion is not None: for spec, conv in terminationConversion.items():