35template<> Domain1DCabinet* Domain1DCabinet::s_storage = 0;
38template<> Flow1DCabinet* Flow1DCabinet::s_storage;
41template<> SolutionCabinet* SolutionCabinet::s_storage;
44template<> Boundary1DCabinet* Boundary1DCabinet::s_storage;
47template<> TransportCabinet* TransportCabinet::s_storage;
57 return Domain1DCabinet::add(
newFlow1D(domainType, SolutionCabinet::at(solution),
id));
67 return Domain1DCabinet::add(
newBoundary1D(domainType, SolutionCabinet::at(solution),
id));
73 int32_t
domain_type(int32_t handle, int32_t bufLen,
char* buf)
77 string out = Domain1DCabinet::at(handle)->type();
79 return int(out.size()) + 1;
89 return static_cast<int32_t
>(Domain1DCabinet::at(handle)->domainIndex());
99 return static_cast<int32_t
>(Domain1DCabinet::at(handle)->index(n, j));
109 return static_cast<int32_t
>(Domain1DCabinet::at(handle)->nComponents());
119 return static_cast<int32_t
>(Domain1DCabinet::at(handle)->nPoints());
129 string out = Domain1DCabinet::at(handle)->componentName(n);
131 return int(out.size()) + 1;
141 return static_cast<int32_t
>(Domain1DCabinet::at(handle)->componentIndex(name));
151 return Domain1DCabinet::at(handle)->value(component);
161 Domain1DCabinet::at(handle)->setValue(component, value);
168 int32_t
domain_values(int32_t handle,
const char* component, int32_t bufLen,
double* buf)
172 vector<double> out = Domain1DCabinet::at(handle)->values(component);
173 std::copy(out.begin(), out.end(), buf);
174 return int(out.size());
180 int32_t
domain_getValues(int32_t handle,
const char* component, int32_t valuesLen,
double* values)
184 vector<double> values_(valuesLen);
185 Domain1DCabinet::at(handle)->getValues(component, values_);
186 std::copy(values_.begin(), values_.end(), values);
193 int32_t
domain_setValues(int32_t handle,
const char* component, int32_t valuesLen,
const double* values)
197 const vector<double> values_(values, values + valuesLen);
198 Domain1DCabinet::at(handle)->setValues(component, values_);
205 int32_t
domain_residuals(int32_t handle,
const char* component, int32_t bufLen,
double* buf)
209 vector<double> out = Domain1DCabinet::at(handle)->residuals(component);
210 std::copy(out.begin(), out.end(), buf);
211 return int(out.size());
217 int32_t
domain_setProfile(int32_t handle,
const char* component, int32_t posLen,
const double* pos, int32_t valuesLen,
const double* values)
221 const vector<double> pos_(pos, pos + posLen);
222 const vector<double> values_(values, values + valuesLen);
223 Domain1DCabinet::at(handle)->setProfile(component, pos_, values_);
234 Domain1DCabinet::at(handle)->setFlatProfile(component, value);
245 Domain1DCabinet::at(handle)->setBounds(n, lower, upper);
256 return Domain1DCabinet::at(handle)->lowerBound(n);
266 return Domain1DCabinet::at(handle)->upperBound(n);
276 Domain1DCabinet::at(handle)->setSteadyTolerances(rtol, atol, n);
287 Domain1DCabinet::at(handle)->setTransientTolerances(rtol, atol, n);
298 return Domain1DCabinet::at(handle)->rtol(n);
308 return Domain1DCabinet::at(handle)->atol(n);
318 const vector<double> grid_(grid, grid + gridLen);
319 Domain1DCabinet::at(handle)->setupGrid(grid_);
330 Domain1DCabinet::at(handle)->setupUniformGrid(points, length, start);
341 Domain1DCabinet::at(handle)->setID(s);
352 auto& obj = Domain1DCabinet::at(handle);
354 vector<double>& out = obj->grid();
355 std::copy(out.begin(), out.end(), buf);
356 return int(out.size());
366 Domain1DCabinet::as<Boundary1D>(handle)->setMdot(mdot);
377 Domain1DCabinet::as<Boundary1D>(handle)->setTemperature(t);
388 Domain1DCabinet::as<Boundary1D>(handle)->setSpreadRate(V0);
399 Domain1DCabinet::as<Boundary1D>(handle)->setMoleFractions(xin);
410 auto obj = Domain1DCabinet::as<Boundary1D>(handle);
412 obj->setMoleFractions(xin);
423 return Domain1DCabinet::as<Boundary1D>(handle)->mdot();
433 return Domain1DCabinet::as<Boundary1D>(handle)->temperature();
443 return Domain1DCabinet::as<Boundary1D>(handle)->spreadRate();
453 return Domain1DCabinet::as<Boundary1D>(handle)->massFraction(k);
463 Domain1DCabinet::at(handle)->setTransport(TransportCabinet::at(trans));
474 string out = Domain1DCabinet::as<Flow1D>(handle)->transportModel();
476 return int(out.size()) + 1;
486 Domain1DCabinet::at(handle)->setTransportModel(model);
497 bool withSoret_ = (withSoret != 0);
498 Domain1DCabinet::as<Flow1D>(handle)->enableSoret(withSoret_);
509 Domain1DCabinet::as<Flow1D>(handle)->setPressure(p);
520 return Domain1DCabinet::as<Flow1D>(handle)->pressure();
530 const vector<double> zfixed_(zfixed, zfixed + zfixedLen);
531 const vector<double> tfixed_(tfixed, tfixed + tfixedLen);
532 Domain1DCabinet::as<Flow1D>(handle)->setFixedTempProfile(zfixed_, tfixed_);
543 Domain1DCabinet::as<Flow1D>(handle)->solveEnergyEqn(j);
554 bool out = Domain1DCabinet::as<Flow1D>(handle)->allOfEnergyEnabled();
565 bool out = Domain1DCabinet::as<Flow1D>(handle)->noneOfEnergyEnabled();
576 bool flag_ = (flag != 0);
577 Domain1DCabinet::as<Flow1D>(handle)->setEnergyEnabled(flag_);
588 bool docov_ = (docov != 0);
589 Domain1DCabinet::as<ReactingSurf1D>(handle)->enableCoverageEquations(docov_);
600 auto& obj = Domain1DCabinet::at(handle);
602 vector<double> out = obj->getRefineCriteria();
603 std::copy(out.begin(), out.end(), buf);
604 return int(out.size());
614 Domain1DCabinet::at(handle)->setRefineCriteria(ratio, slope, curve, prune);
621 int32_t
domain_info(int32_t handle, int32_t rows, int32_t width, int32_t bufLen,
char* buf)
625 string out = Domain1DCabinet::at(handle)->_info(rows, width);
627 return int(out.size()) + 1;
637 Domain1DCabinet::del(handle);
649 return Domain1DCabinet::size();
Boundary objects for one-dimensional simulations.
Header file defining class TransportFactory (see TransportFactory)
Template for classes to hold pointers to objects.
CTDOMAIN - Generated CLib Cantera interface library.
int32_t domain_cabinetSize()
Return size of Domain1D storage.
double bdry_spreadRate(int32_t handle)
Tangential velocity gradient [1/s] at this boundary.
double domain_rtol(int32_t handle, int32_t n)
Relative tolerance of the nth component.
int32_t domain_setTransportModel(int32_t handle, const char *model)
Set transport model by name.
double domain_atol(int32_t handle, int32_t n)
Absolute tolerance of the nth component.
int32_t domain_setupUniformGrid(int32_t handle, int32_t points, double length, double start)
Set up uniform grid.
double bdry_temperature(int32_t handle)
Temperature [K].
int32_t domain_grid(int32_t handle, int32_t bufLen, double *buf)
Access the array of grid coordinates [m].
int32_t domain_componentName(int32_t handle, int32_t n, int32_t bufLen, char *buf)
Name of component n.
int32_t domain_setProfile(int32_t handle, const char *component, int32_t posLen, const double *pos, int32_t valuesLen, const double *values)
Specify a profile for a component.
int32_t flow_enableSoret(int32_t handle, int32_t withSoret)
Enable thermal diffusion, also known as Soret diffusion.
double domain_value(int32_t handle, const char *component)
Set a single component value at a boundary.
int32_t flow_solveEnergyEqn(int32_t handle, int32_t j)
Specify that the energy equation should be solved at point j.
int32_t flow_setEnergyEnabled(int32_t handle, int32_t flag)
Set energy enabled flag for entire domain.
int32_t domain_getValues(int32_t handle, const char *component, int32_t valuesLen, double *values)
Retrieve component values.
int32_t domain_setID(int32_t handle, const char *s)
Specify an identifying tag for this domain.
int32_t domain_nPoints(int32_t handle)
Number of grid points in this domain.
double domain_upperBound(int32_t handle, int32_t n)
Upper bound on the nth component.
int32_t domain_setTransientTolerances(int32_t handle, double rtol, double atol, int32_t n)
Set tolerances for time-stepping mode.
int32_t domain_setValues(int32_t handle, const char *component, int32_t valuesLen, const double *values)
Specify component values.
int32_t bdry_setSpreadRate(int32_t handle, double V0)
Set tangential velocity gradient [1/s] at this boundary.
int32_t domain_setRefineCriteria(int32_t handle, double ratio, double slope, double curve, double prune)
Set grid refinement criteria.
int32_t domain_getRefineCriteria(int32_t handle, int32_t bufLen, double *buf)
Get the grid refinement criteria.
int32_t domain_residuals(int32_t handle, const char *component, int32_t bufLen, double *buf)
Retrieve internal work array values for a component.
int32_t flow_noneOfEnergyEnabled(int32_t handle)
Check if energy is disabled for entire domain.
int32_t flow_setFixedTempProfile(int32_t handle, int32_t zfixedLen, const double *zfixed, int32_t tfixedLen, const double *tfixed)
Set fixed temperature profile.
double bdry_mdot(int32_t handle)
The total mass flow rate [kg/m2/s].
int32_t flow_allOfEnergyEnabled(int32_t handle)
Check if energy is enabled for entire domain.
int32_t domain_setupGrid(int32_t handle, int32_t gridLen, const double *grid)
Set up initial grid.
int32_t domain_del(int32_t handle)
Delete Domain1D object.
int32_t domain_setValue(int32_t handle, const char *component, double value)
Set a single component value in a flow domain or at a boundary.
int32_t domain_newBoundary1D(const char *domainType, int32_t solution, const char *id)
Create a Boundary1D object of the specified type.
int32_t domain_nComponents(int32_t handle)
Number of components at each grid point.
double bdry_massFraction(int32_t handle, int32_t k)
Mass fraction of species k.
int32_t reactingsurf_enableCoverageEquations(int32_t handle, int32_t docov)
Set whether to solve the equations for the surface species coverages.
int32_t domain_index(int32_t handle, int32_t n, int32_t j)
Returns the index of the solution vector, which corresponds to component n at grid point j.
int32_t flow_transportModel(int32_t handle, int32_t bufLen, char *buf)
Retrieve transport model.
int32_t bdry_setTemperature(int32_t handle, double t)
Set the temperature.
int32_t bdry_setMoleFractions(int32_t handle, int32_t xinLen, const double *xin)
Set the mole fractions by specifying an array.
int32_t bdry_setMoleFractionsByName(int32_t handle, const char *xin)
Set the mole fractions by specifying a string.
double domain_lowerBound(int32_t handle, int32_t n)
Lower bound on the nth component.
int32_t domain_setTransport(int32_t handle, int32_t trans)
Set transport model to existing instance.
int32_t domain_type(int32_t handle, int32_t bufLen, char *buf)
String indicating the domain implemented.
int32_t domain_values(int32_t handle, const char *component, int32_t bufLen, double *buf)
Retrieve component values.
int32_t flow_setPressure(int32_t handle, double p)
Set the pressure.
int32_t domain_newFlow1D(const char *domainType, int32_t solution, const char *id)
Create a Flow1D object of the specified type.
int32_t domain_setSteadyTolerances(int32_t handle, double rtol, double atol, int32_t n)
Set tolerances for steady-state mode.
double flow_pressure(int32_t handle)
The current pressure [Pa].
int32_t domain_info(int32_t handle, int32_t rows, int32_t width, int32_t bufLen, char *buf)
Return a concise summary of a Domain.
int32_t bdry_setMdot(int32_t handle, double mdot)
Set the total mass flow rate [kg/m²/s].
int32_t domain_domainIndex(int32_t handle)
The left-to-right location of this domain.
int32_t domain_componentIndex(int32_t handle, const char *name)
Index of component with name name.
int32_t domain_setFlatProfile(int32_t handle, const char *component, double value)
Specify a flat profile for a component.
int32_t domain_setBounds(int32_t handle, int32_t n, double lower, double upper)
Set the upper and lower bounds for a solution component, n.
size_t copyString(const string &source, char *dest, size_t length)
Copy the contents of a string into a char array of a given length.
shared_ptr< Flow1D > newFlow1D(const string &domainType, shared_ptr< Solution > solution, const string &id)
Create a Flow1D object of the specified type.
shared_ptr< Boundary1D > newBoundary1D(const string &domainType, shared_ptr< Solution > solution, const string &id)
Create a Boundary1D object of the specified type.
Namespace for the Cantera kernel.
T handleAllExceptions(T ctErrorCode, T otherErrorCode)
Exception handler used at language interface boundaries.
Contains declarations for string manipulation functions within Cantera.