Transport* TransportFactory::newTransport(thermo_t* phase, int log_level) { std::string transportModel = "None"; XML_Node& phaseNode = phase->xml(); if (phaseNode.hasChild("transport")) { transportModel = phaseNode.child("transport").attrib("model"); } return newTransport(transportModel, phase,log_level); }
/** * Create a new Transport object. */ static PyObject * py_transport_new(PyObject *self, PyObject *args) { char* model; int ph; int loglevel; if (!PyArg_ParseTuple(args, "sii:transport_new", &model, &ph, &loglevel)) return NULL; int n = newTransport(model, ph, loglevel); if (n < 0) return reportError(n); return Py_BuildValue("i",n); }
Transport* TransportFactory::newTransport(thermo_t* phase, int log_level) { XML_Node& phaseNode=phase->xml(); /* * Find the Thermo XML node */ if (!phaseNode.hasChild("transport")) { throw CanteraError("TransportFactory::newTransport", "no transport XML node"); } XML_Node& transportNode = phaseNode.child("transport"); std::string transportModel = transportNode.attrib("model"); if (transportModel == "") { throw CanteraError("TransportFactory::newTransport", "transport XML node doesn't have a model string"); } return newTransport(transportModel, phase,log_level); }
void transportmethods(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) { double vv = 0.0; int n = getInt(prhs[1]); int job = getInt(prhs[2]); double* h; int iok = 0; int nsp; if (job == -1) { char* model = getString(prhs[3]); int loglevel = getInt(prhs[4]); int m = -2; m = (int) newTransport(model, n, loglevel); if (m < 0) { reportError(); } // Create matrix for the return argument. plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL); double* x = mxGetPr(plhs[0]); *x = m; return; } if (job < 10) { switch (job) { case 0: delTransport(n); vv = 0.0; break; case 1: vv = trans_viscosity(n); break; case 2: vv = trans_thermalConductivity(n); case 3: vv = trans_electricalConductivity(n); break; default: mexErrMsgTxt("unknown Transport method"); } if (vv < 0.0) { reportError(); } plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); h = mxGetPr(plhs[0]); *h = vv; return; } else if (job < 20) { nsp = getInt(prhs[3]); plhs[0] = mxCreateNumericMatrix(nsp,1,mxDOUBLE_CLASS,mxREAL); h = mxGetPr(plhs[0]); switch (job) { case 11: iok = trans_getMixDiffCoeffs(n, nsp, h); break; case 12: iok = trans_getThermalDiffCoeffs(n, nsp, h); break; default: mexErrMsgTxt("unknown Transport method"); } } else if (job < 30) { nsp = getInt(prhs[3]); plhs[0] = mxCreateNumericMatrix(nsp,nsp,mxDOUBLE_CLASS,mxREAL); h = mxGetPr(plhs[0]); switch (job) { case 21: iok = trans_getBinDiffCoeffs(n, nsp, h); break; case 22: iok = trans_getMultiDiffCoeffs(n, nsp, h); break; default: mexErrMsgTxt("unknown Transport method"); } } // set parameters else if (job < 40) { double* params; int typ, k; switch (job) { case 31: typ = getInt(prhs[3]); k = getInt(prhs[4]); params = mxGetPr(prhs[5]); iok = trans_setParameters(n, typ, k, params); break; default: mexErrMsgTxt("unknown Transport method"); } plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); h = mxGetPr(plhs[0]); *h = double(iok); } else { mexErrMsgTxt("unknown Transport method"); } if (iok < 0) { reportError(); } }