Cantera  3.2.0a4
Loading...
Searching...
No Matches
ctreactor.cpp
Go to the documentation of this file.
1/**
2 * CTREACTOR - Generated CLib %Cantera interface library.
3 *
4 * @file ctreactor.cpp
5 *
6 * Generated CLib API for Cantera's ReactorBase class.
7 *
8 * This file was generated by sourcegen. It will be re-generated by the
9 * %Cantera build process. Do not manually edit.
10 *
11 * @warning This module is an experimental part of the %Cantera API and
12 * may be changed without notice.
13 */
14
15// This file is part of Cantera. See License.txt in the top-level directory or
16// at https://cantera.org/license.txt for license and copyright information.
17
18#include "clib_utils.h"
20
26
27using namespace Cantera;
28
29//! @cond
30//! Cabinet type definitions will be ignored by Doxygen
31
32// Define Cabinet<ReactorBase> (single-instance object)
33typedef Cabinet<ReactorBase> ReactorBaseCabinet;
34template<> ReactorBaseCabinet* ReactorBaseCabinet::s_storage = 0; // initialized here
35
36typedef Cabinet<ReactorSurface> ReactorSurfaceCabinet;
37template<> ReactorSurfaceCabinet* ReactorSurfaceCabinet::s_storage; // initialized elsewhere
38
39typedef Cabinet<Solution> SolutionCabinet;
40template<> SolutionCabinet* SolutionCabinet::s_storage; // initialized elsewhere
41
42//! @endcond
43
44extern "C" {
45
46 int32_t reactor_new(const char* model, int32_t contents, int32_t clone, const char* name)
47 {
48 // constructor: shared_ptr<ReactorBase> newReactorBase(const string&, shared_ptr<Solution>, bool, const string&)
49 try {
50 bool clone_ = (clone != 0);
51 return ReactorBaseCabinet::add(newReactorBase(model, SolutionCabinet::at(contents), clone_, name));
52 } catch (...) {
53 return handleAllExceptions(-2, ERR);
54 }
55 }
56
57 int32_t reactor_newSurface(int32_t contents, int32_t reactorsLen, const int32_t* reactors, int32_t clone, const char* name)
58 {
59 // constructor: shared_ptr<ReactorSurface> newReactorSurface(shared_ptr<Solution>, const vector<shared_ptr<ReactorBase>>&, bool, const string&)
60 try {
61 vector<shared_ptr<ReactorBase>> reactors_;
62 for (int i = 0; i < reactorsLen; i++) {
63 reactors_.push_back(ReactorBaseCabinet::at(reactors[i]));
64 }
65 bool clone_ = (clone != 0);
66 return ReactorBaseCabinet::add(newReactorSurface(SolutionCabinet::at(contents), reactors_, clone_, name));
67 } catch (...) {
68 return handleAllExceptions(-2, ERR);
69 }
70 }
71
72 int32_t reactor_type(int32_t handle, int32_t bufLen, char* buf)
73 {
74 // getter: virtual string ReactorBase::type()
75 try {
76 string out = ReactorBaseCabinet::at(handle)->type();
77 copyString(out, buf, bufLen);
78 return int(out.size()) + 1;
79 } catch (...) {
80 return handleAllExceptions(-1, ERR);
81 }
82 }
83
84 int32_t reactor_name(int32_t handle, int32_t bufLen, char* buf)
85 {
86 // getter: string ReactorBase::name()
87 try {
88 string out = ReactorBaseCabinet::at(handle)->name();
89 copyString(out, buf, bufLen);
90 return int(out.size()) + 1;
91 } catch (...) {
92 return handleAllExceptions(-1, ERR);
93 }
94 }
95
96 int32_t reactor_setName(int32_t handle, const char* name)
97 {
98 // setter: void ReactorBase::setName(const string&)
99 try {
100 ReactorBaseCabinet::at(handle)->setName(name);
101 return 0;
102 } catch (...) {
103 return handleAllExceptions(-1, ERR);
104 }
105 }
106
107 int32_t reactor_contents(int32_t handle)
108 {
109 // accessor: shared_ptr<Solution> ReactorBase::contents4()
110 try {
111 return SolutionCabinet::add(ReactorBaseCabinet::at(handle)->contents4());
112 } catch (...) {
113 return handleAllExceptions(-2, ERR);
114 }
115 }
116
117 int32_t reactor_setInitialVolume(int32_t handle, double vol)
118 {
119 // setter: virtual void ReactorBase::setInitialVolume(double)
120 try {
121 ReactorBaseCabinet::at(handle)->setInitialVolume(vol);
122 return 0;
123 } catch (...) {
124 return handleAllExceptions(-1, ERR);
125 }
126 }
127
128 int32_t reactor_setChemistry(int32_t handle, int32_t cflag)
129 {
130 // setter: virtual void ReactorBase::setChemistry(bool)
131 try {
132 bool cflag_ = (cflag != 0);
133 ReactorBaseCabinet::at(handle)->setChemistry(cflag_);
134 return 0;
135 } catch (...) {
136 return handleAllExceptions(-1, ERR);
137 }
138 }
139
140 int32_t reactor_setEnergy(int32_t handle, int32_t eflag)
141 {
142 // setter: virtual void ReactorBase::setEnergy(int)
143 try {
144 ReactorBaseCabinet::at(handle)->setEnergy(eflag);
145 return 0;
146 } catch (...) {
147 return handleAllExceptions(-1, ERR);
148 }
149 }
150
151 double reactor_mass(int32_t handle)
152 {
153 // getter: double ReactorBase::mass()
154 try {
155 return ReactorBaseCabinet::at(handle)->mass();
156 } catch (...) {
157 return handleAllExceptions(DERR, DERR);
158 }
159 }
160
161 double reactor_volume(int32_t handle)
162 {
163 // getter: double ReactorBase::volume()
164 try {
165 return ReactorBaseCabinet::at(handle)->volume();
166 } catch (...) {
167 return handleAllExceptions(DERR, DERR);
168 }
169 }
170
171 double reactor_density(int32_t handle)
172 {
173 // getter: double ReactorBase::density()
174 try {
175 return ReactorBaseCabinet::at(handle)->density();
176 } catch (...) {
177 return handleAllExceptions(DERR, DERR);
178 }
179 }
180
181 double reactor_temperature(int32_t handle)
182 {
183 // getter: double ReactorBase::temperature()
184 try {
185 return ReactorBaseCabinet::at(handle)->temperature();
186 } catch (...) {
187 return handleAllExceptions(DERR, DERR);
188 }
189 }
190
191 double reactor_enthalpy_mass(int32_t handle)
192 {
193 // getter: double ReactorBase::enthalpy_mass()
194 try {
195 return ReactorBaseCabinet::at(handle)->enthalpy_mass();
196 } catch (...) {
197 return handleAllExceptions(DERR, DERR);
198 }
199 }
200
201 double reactor_intEnergy_mass(int32_t handle)
202 {
203 // getter: double ReactorBase::intEnergy_mass()
204 try {
205 return ReactorBaseCabinet::at(handle)->intEnergy_mass();
206 } catch (...) {
207 return handleAllExceptions(DERR, DERR);
208 }
209 }
210
211 double reactor_pressure(int32_t handle)
212 {
213 // getter: double ReactorBase::pressure()
214 try {
215 return ReactorBaseCabinet::at(handle)->pressure();
216 } catch (...) {
217 return handleAllExceptions(DERR, DERR);
218 }
219 }
220
221 double reactor_massFraction(int32_t handle, int32_t k)
222 {
223 // method: double ReactorBase::massFraction(size_t)
224 try {
225 return ReactorBaseCabinet::at(handle)->massFraction(k);
226 } catch (...) {
227 return handleAllExceptions(DERR, DERR);
228 }
229 }
230
231 int32_t reactor_nSensParams(int32_t handle)
232 {
233 // getter: virtual size_t ReactorBase::nSensParams()
234 try {
235 return ReactorBaseCabinet::at(handle)->nSensParams();
236 } catch (...) {
237 return handleAllExceptions(ERR, ERR);
238 }
239 }
240
241 int32_t reactor_addSensitivityReaction(int32_t handle, int32_t rxn)
242 {
243 // setter: virtual void ReactorBase::addSensitivityReaction(size_t)
244 try {
245 ReactorBaseCabinet::at(handle)->addSensitivityReaction(rxn);
246 return 0;
247 } catch (...) {
248 return handleAllExceptions(-1, ERR);
249 }
250 }
251
252 int32_t reactor_addSurface(int32_t handle, int32_t surf)
253 {
254 // setter: void ReactorBase::addSurface(shared_ptr<ReactorBase>)
255 try {
256 ReactorBaseCabinet::at(handle)->addSurface(ReactorBaseCabinet::at(surf));
257 return 0;
258 } catch (...) {
259 return handleAllExceptions(-1, ERR);
260 }
261 }
262
263 int32_t reactor_setMassFlowRate(int32_t handle, double mdot)
264 {
265 // setter: void FlowReactor::setMassFlowRate(double)
266 try {
267 ReactorBaseCabinet::as<FlowReactor>(handle)->setMassFlowRate(mdot);
268 return 0;
269 } catch (...) {
270 return handleAllExceptions(-1, ERR);
271 }
272 }
273
274 double reactor_area(int32_t handle)
275 {
276 // getter: double FlowReactor::area()
277 try {
278 return ReactorBaseCabinet::as<FlowReactor>(handle)->area();
279 } catch (...) {
280 return handleAllExceptions(DERR, DERR);
281 }
282 }
283
284 int32_t reactor_setArea(int32_t handle, double area)
285 {
286 // setter: void FlowReactor::setArea(double)
287 try {
288 ReactorBaseCabinet::as<FlowReactor>(handle)->setArea(area);
289 return 0;
290 } catch (...) {
291 return handleAllExceptions(-1, ERR);
292 }
293 }
294
295 int32_t reactor_del(int32_t handle)
296 {
297 // destructor
298 try {
299 ReactorBaseCabinet::del(handle);
300 return 0;
301 } catch (...) {
302 return handleAllExceptions(-1, ERR);
303 }
304 }
305
307 {
308 // reserved CLib function: custom code
309 try {
310 // *************** begin custom code ***************
311 return ReactorBaseCabinet::size();
312 // **************** end custom code ****************
313 } catch (...) {
314 return handleAllExceptions(-1, ERR);
315 }
316 }
317
318} // extern "C"
Header file for class ReactorSurface.
Template for classes to hold pointers to objects.
Definition Cabinet.h:51
int32_t reactor_nSensParams(int32_t handle)
Number of sensitivity parameters associated with this reactor.
double reactor_volume(int32_t handle)
Returns the current volume (m^3) of the reactor.
int32_t reactor_setName(int32_t handle, const char *name)
Set the name of this reactor.
Definition ctreactor.cpp:96
int32_t reactor_del(int32_t handle)
Delete ReactorBase object.
double reactor_enthalpy_mass(int32_t handle)
Returns the current enthalpy (J/kg) of the reactor's contents.
double reactor_pressure(int32_t handle)
Returns the current pressure (Pa) of the reactor.
int32_t reactor_addSurface(int32_t handle, int32_t surf)
Add a ReactorSurface object to a Reactor object.
int32_t reactor_newSurface(int32_t contents, int32_t reactorsLen, const int32_t *reactors, int32_t clone, const char *name)
Create a ReactorSurface object with the specified contents and adjacent reactors participating in sur...
Definition ctreactor.cpp:57
int32_t reactor_contents(int32_t handle)
Access the Solution object used to represent the contents of this reactor.
double reactor_mass(int32_t handle)
Returns the mass (kg) of the reactor's contents.
int32_t reactor_setArea(int32_t handle, double area)
Sets the area of the reactor [m^2].
int32_t reactor_setMassFlowRate(int32_t handle, double mdot)
Set the mass flow rate through the reactor [kg/s].
double reactor_area(int32_t handle)
The cross-sectional area of the reactor [m^2].
int32_t reactor_setEnergy(int32_t handle, int32_t eflag)
Set the energy equation on or off.
int32_t reactor_setInitialVolume(int32_t handle, double vol)
Set the initial reactor volume.
double reactor_temperature(int32_t handle)
Returns the current temperature (K) of the reactor's contents.
int32_t reactor_setChemistry(int32_t handle, int32_t cflag)
Enable or disable changes in reactor composition due to chemical reactions.
double reactor_massFraction(int32_t handle, int32_t k)
Return the mass fraction of the k-th species.
double reactor_intEnergy_mass(int32_t handle)
Returns the current internal energy (J/kg) of the reactor's contents.
int32_t reactor_addSensitivityReaction(int32_t handle, int32_t rxn)
Add a sensitivity parameter associated with the reaction number rxn
int32_t reactor_new(const char *model, int32_t contents, int32_t clone, const char *name)
Create a ReactorBase object of the specified type and contents.
Definition ctreactor.cpp:46
double reactor_density(int32_t handle)
Returns the current density (kg/m^3) of the reactor's contents.
int32_t reactor_type(int32_t handle, int32_t bufLen, char *buf)
String indicating the reactor model implemented.
Definition ctreactor.cpp:72
int32_t reactor_name(int32_t handle, int32_t bufLen, char *buf)
Return the name of this reactor.
Definition ctreactor.cpp:84
int32_t reactor_cabinetSize()
Return size of ReactorBase storage.
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< ReactorBase > newReactorBase(const string &model, shared_ptr< Solution > contents, bool clone, const string &name)
Create a ReactorBase object of the specified type and contents.
shared_ptr< ReactorSurface > newReactorSurface(shared_ptr< Solution > contents, const vector< shared_ptr< ReactorBase > > &reactors, bool clone, const string &name)
Create a ReactorSurface object with the specified contents and adjacent reactors participating in sur...
CTREACTOR - Generated CLib Cantera interface library.
Namespace for the Cantera kernel.
Definition AnyMap.cpp:595
T handleAllExceptions(T ctErrorCode, T otherErrorCode)
Exception handler used at language interface boundaries.
Definition clib_utils.h:32
Contains declarations for string manipulation functions within Cantera.