[Python] Added interface to "setGridMin" in relevant 1D classes

This commit is contained in:
Ray Speth 2012-12-06 17:31:49 +00:00
parent b4f34045a8
commit 2805db17e9
10 changed files with 56 additions and 0 deletions

View file

@ -83,6 +83,9 @@ class BurnerDiffFlame(Stack):
ratio = ratio, slope = slope, curve = curve,
prune = prune)
def setGridMin(self, gridmin):
Stack.setGridMin(self, self.flame, gridmin)
def setProfile(self, component, locs, vals):
self._initialized = 1
Stack.setProfile(self, self.flame, component, locs, vals)

View file

@ -83,6 +83,9 @@ class BurnerFlame(Stack):
ratio = ratio, slope = slope, curve = curve,
prune = prune)
def setGridMin(self, gridmin):
Stack.setGridMin(self, self.flame, gridmin)
def setProfile(self, component, locs, vals):
self._initialized = 1
Stack.setProfile(self, self.flame, component, locs, vals)

View file

@ -162,6 +162,9 @@ class CounterFlame(Stack):
ratio = ratio, slope = slope, curve = curve,
prune = prune)
def setGridMin(self, gridmin):
Stack.setGridMin(self, self.flame, gridmin)
def setProfile(self, component, locs, vals):
self._initialized = 1
Stack.setProfile(self, self.flame, component, locs, vals)

View file

@ -79,6 +79,9 @@ class FreeFlame(Stack):
ratio = ratio, slope = slope, curve = curve,
prune = prune)
def setGridMin(self, gridmin):
Stack.setGridMin(self, self.flame, gridmin)
def setFixedTemperature(self, temp):
_cantera.sim1D_setFixedTemperature(self._hndl, temp)

View file

@ -86,6 +86,9 @@ class StagnationFlow(Stack):
ratio = ratio, slope = slope, curve = curve,
prune = prune)
def setGridMin(self, gridmin):
Stack.setGridMin(self, self.flow, gridmin)
def setProfile(self, component, locs, vals):
self._initialized = 1
Stack.setProfile(self, self.flow, component, locs, vals)

View file

@ -617,6 +617,18 @@ class Stack:
return _cantera.sim1D_setRefineCriteria(self._hndl,
idom, ratio, slope, curve, prune)
def setGridMin(self, domain, gridmin):
"""
Set the minimum allowable grid spacing in a domain.
:param domain:
domain object
:param gridmin:
The minimum allowable grid spacing [m] for this domain
"""
idom = domain.index()
return _cantera.sim1D_setGridMin(self._hndl, idom, gridmin)
def save(self, file = 'soln.xml', id = 'solution', desc = 'none'):
"""Save the solution in XML format.

View file

@ -609,6 +609,16 @@ extern "C" {
}
}
int sim1D_setGridMin(int i, int dom, double gridmin)
{
try {
SimCabinet::item(i).setGridMin(dom, gridmin);
return 0;
} catch (...) {
return handleAllExceptions(-1, ERR);
}
}
int sim1D_save(int i, char* fname, char* id, char* desc)
{
try {

View file

@ -71,6 +71,7 @@ extern "C" {
CANTERA_CAPI int sim1D_refine(int i, int loglevel);
CANTERA_CAPI int sim1D_setRefineCriteria(int i, int dom, double ratio,
double slope, double curve, double prune);
CANTERA_CAPI int sim1D_setGridMin(int i, int dom, double gridmin);
CANTERA_CAPI int sim1D_save(int i, char* fname, char* id,
char* desc);
CANTERA_CAPI int sim1D_restore(int i, char* fname, char* id);

View file

@ -957,6 +957,23 @@ py_sim1D_setRefineCriteria(PyObject* self, PyObject* args)
return Py_BuildValue("i",_val);
}
static PyObject*
py_sim1D_setGridMin(PyObject* self, PyObject* args)
{
int _val;
int i;
int dom;
double gridmin;
if (!PyArg_ParseTuple(args, "iid:sim1D_setGridMin", &i, &dom, &gridmin)) {
return NULL;
}
_val = sim1D_setGridMin(i,dom,gridmin);
if (int(_val) == -1) {
return reportCanteraError();
}
return Py_BuildValue("i",_val);
}
static PyObject*
py_sim1D_getInitialSoln(PyObject* self, PyObject* args)

View file

@ -146,6 +146,7 @@ static PyMethodDef ct_methods[] = {
{"sim1D_solve", py_sim1D_solve, METH_VARARGS},
{"sim1D_refine", py_sim1D_refine, METH_VARARGS},
{"sim1D_setRefineCriteria", py_sim1D_setRefineCriteria, METH_VARARGS},
{"sim1D_setGridMin", py_sim1D_setGridMin, METH_VARARGS},
{"sim1D_save", py_sim1D_save, METH_VARARGS},
{"sim1D_restore", py_sim1D_restore, METH_VARARGS},
{"sim1D_writeStats", py_sim1D_writeStats, METH_VARARGS},