From d9b95b2efbe6c512f00f72fe2e0bf4fda76ba7e6 Mon Sep 17 00:00:00 2001 From: CyberDrudge Date: Fri, 11 Jan 2019 03:14:00 +0530 Subject: [PATCH] [Examples] Fix refinement check in ic_engine.py The previous refinement check didn't work because the loop never reached n2 == 4. Replace is checks with == checks. --- interfaces/cython/cantera/examples/reactors/ic_engine.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/interfaces/cython/cantera/examples/reactors/ic_engine.py b/interfaces/cython/cantera/examples/reactors/ic_engine.py index 66785fc95..190939bbf 100644 --- a/interfaces/cython/cantera/examples/reactors/ic_engine.py +++ b/interfaces/cython/cantera/examples/reactors/ic_engine.py @@ -141,16 +141,19 @@ for n1, t_i in enumerate(t): injector_mfc.set_mass_flow_rate(0) # perform time integration, refine time step if necessary + solved = False for n2 in range(4): - if n2 is 4: - raise 'Error: Refinement limit reached' try: sim.advance(t_i) + solved = True + break except ct.CanteraError: sim.set_max_time_step(1e-6 * 10. ** -n2) n_last_refinement = n1 + if not solved: + raise ct.CanteraError('Refinement limit reached') # coarsen time step if too long ago - if n1 - n_last_refinement is n_wait_coarsening: + if n1 - n_last_refinement == n_wait_coarsening: sim.set_max_time_step(1e-5) # write output data