[Cython/1D] Made 'grid' an optional parameter

Having a default initial grid allows restoring a saved solution without creating
a dummy grid that will just be replaced by the one from XML file.
This commit is contained in:
Ray Speth 2013-03-07 18:51:20 +00:00
parent e7f580148f
commit 65fbb10bda
2 changed files with 17 additions and 11 deletions

View file

@ -801,13 +801,15 @@ cdef class Sim1D:
class FlameBase(Sim1D):
""" Base class for flames with a single flow domain """
def __init__(self, domains, gas, grid):
def __init__(self, domains, gas, grid=None):
"""
:param gas:
object to use to evaluate all gas properties and reaction rates
:param grid:
array of initial grid points
"""
if grid is None:
grid = np.linspace(0.0, 0.1, 6)
self.flame.grid = grid
super().__init__(domains)
self.gas = gas
@ -1009,7 +1011,7 @@ for attr in ['forward_rates_of_progress', 'reverse_rates_of_progress', 'net_rate
class FreeFlame(FlameBase):
"""A freely-propagating flat flame."""
def __init__(self, gas, grid):
def __init__(self, gas, grid=None):
"""
A domain of type FreeFlow named 'flame' will be created to represent
the flame. The three domains comprising the stack are stored as
@ -1053,7 +1055,7 @@ class FreeFlame(FlameBase):
class BurnerFlame(FlameBase):
"""A burner-stabilized flat flame."""
def __init__(self, gas, grid):
def __init__(self, gas, grid=None):
"""
:param gas:
`Solution` (using the IdealGas thermodynamic model) used to
@ -1105,7 +1107,7 @@ class BurnerFlame(FlameBase):
class CounterflowDiffusionFlame(FlameBase):
""" A counterflow diffusion flame """
def __init__(self, gas, grid):
def __init__(self, gas, grid=None):
"""
:param gas:
`Solution` (using the IdealGas thermodynamic model) used to
@ -1217,7 +1219,7 @@ class CounterflowDiffusionFlame(FlameBase):
class ImpingingJet(FlameBase):
"""An axisymmetric flow impinging on a surface at normal incidence."""
def __init__(self, gas, grid, surface=None):
def __init__(self, gas, grid=None, surface=None):
"""
:param gas:
`Solution` (using the IdealGas thermodynamic model) used to

View file

@ -49,11 +49,12 @@ class TestOnedim(utilities.CanteraTest):
class TestFreeFlame(utilities.CanteraTest):
tol_ss = [1.0e-5, 1.0e-13] # [rtol atol] for steady-state problem
tol_ts = [1.0e-4, 1.0e-10] # [rtol atol] for time stepping
def create_sim(self, p, Tin, reactants):
initial_grid = [0.0, 0.001, 0.01, 0.02, 0.029, 0.03] # m
tol_ss = [1.0e-5, 1.0e-13] # [rtol atol] for steady-state problem
tol_ts = [1.0e-4, 1.0e-10] # [rtol atol] for time stepping
# IdealGasMix object used to compute mixture properties
self.gas = ct.Solution('h2o2.xml')
@ -61,8 +62,8 @@ class TestFreeFlame(utilities.CanteraTest):
# Flame object
self.sim = ct.FreeFlame(self.gas, initial_grid)
self.sim.flame.set_steady_tolerances(default=tol_ss)
self.sim.flame.set_transient_tolerances(default=tol_ts)
self.sim.flame.set_steady_tolerances(default=self.tol_ss)
self.sim.flame.set_transient_tolerances(default=self.tol_ts)
# Set properties of the upstream fuel-air mixture
self.sim.inlet.T = Tin
@ -212,8 +213,11 @@ class TestFreeFlame(utilities.CanteraTest):
self.sim.save(filename, 'test', loglevel=0)
self.create_sim(ct.one_atm, Tin, reactants)
self.sim.energy_enabled = False
# Create flame object with dummy initial grid
self.sim = ct.FreeFlame(self.gas)
self.sim.flame.set_steady_tolerances(default=self.tol_ss)
self.sim.flame.set_transient_tolerances(default=self.tol_ts)
self.sim.restore(filename, 'test', loglevel=0)
P2a = self.sim.P