945 lines
22 KiB
C++
945 lines
22 KiB
C++
|
|
static PyObject *
|
|
py_domain_clear(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = domain_clear();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_del(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:domain_del", &i))
|
|
return NULL;
|
|
|
|
_val = domain_del(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_type(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:domain_type", &i))
|
|
return NULL;
|
|
|
|
_val = domain_type(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_index(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:domain_index", &i))
|
|
return NULL;
|
|
|
|
_val = domain_index(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_nComponents(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:domain_nComponents", &i))
|
|
return NULL;
|
|
|
|
_val = domain_nComponents(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_nPoints(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:domain_nPoints", &i))
|
|
return NULL;
|
|
|
|
_val = domain_nPoints(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_componentName(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_componentName", &i, &n))
|
|
return NULL;
|
|
|
|
int nameout_sz = 80;
|
|
char* nameout = new char[nameout_sz];
|
|
|
|
_val = domain_componentName(i,n,nameout_sz,nameout);
|
|
PyObject* _ret = Py_BuildValue("s",nameout);
|
|
delete[] nameout;
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return _ret;
|
|
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_componentIndex(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* name;
|
|
if (!PyArg_ParseTuple(args, "is:domain_componentIndex", &i, &name))
|
|
return NULL;
|
|
|
|
_val = domain_componentIndex(i,name);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_setBounds(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int n;
|
|
double lower;
|
|
double upper;
|
|
if (!PyArg_ParseTuple(args, "iidd:domain_setBounds", &i, &n, &lower, &upper))
|
|
return NULL;
|
|
|
|
_val = domain_setBounds(i,n,lower,upper);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_lowerBound(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_lowerBound", &i, &n))
|
|
return NULL;
|
|
|
|
_val = domain_lowerBound(i,n);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_upperBound(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_upperBound", &i, &n))
|
|
return NULL;
|
|
|
|
_val = domain_upperBound(i,n);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_setTolerances(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int n;
|
|
double rtol, atol;
|
|
int itime;
|
|
if (!PyArg_ParseTuple(args, "iiddi:domain_setTolerances", &i, &n, &rtol, &atol, &itime))
|
|
return NULL;
|
|
|
|
_val = domain_setTolerances(i,n,rtol,atol,itime);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_rtol(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_rtol", &i, &n))
|
|
return NULL;
|
|
|
|
_val = domain_rtol(i,n);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_atol(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_atol", &i, &n))
|
|
return NULL;
|
|
|
|
_val = domain_atol(i,n);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_setupGrid(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
PyObject* grid;
|
|
if (!PyArg_ParseTuple(args, "iO:domain_setupGrid", &i, &grid))
|
|
return NULL;
|
|
|
|
|
|
PyArrayObject* grid_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(grid, PyArray_DOUBLE, 1, 1);
|
|
double* grid_data = (double*)grid_array->data;
|
|
int grid_len = grid_array->dimensions[0];
|
|
|
|
_val = domain_setupGrid(i,grid_len,grid_data);
|
|
Py_DECREF(grid_array);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_setID(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* id;
|
|
if (!PyArg_ParseTuple(args, "is:domain_setID", &i, &id))
|
|
return NULL;
|
|
|
|
_val = domain_setID(i,id);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_setDesc(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* desc;
|
|
if (!PyArg_ParseTuple(args, "is:domain_setDesc", &i, &desc))
|
|
return NULL;
|
|
|
|
_val = domain_setDesc(i,desc);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_inlet_setSpreadRate(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double v;
|
|
if (!PyArg_ParseTuple(args, "id:inlet_setSpreadRate", &i, &v))
|
|
return NULL;
|
|
|
|
_val = inlet_setSpreadRate(i,v);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_domain_grid(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int n;
|
|
if (!PyArg_ParseTuple(args, "ii:domain_grid", &i, &n))
|
|
return NULL;
|
|
|
|
_val = domain_grid(i,n);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_setMdot(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double mdot;
|
|
if (!PyArg_ParseTuple(args, "id:bdry_setMdot", &i, &mdot))
|
|
return NULL;
|
|
|
|
_val = bdry_setMdot(i,mdot);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_setTemperature(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double t;
|
|
if (!PyArg_ParseTuple(args, "id:bdry_setTemperature", &i, &t))
|
|
return NULL;
|
|
|
|
_val = bdry_setTemperature(i,t);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_setMoleFractions(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* x;
|
|
if (!PyArg_ParseTuple(args, "is:bdry_setMoleFractions", &i, &x))
|
|
return NULL;
|
|
|
|
_val = bdry_setMoleFractions(i,x);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_temperature(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:bdry_temperature", &i))
|
|
return NULL;
|
|
|
|
_val = bdry_temperature(i);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_massFraction(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int k;
|
|
if (!PyArg_ParseTuple(args, "ii:bdry_massFraction", &i, &k))
|
|
return NULL;
|
|
|
|
_val = bdry_massFraction(i,k);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_bdry_mdot(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:bdry_mdot", &i))
|
|
return NULL;
|
|
|
|
_val = bdry_mdot(i);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_reactingsurf_setkineticsmgr(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int j;
|
|
if (!PyArg_ParseTuple(args, "ii:reactingsurf_setkineticsmgr", &i, &j))
|
|
return NULL;
|
|
|
|
_val = reactingsurf_setkineticsmgr(i,j);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_reactingsurf_enableCoverageEqs(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int onoff;
|
|
if (!PyArg_ParseTuple(args, "ii:reactingsurf_enableCoverageEqs", &i, &onoff))
|
|
return NULL;
|
|
|
|
_val = reactingsurf_enableCoverageEqs(i,onoff);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_inlet_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = inlet_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_outlet_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = outlet_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
static PyObject *
|
|
py_outletres_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = outletres_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_symm_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = symm_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_surf_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = surf_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_reactingsurf_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = reactingsurf_new();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_stflow_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int iph;
|
|
int ikin;
|
|
int itr;
|
|
if (!PyArg_ParseTuple(args, "iii:stflow_new", &iph, &ikin, &itr))
|
|
return NULL;
|
|
|
|
_val = stflow_new(iph,ikin,itr);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_stflow_setTransport(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i, itr;
|
|
if (!PyArg_ParseTuple(args, "ii:stflow_setTransport", &i, &itr))
|
|
return NULL;
|
|
|
|
_val = stflow_setTransport(i,itr);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
static PyObject *
|
|
py_stflow_setPressure(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double p;
|
|
if (!PyArg_ParseTuple(args, "id:stflow_setPressure", &i, &p))
|
|
return NULL;
|
|
|
|
_val = stflow_setPressure(i,p);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_stflow_setFixedTempProfile(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
PyObject* pos;
|
|
PyObject* temp;
|
|
if (!PyArg_ParseTuple(args, "iOO:stflow_setFixedTempProfile", &i, &pos, &temp))
|
|
return NULL;
|
|
|
|
|
|
PyArrayObject* pos_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(pos, PyArray_DOUBLE, 1, 1);
|
|
double* pos_data = (double*)pos_array->data;
|
|
int pos_len = pos_array->dimensions[0];
|
|
|
|
|
|
PyArrayObject* temp_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(temp, PyArray_DOUBLE, 1, 1);
|
|
double* temp_data = (double*)temp_array->data;
|
|
int temp_len = temp_array->dimensions[0];
|
|
|
|
_val = stflow_setFixedTempProfile(i,pos_len,pos_data,temp_len,temp_data);
|
|
Py_DECREF(pos_array);
|
|
Py_DECREF(temp_array);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_stflow_solveSpeciesEqs(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int flag;
|
|
if (!PyArg_ParseTuple(args, "ii:stflow_solveSpeciesEqs", &i, &flag))
|
|
return NULL;
|
|
|
|
_val = stflow_solveSpeciesEqs(i,flag);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_stflow_solveEnergyEqn(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int flag;
|
|
if (!PyArg_ParseTuple(args, "ii:stflow_solveEnergyEqn", &i, &flag))
|
|
return NULL;
|
|
|
|
_val = stflow_solveEnergyEqn(i,flag);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_clear(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
_val = sim1D_clear();
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_new(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
PyObject* domains;
|
|
if (!PyArg_ParseTuple(args, "O:sim1D_new", &domains))
|
|
return NULL;
|
|
|
|
|
|
PyArrayObject* domains_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(domains, PyArray_INT, 1, 1);
|
|
int* domains_data = (int*)domains_array->data;
|
|
int domains_len = domains_array->dimensions[0];
|
|
|
|
_val = sim1D_new(domains_len,domains_data);
|
|
Py_DECREF(domains_array);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_del(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:sim1D_del", &i))
|
|
return NULL;
|
|
|
|
_val = sim1D_del(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setValue(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int dom;
|
|
int comp;
|
|
int localPoint;
|
|
double value;
|
|
if (!PyArg_ParseTuple(args, "iiiid:sim1D_setValue", &i, &dom, &comp, &localPoint, &value))
|
|
return NULL;
|
|
|
|
_val = sim1D_setValue(i,dom,comp,localPoint,value);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setProfile(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int dom;
|
|
int comp;
|
|
PyObject* pos;
|
|
PyObject* v;
|
|
if (!PyArg_ParseTuple(args, "iiiOO:sim1D_setProfile", &i, &dom, &comp, &pos, &v))
|
|
return NULL;
|
|
|
|
|
|
PyArrayObject* pos_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(pos, PyArray_DOUBLE, 1, 1);
|
|
double* pos_data = (double*)pos_array->data;
|
|
int pos_len = pos_array->dimensions[0];
|
|
|
|
|
|
PyArrayObject* v_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(v, PyArray_DOUBLE, 1, 1);
|
|
double* v_data = (double*)v_array->data;
|
|
int v_len = v_array->dimensions[0];
|
|
|
|
_val = sim1D_setProfile(i,dom,comp,pos_len,pos_data,v_len,v_data);
|
|
Py_DECREF(pos_array);
|
|
Py_DECREF(v_array);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setFlatProfile(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int dom;
|
|
int comp;
|
|
double v;
|
|
if (!PyArg_ParseTuple(args, "iiid:sim1D_setFlatProfile", &i, &dom, &comp, &v))
|
|
return NULL;
|
|
|
|
_val = sim1D_setFlatProfile(i,dom,comp,v);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_showSolution(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* fname;
|
|
if (!PyArg_ParseTuple(args, "is:sim1D_showSolution", &i, &fname))
|
|
return NULL;
|
|
|
|
_val = sim1D_showSolution(i,fname);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setTimeStep(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double stepsize;
|
|
PyObject* nsteps;
|
|
if (!PyArg_ParseTuple(args, "idO:sim1D_setTimeStep", &i, &stepsize, &nsteps))
|
|
return NULL;
|
|
|
|
|
|
PyArrayObject* nsteps_array = (PyArrayObject*)
|
|
PyArray_ContiguousFromObject(nsteps, PyArray_INT, 1, 1);
|
|
int* nsteps_data = (int*)nsteps_array->data;
|
|
int nsteps_len = nsteps_array->dimensions[0];
|
|
|
|
_val = sim1D_setTimeStep(i,stepsize,nsteps_len,nsteps_data);
|
|
Py_DECREF(nsteps_array);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_solve(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int loglevel;
|
|
int refine_grid;
|
|
if (!PyArg_ParseTuple(args, "iii:sim1D_solve", &i, &loglevel, &refine_grid))
|
|
return NULL;
|
|
|
|
_val = sim1D_solve(i,loglevel,refine_grid);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_refine(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int loglevel;
|
|
if (!PyArg_ParseTuple(args, "ii:sim1D_refine", &i, &loglevel))
|
|
return NULL;
|
|
|
|
_val = sim1D_refine(i,loglevel);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setRefineCriteria(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int dom;
|
|
double ratio;
|
|
double slope;
|
|
double curve;
|
|
double prune;
|
|
if (!PyArg_ParseTuple(args, "iidddd:sim1D_setRefineCriteria", &i, &dom, &ratio, &slope, &curve, &prune))
|
|
return NULL;
|
|
|
|
_val = sim1D_setRefineCriteria(i,dom,ratio,slope,curve,prune);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_getInitialSoln(PyObject *self, PyObject *args)
|
|
{
|
|
int i, iok;
|
|
if (!PyArg_ParseTuple(args, "i:sim1D_getInitialSoln", &i))
|
|
return NULL;
|
|
|
|
iok = sim1D_getInitialSoln(i);
|
|
if (iok == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",iok);
|
|
}
|
|
|
|
static PyObject *
|
|
py_sim1D_save(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* fname;
|
|
char* id;
|
|
char* desc;
|
|
if (!PyArg_ParseTuple(args, "isss:sim1D_save", &i, &fname, &id, &desc))
|
|
return NULL;
|
|
|
|
_val = sim1D_save(i,fname,id,desc);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_restore(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* fname;
|
|
char* id;
|
|
if (!PyArg_ParseTuple(args, "iss:sim1D_restore", &i, &fname, &id))
|
|
return NULL;
|
|
|
|
_val = sim1D_restore(i,fname,id);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_writeStats(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
if (!PyArg_ParseTuple(args, "i:sim1D_writeStats", &i))
|
|
return NULL;
|
|
|
|
_val = sim1D_writeStats(i);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_domainIndex(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
char* name;
|
|
if (!PyArg_ParseTuple(args, "is:sim1D_domainIndex", &i, &name))
|
|
return NULL;
|
|
|
|
_val = sim1D_domainIndex(i,name);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_value(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int idom;
|
|
int icomp;
|
|
int localPoint;
|
|
if (!PyArg_ParseTuple(args, "iiii:sim1D_value", &i, &idom, &icomp,
|
|
&localPoint))
|
|
return NULL;
|
|
|
|
_val = sim1D_value(i,idom,icomp,localPoint);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_workValue(PyObject *self, PyObject *args)
|
|
{
|
|
double _val;
|
|
int i;
|
|
int idom;
|
|
int icomp;
|
|
int localPoint;
|
|
if (!PyArg_ParseTuple(args, "iiii:sim1D_workValue", &i, &idom, &icomp, &localPoint))
|
|
return NULL;
|
|
|
|
_val = sim1D_workValue(i,idom,icomp,localPoint);
|
|
if (_val == DERR) return reportCanteraError();
|
|
return Py_BuildValue("d",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_eval(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double rdt;
|
|
int count;
|
|
if (!PyArg_ParseTuple(args, "idi:sim1D_eval", &i, &rdt, &count))
|
|
return NULL;
|
|
|
|
_val = sim1D_eval(i,rdt,count);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setMaxJacAge(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
int ss_age;
|
|
int ts_age;
|
|
if (!PyArg_ParseTuple(args, "iii:sim1D_setMaxJacAge", &i, &ss_age, &ts_age))
|
|
return NULL;
|
|
|
|
_val = sim1D_setMaxJacAge(i,ss_age,ts_age);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_timeStepFactor(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double tfactor;
|
|
if (!PyArg_ParseTuple(args, "id:sim1D_timeStepFactor", &i, &tfactor))
|
|
return NULL;
|
|
|
|
_val = sim1D_timeStepFactor(i,tfactor);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|
|
|
|
static PyObject *
|
|
py_sim1D_setTimeStepLimits(PyObject *self, PyObject *args)
|
|
{
|
|
int _val;
|
|
int i;
|
|
double tsmin;
|
|
double tsmax;
|
|
if (!PyArg_ParseTuple(args, "idd:sim1D_setTimeStepLimits", &i, &tsmin, &tsmax))
|
|
return NULL;
|
|
|
|
_val = sim1D_setTimeStepLimits(i,tsmin,tsmax);
|
|
if (int(_val) == -1) return reportCanteraError();
|
|
return Py_BuildValue("i",_val);
|
|
}
|
|
|