1pub const __bool_true_false_are_defined: u32 = 1;
4pub const true_: u32 = 1;
5pub const false_: u32 = 0;
6pub struct CoolProp {
7 __library: ::libloading::Library,
8 pub Props1SI: unsafe extern "C" fn(
9 FluidName: *const ::core::ffi::c_char,
10 Output: *const ::core::ffi::c_char,
11 ) -> f64,
12 pub Props1SImulti: unsafe extern "C" fn(
13 Outputs: *const ::core::ffi::c_char,
14 backend: *mut ::core::ffi::c_char,
15 FluidNames: *const ::core::ffi::c_char,
16 fractions: *const f64,
17 length_fractions: ::core::ffi::c_long,
18 result: *mut f64,
19 resdim1: *mut ::core::ffi::c_long,
20 ),
21 pub PropsSI: unsafe extern "C" fn(
22 Output: *const ::core::ffi::c_char,
23 Name1: *const ::core::ffi::c_char,
24 Prop1: f64,
25 Name2: *const ::core::ffi::c_char,
26 Prop2: f64,
27 FluidName: *const ::core::ffi::c_char,
28 ) -> f64,
29 pub PropsSImulti: unsafe extern "C" fn(
30 Outputs: *const ::core::ffi::c_char,
31 Name1: *const ::core::ffi::c_char,
32 Prop1: *mut f64,
33 size_Prop1: ::core::ffi::c_long,
34 Name2: *const ::core::ffi::c_char,
35 Prop2: *mut f64,
36 size_Prop2: ::core::ffi::c_long,
37 backend: *mut ::core::ffi::c_char,
38 FluidNames: *const ::core::ffi::c_char,
39 fractions: *const f64,
40 length_fractions: ::core::ffi::c_long,
41 result: *mut f64,
42 resdim1: *mut ::core::ffi::c_long,
43 resdim2: *mut ::core::ffi::c_long,
44 ),
45 pub PhaseSI: unsafe extern "C" fn(
46 Name1: *const ::core::ffi::c_char,
47 Prop1: f64,
48 Name2: *const ::core::ffi::c_char,
49 Prop2: f64,
50 FluidName: *const ::core::ffi::c_char,
51 phase: *mut ::core::ffi::c_char,
52 n: ::core::ffi::c_int,
53 ) -> ::core::ffi::c_long,
54 pub get_global_param_string: unsafe extern "C" fn(
55 param: *const ::core::ffi::c_char,
56 Output: *mut ::core::ffi::c_char,
57 n: ::core::ffi::c_int,
58 ) -> ::core::ffi::c_long,
59 pub get_parameter_information_string: unsafe extern "C" fn(
60 param: *const ::core::ffi::c_char,
61 Output: *mut ::core::ffi::c_char,
62 n: ::core::ffi::c_int,
63 ) -> ::core::ffi::c_long,
64 pub get_fluid_param_string: unsafe extern "C" fn(
65 fluid: *const ::core::ffi::c_char,
66 param: *const ::core::ffi::c_char,
67 Output: *mut ::core::ffi::c_char,
68 n: ::core::ffi::c_int,
69 ) -> ::core::ffi::c_long,
70 pub get_fluid_param_string_len: unsafe extern "C" fn(
71 fluid: *const ::core::ffi::c_char,
72 param: *const ::core::ffi::c_char,
73 ) -> ::core::ffi::c_long,
74 pub set_config_string:
75 unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: *const ::core::ffi::c_char),
76 pub set_config_double: unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: f64),
77 pub set_config_bool: unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: bool),
78 pub set_departure_functions: unsafe extern "C" fn(
79 string_data: *const ::core::ffi::c_char,
80 errcode: *mut ::core::ffi::c_long,
81 message_buffer: *mut ::core::ffi::c_char,
82 buffer_length: ::core::ffi::c_long,
83 ),
84 pub set_reference_stateS: unsafe extern "C" fn(
85 Ref: *const ::core::ffi::c_char,
86 reference_state: *const ::core::ffi::c_char,
87 ) -> ::core::ffi::c_int,
88 pub set_reference_stateD: unsafe extern "C" fn(
89 Ref: *const ::core::ffi::c_char,
90 T: f64,
91 rhomolar: f64,
92 hmolar0: f64,
93 smolar0: f64,
94 ) -> ::core::ffi::c_int,
95 pub propssi_: unsafe extern "C" fn(
96 Output: *const ::core::ffi::c_char,
97 Name1: *const ::core::ffi::c_char,
98 Prop1: *const f64,
99 Name2: *const ::core::ffi::c_char,
100 Prop2: *const f64,
101 FluidName: *const ::core::ffi::c_char,
102 output: *mut f64,
103 ),
104 pub F2K: unsafe extern "C" fn(T_F: f64) -> f64,
105 pub K2F: unsafe extern "C" fn(T_K: f64) -> f64,
106 pub get_param_index:
107 unsafe extern "C" fn(param: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
108 pub get_input_pair_index:
109 unsafe extern "C" fn(pair: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
110 pub redirect_stdout:
111 unsafe extern "C" fn(file: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
112 pub get_debug_level: unsafe extern "C" fn() -> ::core::ffi::c_int,
113 pub set_debug_level: unsafe extern "C" fn(level: ::core::ffi::c_int),
114 pub saturation_ancillary: unsafe extern "C" fn(
115 fluid_name: *const ::core::ffi::c_char,
116 output: *const ::core::ffi::c_char,
117 Q: ::core::ffi::c_int,
118 input: *const ::core::ffi::c_char,
119 value: f64,
120 ) -> f64,
121 pub HAPropsSI: unsafe extern "C" fn(
122 Output: *const ::core::ffi::c_char,
123 Name1: *const ::core::ffi::c_char,
124 Prop1: f64,
125 Name2: *const ::core::ffi::c_char,
126 Prop2: f64,
127 Name3: *const ::core::ffi::c_char,
128 Prop3: f64,
129 ) -> f64,
130 pub cair_sat: unsafe extern "C" fn(T: f64) -> f64,
131 pub hapropssi_: unsafe extern "C" fn(
132 Output: *const ::core::ffi::c_char,
133 Name1: *const ::core::ffi::c_char,
134 Prop1: *const f64,
135 Name2: *const ::core::ffi::c_char,
136 Prop2: *const f64,
137 Name3: *const ::core::ffi::c_char,
138 Prop3: *const f64,
139 output: *mut f64,
140 ),
141 pub HAProps: unsafe extern "C" fn(
142 Output: *const ::core::ffi::c_char,
143 Name1: *const ::core::ffi::c_char,
144 Prop1: f64,
145 Name2: *const ::core::ffi::c_char,
146 Prop2: f64,
147 Name3: *const ::core::ffi::c_char,
148 Prop3: f64,
149 ) -> f64,
150 pub haprops_: unsafe extern "C" fn(
151 Output: *const ::core::ffi::c_char,
152 Name1: *const ::core::ffi::c_char,
153 Prop1: *const f64,
154 Name2: *const ::core::ffi::c_char,
155 Prop2: *const f64,
156 Name3: *const ::core::ffi::c_char,
157 Prop3: *const f64,
158 output: *mut f64,
159 ),
160 pub AbstractState_factory: unsafe extern "C" fn(
161 backend: *const ::core::ffi::c_char,
162 fluids: *const ::core::ffi::c_char,
163 errcode: *mut ::core::ffi::c_long,
164 message_buffer: *mut ::core::ffi::c_char,
165 buffer_length: ::core::ffi::c_long,
166 ) -> ::core::ffi::c_long,
167 pub AbstractState_fluid_names: unsafe extern "C" fn(
168 handle: ::core::ffi::c_long,
169 fluids: *mut ::core::ffi::c_char,
170 errcode: *mut ::core::ffi::c_long,
171 message_buffer: *mut ::core::ffi::c_char,
172 buffer_length: ::core::ffi::c_long,
173 ),
174 pub AbstractState_free: unsafe extern "C" fn(
175 handle: ::core::ffi::c_long,
176 errcode: *mut ::core::ffi::c_long,
177 message_buffer: *mut ::core::ffi::c_char,
178 buffer_length: ::core::ffi::c_long,
179 ),
180 pub AbstractState_set_fractions: unsafe extern "C" fn(
181 handle: ::core::ffi::c_long,
182 fractions: *const f64,
183 N: ::core::ffi::c_long,
184 errcode: *mut ::core::ffi::c_long,
185 message_buffer: *mut ::core::ffi::c_char,
186 buffer_length: ::core::ffi::c_long,
187 ),
188 pub AbstractState_get_mole_fractions: unsafe extern "C" fn(
189 handle: ::core::ffi::c_long,
190 fractions: *mut f64,
191 maxN: ::core::ffi::c_long,
192 N: *mut ::core::ffi::c_long,
193 errcode: *mut ::core::ffi::c_long,
194 message_buffer: *mut ::core::ffi::c_char,
195 buffer_length: ::core::ffi::c_long,
196 ),
197 pub AbstractState_get_mole_fractions_satState: unsafe extern "C" fn(
198 handle: ::core::ffi::c_long,
199 saturated_state: *const ::core::ffi::c_char,
200 fractions: *mut f64,
201 maxN: ::core::ffi::c_long,
202 N: *mut ::core::ffi::c_long,
203 errcode: *mut ::core::ffi::c_long,
204 message_buffer: *mut ::core::ffi::c_char,
205 buffer_length: ::core::ffi::c_long,
206 ),
207 pub AbstractState_get_fugacity: unsafe extern "C" fn(
208 handle: ::core::ffi::c_long,
209 i: ::core::ffi::c_long,
210 errcode: *mut ::core::ffi::c_long,
211 message_buffer: *mut ::core::ffi::c_char,
212 buffer_length: ::core::ffi::c_long,
213 ) -> f64,
214 pub AbstractState_get_fugacity_coefficient: unsafe extern "C" fn(
215 handle: ::core::ffi::c_long,
216 i: ::core::ffi::c_long,
217 errcode: *mut ::core::ffi::c_long,
218 message_buffer: *mut ::core::ffi::c_char,
219 buffer_length: ::core::ffi::c_long,
220 ) -> f64,
221 pub AbstractState_update: unsafe extern "C" fn(
222 handle: ::core::ffi::c_long,
223 input_pair: ::core::ffi::c_long,
224 value1: f64,
225 value2: f64,
226 errcode: *mut ::core::ffi::c_long,
227 message_buffer: *mut ::core::ffi::c_char,
228 buffer_length: ::core::ffi::c_long,
229 ),
230 pub AbstractState_specify_phase: unsafe extern "C" fn(
231 handle: ::core::ffi::c_long,
232 phase: *const ::core::ffi::c_char,
233 errcode: *mut ::core::ffi::c_long,
234 message_buffer: *mut ::core::ffi::c_char,
235 buffer_length: ::core::ffi::c_long,
236 ),
237 pub AbstractState_unspecify_phase: unsafe extern "C" fn(
238 handle: ::core::ffi::c_long,
239 errcode: *mut ::core::ffi::c_long,
240 message_buffer: *mut ::core::ffi::c_char,
241 buffer_length: ::core::ffi::c_long,
242 ),
243 pub AbstractState_keyed_output: unsafe extern "C" fn(
244 handle: ::core::ffi::c_long,
245 param: ::core::ffi::c_long,
246 errcode: *mut ::core::ffi::c_long,
247 message_buffer: *mut ::core::ffi::c_char,
248 buffer_length: ::core::ffi::c_long,
249 ) -> f64,
250 pub AbstractState_first_saturation_deriv: unsafe extern "C" fn(
251 handle: ::core::ffi::c_long,
252 Of: ::core::ffi::c_long,
253 Wrt: ::core::ffi::c_long,
254 errcode: *mut ::core::ffi::c_long,
255 message_buffer: *mut ::core::ffi::c_char,
256 buffer_length: ::core::ffi::c_long,
257 ) -> f64,
258 pub AbstractState_first_partial_deriv: unsafe extern "C" fn(
259 handle: ::core::ffi::c_long,
260 Of: ::core::ffi::c_long,
261 Wrt: ::core::ffi::c_long,
262 Constant: ::core::ffi::c_long,
263 errcode: *mut ::core::ffi::c_long,
264 message_buffer: *mut ::core::ffi::c_char,
265 buffer_length: ::core::ffi::c_long,
266 ) -> f64,
267 pub AbstractState_second_two_phase_deriv: unsafe extern "C" fn(
268 handle: ::core::ffi::c_long,
269 Of1: ::core::ffi::c_long,
270 Wrt1: ::core::ffi::c_long,
271 Constant1: ::core::ffi::c_long,
272 Wrt2: ::core::ffi::c_long,
273 Constant2: ::core::ffi::c_long,
274 errcode: *mut ::core::ffi::c_long,
275 message_buffer: *mut ::core::ffi::c_char,
276 buffer_length: ::core::ffi::c_long,
277 ) -> f64,
278 pub AbstractState_second_partial_deriv: unsafe extern "C" fn(
279 handle: ::core::ffi::c_long,
280 Of1: ::core::ffi::c_long,
281 Wrt1: ::core::ffi::c_long,
282 Constant1: ::core::ffi::c_long,
283 Wrt2: ::core::ffi::c_long,
284 Constant2: ::core::ffi::c_long,
285 errcode: *mut ::core::ffi::c_long,
286 message_buffer: *mut ::core::ffi::c_char,
287 buffer_length: ::core::ffi::c_long,
288 ) -> f64,
289 pub AbstractState_first_two_phase_deriv_splined: unsafe extern "C" fn(
290 handle: ::core::ffi::c_long,
291 Of: ::core::ffi::c_long,
292 Wrt: ::core::ffi::c_long,
293 Constant: ::core::ffi::c_long,
294 x_end: f64,
295 errcode: *mut ::core::ffi::c_long,
296 message_buffer: *mut ::core::ffi::c_char,
297 buffer_length: ::core::ffi::c_long,
298 ) -> f64,
299 pub AbstractState_first_two_phase_deriv: unsafe extern "C" fn(
300 handle: ::core::ffi::c_long,
301 Of: ::core::ffi::c_long,
302 Wrt: ::core::ffi::c_long,
303 Constant: ::core::ffi::c_long,
304 errcode: *mut ::core::ffi::c_long,
305 message_buffer: *mut ::core::ffi::c_char,
306 buffer_length: ::core::ffi::c_long,
307 ) -> f64,
308 pub AbstractState_update_and_common_out: unsafe extern "C" fn(
309 handle: ::core::ffi::c_long,
310 input_pair: ::core::ffi::c_long,
311 value1: *const f64,
312 value2: *const f64,
313 length: ::core::ffi::c_long,
314 T: *mut f64,
315 p: *mut f64,
316 rhomolar: *mut f64,
317 hmolar: *mut f64,
318 smolar: *mut f64,
319 errcode: *mut ::core::ffi::c_long,
320 message_buffer: *mut ::core::ffi::c_char,
321 buffer_length: ::core::ffi::c_long,
322 ),
323 pub AbstractState_update_and_1_out: unsafe extern "C" fn(
324 handle: ::core::ffi::c_long,
325 input_pair: ::core::ffi::c_long,
326 value1: *const f64,
327 value2: *const f64,
328 length: ::core::ffi::c_long,
329 output: ::core::ffi::c_long,
330 out: *mut f64,
331 errcode: *mut ::core::ffi::c_long,
332 message_buffer: *mut ::core::ffi::c_char,
333 buffer_length: ::core::ffi::c_long,
334 ),
335 pub AbstractState_update_and_5_out: unsafe extern "C" fn(
336 handle: ::core::ffi::c_long,
337 input_pair: ::core::ffi::c_long,
338 value1: *const f64,
339 value2: *const f64,
340 length: ::core::ffi::c_long,
341 outputs: *mut ::core::ffi::c_long,
342 out1: *mut f64,
343 out2: *mut f64,
344 out3: *mut f64,
345 out4: *mut f64,
346 out5: *mut f64,
347 errcode: *mut ::core::ffi::c_long,
348 message_buffer: *mut ::core::ffi::c_char,
349 buffer_length: ::core::ffi::c_long,
350 ),
351 pub AbstractState_set_binary_interaction_double: unsafe extern "C" fn(
352 handle: ::core::ffi::c_long,
353 i: ::core::ffi::c_long,
354 j: ::core::ffi::c_long,
355 parameter: *const ::core::ffi::c_char,
356 value: f64,
357 errcode: *mut ::core::ffi::c_long,
358 message_buffer: *mut ::core::ffi::c_char,
359 buffer_length: ::core::ffi::c_long,
360 ),
361 pub AbstractState_set_cubic_alpha_C: unsafe extern "C" fn(
362 handle: ::core::ffi::c_long,
363 i: ::core::ffi::c_long,
364 parameter: *const ::core::ffi::c_char,
365 c1: f64,
366 c2: f64,
367 c3: f64,
368 errcode: *mut ::core::ffi::c_long,
369 message_buffer: *mut ::core::ffi::c_char,
370 buffer_length: ::core::ffi::c_long,
371 ),
372 pub AbstractState_set_fluid_parameter_double: unsafe extern "C" fn(
373 handle: ::core::ffi::c_long,
374 i: ::core::ffi::c_long,
375 parameter: *const ::core::ffi::c_char,
376 value: f64,
377 errcode: *mut ::core::ffi::c_long,
378 message_buffer: *mut ::core::ffi::c_char,
379 buffer_length: ::core::ffi::c_long,
380 ),
381 pub AbstractState_build_phase_envelope: unsafe extern "C" fn(
382 handle: ::core::ffi::c_long,
383 level: *const ::core::ffi::c_char,
384 errcode: *mut ::core::ffi::c_long,
385 message_buffer: *mut ::core::ffi::c_char,
386 buffer_length: ::core::ffi::c_long,
387 ),
388 pub AbstractState_get_phase_envelope_data: unsafe extern "C" fn(
389 handle: ::core::ffi::c_long,
390 length: ::core::ffi::c_long,
391 T: *mut f64,
392 p: *mut f64,
393 rhomolar_vap: *mut f64,
394 rhomolar_liq: *mut f64,
395 x: *mut f64,
396 y: *mut f64,
397 errcode: *mut ::core::ffi::c_long,
398 message_buffer: *mut ::core::ffi::c_char,
399 buffer_length: ::core::ffi::c_long,
400 ),
401 pub AbstractState_get_phase_envelope_data_checkedMemory: unsafe extern "C" fn(
402 handle: ::core::ffi::c_long,
403 length: ::core::ffi::c_long,
404 maxComponents: ::core::ffi::c_long,
405 T: *mut f64,
406 p: *mut f64,
407 rhomolar_vap: *mut f64,
408 rhomolar_liq: *mut f64,
409 x: *mut f64,
410 y: *mut f64,
411 actual_length: *mut ::core::ffi::c_long,
412 actual_components: *mut ::core::ffi::c_long,
413 errcode: *mut ::core::ffi::c_long,
414 message_buffer: *mut ::core::ffi::c_char,
415 buffer_length: ::core::ffi::c_long,
416 ),
417 pub AbstractState_build_spinodal: unsafe extern "C" fn(
418 handle: ::core::ffi::c_long,
419 errcode: *mut ::core::ffi::c_long,
420 message_buffer: *mut ::core::ffi::c_char,
421 buffer_length: ::core::ffi::c_long,
422 ),
423 pub AbstractState_get_spinodal_data: unsafe extern "C" fn(
424 handle: ::core::ffi::c_long,
425 length: ::core::ffi::c_long,
426 tau: *mut f64,
427 delta: *mut f64,
428 M1: *mut f64,
429 errcode: *mut ::core::ffi::c_long,
430 message_buffer: *mut ::core::ffi::c_char,
431 buffer_length: ::core::ffi::c_long,
432 ),
433 pub AbstractState_all_critical_points: unsafe extern "C" fn(
434 handle: ::core::ffi::c_long,
435 length: ::core::ffi::c_long,
436 T: *mut f64,
437 p: *mut f64,
438 rhomolar: *mut f64,
439 stable: *mut ::core::ffi::c_long,
440 errcode: *mut ::core::ffi::c_long,
441 message_buffer: *mut ::core::ffi::c_char,
442 buffer_length: ::core::ffi::c_long,
443 ),
444 pub AbstractState_keyed_output_satState: unsafe extern "C" fn(
445 handle: ::core::ffi::c_long,
446 saturated_state: *const ::core::ffi::c_char,
447 param: ::core::ffi::c_long,
448 errcode: *mut ::core::ffi::c_long,
449 message_buffer: *mut ::core::ffi::c_char,
450 buffer_length: ::core::ffi::c_long,
451 ) -> f64,
452 pub AbstractState_backend_name: unsafe extern "C" fn(
453 handle: ::core::ffi::c_long,
454 backend: *mut ::core::ffi::c_char,
455 errcode: *mut ::core::ffi::c_long,
456 message_buffer: *mut ::core::ffi::c_char,
457 buffer_length: ::core::ffi::c_long,
458 ),
459 pub AbstractState_fluid_param_string: unsafe extern "C" fn(
460 handle: ::core::ffi::c_long,
461 param: *const ::core::ffi::c_char,
462 return_buffer: *mut ::core::ffi::c_char,
463 return_buffer_length: ::core::ffi::c_long,
464 errcode: *mut ::core::ffi::c_long,
465 message_buffer: *mut ::core::ffi::c_char,
466 buffer_length: ::core::ffi::c_long,
467 ),
468 pub AbstractState_phase: unsafe extern "C" fn(
469 handle: ::core::ffi::c_long,
470 errcode: *mut ::core::ffi::c_long,
471 message_buffer: *mut ::core::ffi::c_char,
472 buffer_length: ::core::ffi::c_long,
473 ) -> ::core::ffi::c_int,
474 pub AbstractState_saturated_liquid_keyed_output: unsafe extern "C" fn(
475 handle: ::core::ffi::c_long,
476 param: ::core::ffi::c_long,
477 errcode: *mut ::core::ffi::c_long,
478 message_buffer: *mut ::core::ffi::c_char,
479 buffer_length: ::core::ffi::c_long,
480 ) -> f64,
481 pub AbstractState_saturated_vapor_keyed_output: unsafe extern "C" fn(
482 handle: ::core::ffi::c_long,
483 param: ::core::ffi::c_long,
484 errcode: *mut ::core::ffi::c_long,
485 message_buffer: *mut ::core::ffi::c_char,
486 buffer_length: ::core::ffi::c_long,
487 ) -> f64,
488 pub add_fluids_as_JSON: unsafe extern "C" fn(
489 backend: *const ::core::ffi::c_char,
490 fluidstring: *const ::core::ffi::c_char,
491 errcode: *mut ::core::ffi::c_long,
492 message_buffer: *mut ::core::ffi::c_char,
493 buffer_length: ::core::ffi::c_long,
494 ),
495 pub C_is_valid_fluid_string:
496 unsafe extern "C" fn(fluidName: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
497 pub C_extract_backend: unsafe extern "C" fn(
498 fluid_string: *const ::core::ffi::c_char,
499 backend: *mut ::core::ffi::c_char,
500 backend_length: ::core::ffi::c_long,
501 fluid: *mut ::core::ffi::c_char,
502 fluid_length: ::core::ffi::c_long,
503 ) -> ::core::ffi::c_int,
504}
505impl CoolProp {
506 pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
507 where
508 P: AsRef<::std::ffi::OsStr>,
509 {
510 let library = ::libloading::Library::new(path)?;
511 Self::from_library(library)
512 }
513
514 pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
515 where
516 L: Into<::libloading::Library>,
517 {
518 let __library = library.into();
519 let Props1SI = __library.get(b"Props1SI\0").map(|sym| *sym)?;
520 let Props1SImulti = __library.get(b"Props1SImulti\0").map(|sym| *sym)?;
521 let PropsSI = __library.get(b"PropsSI\0").map(|sym| *sym)?;
522 let PropsSImulti = __library.get(b"PropsSImulti\0").map(|sym| *sym)?;
523 let PhaseSI = __library.get(b"PhaseSI\0").map(|sym| *sym)?;
524 let get_global_param_string =
525 __library.get(b"get_global_param_string\0").map(|sym| *sym)?;
526 let get_parameter_information_string =
527 __library.get(b"get_parameter_information_string\0").map(|sym| *sym)?;
528 let get_fluid_param_string = __library.get(b"get_fluid_param_string\0").map(|sym| *sym)?;
529 let get_fluid_param_string_len =
530 __library.get(b"get_fluid_param_string_len\0").map(|sym| *sym)?;
531 let set_config_string = __library.get(b"set_config_string\0").map(|sym| *sym)?;
532 let set_config_double = __library.get(b"set_config_double\0").map(|sym| *sym)?;
533 let set_config_bool = __library.get(b"set_config_bool\0").map(|sym| *sym)?;
534 let set_departure_functions =
535 __library.get(b"set_departure_functions\0").map(|sym| *sym)?;
536 let set_reference_stateS = __library.get(b"set_reference_stateS\0").map(|sym| *sym)?;
537 let set_reference_stateD = __library.get(b"set_reference_stateD\0").map(|sym| *sym)?;
538 let propssi_ = __library.get(b"propssi_\0").map(|sym| *sym)?;
539 let F2K = __library.get(b"F2K\0").map(|sym| *sym)?;
540 let K2F = __library.get(b"K2F\0").map(|sym| *sym)?;
541 let get_param_index = __library.get(b"get_param_index\0").map(|sym| *sym)?;
542 let get_input_pair_index = __library.get(b"get_input_pair_index\0").map(|sym| *sym)?;
543 let redirect_stdout = __library.get(b"redirect_stdout\0").map(|sym| *sym)?;
544 let get_debug_level = __library.get(b"get_debug_level\0").map(|sym| *sym)?;
545 let set_debug_level = __library.get(b"set_debug_level\0").map(|sym| *sym)?;
546 let saturation_ancillary = __library.get(b"saturation_ancillary\0").map(|sym| *sym)?;
547 let HAPropsSI = __library.get(b"HAPropsSI\0").map(|sym| *sym)?;
548 let cair_sat = __library.get(b"cair_sat\0").map(|sym| *sym)?;
549 let hapropssi_ = __library.get(b"hapropssi_\0").map(|sym| *sym)?;
550 let HAProps = __library.get(b"HAProps\0").map(|sym| *sym)?;
551 let haprops_ = __library.get(b"haprops_\0").map(|sym| *sym)?;
552 let AbstractState_factory = __library.get(b"AbstractState_factory\0").map(|sym| *sym)?;
553 let AbstractState_fluid_names =
554 __library.get(b"AbstractState_fluid_names\0").map(|sym| *sym)?;
555 let AbstractState_free = __library.get(b"AbstractState_free\0").map(|sym| *sym)?;
556 let AbstractState_set_fractions =
557 __library.get(b"AbstractState_set_fractions\0").map(|sym| *sym)?;
558 let AbstractState_get_mole_fractions =
559 __library.get(b"AbstractState_get_mole_fractions\0").map(|sym| *sym)?;
560 let AbstractState_get_mole_fractions_satState =
561 __library.get(b"AbstractState_get_mole_fractions_satState\0").map(|sym| *sym)?;
562 let AbstractState_get_fugacity =
563 __library.get(b"AbstractState_get_fugacity\0").map(|sym| *sym)?;
564 let AbstractState_get_fugacity_coefficient =
565 __library.get(b"AbstractState_get_fugacity_coefficient\0").map(|sym| *sym)?;
566 let AbstractState_update = __library.get(b"AbstractState_update\0").map(|sym| *sym)?;
567 let AbstractState_specify_phase =
568 __library.get(b"AbstractState_specify_phase\0").map(|sym| *sym)?;
569 let AbstractState_unspecify_phase =
570 __library.get(b"AbstractState_unspecify_phase\0").map(|sym| *sym)?;
571 let AbstractState_keyed_output =
572 __library.get(b"AbstractState_keyed_output\0").map(|sym| *sym)?;
573 let AbstractState_first_saturation_deriv =
574 __library.get(b"AbstractState_first_saturation_deriv\0").map(|sym| *sym)?;
575 let AbstractState_first_partial_deriv =
576 __library.get(b"AbstractState_first_partial_deriv\0").map(|sym| *sym)?;
577 let AbstractState_second_two_phase_deriv =
578 __library.get(b"AbstractState_second_two_phase_deriv\0").map(|sym| *sym)?;
579 let AbstractState_second_partial_deriv =
580 __library.get(b"AbstractState_second_partial_deriv\0").map(|sym| *sym)?;
581 let AbstractState_first_two_phase_deriv_splined =
582 __library.get(b"AbstractState_first_two_phase_deriv_splined\0").map(|sym| *sym)?;
583 let AbstractState_first_two_phase_deriv =
584 __library.get(b"AbstractState_first_two_phase_deriv\0").map(|sym| *sym)?;
585 let AbstractState_update_and_common_out =
586 __library.get(b"AbstractState_update_and_common_out\0").map(|sym| *sym)?;
587 let AbstractState_update_and_1_out =
588 __library.get(b"AbstractState_update_and_1_out\0").map(|sym| *sym)?;
589 let AbstractState_update_and_5_out =
590 __library.get(b"AbstractState_update_and_5_out\0").map(|sym| *sym)?;
591 let AbstractState_set_binary_interaction_double =
592 __library.get(b"AbstractState_set_binary_interaction_double\0").map(|sym| *sym)?;
593 let AbstractState_set_cubic_alpha_C =
594 __library.get(b"AbstractState_set_cubic_alpha_C\0").map(|sym| *sym)?;
595 let AbstractState_set_fluid_parameter_double =
596 __library.get(b"AbstractState_set_fluid_parameter_double\0").map(|sym| *sym)?;
597 let AbstractState_build_phase_envelope =
598 __library.get(b"AbstractState_build_phase_envelope\0").map(|sym| *sym)?;
599 let AbstractState_get_phase_envelope_data =
600 __library.get(b"AbstractState_get_phase_envelope_data\0").map(|sym| *sym)?;
601 let AbstractState_get_phase_envelope_data_checkedMemory = __library
602 .get(b"AbstractState_get_phase_envelope_data_checkedMemory\0")
603 .map(|sym| *sym)?;
604 let AbstractState_build_spinodal =
605 __library.get(b"AbstractState_build_spinodal\0").map(|sym| *sym)?;
606 let AbstractState_get_spinodal_data =
607 __library.get(b"AbstractState_get_spinodal_data\0").map(|sym| *sym)?;
608 let AbstractState_all_critical_points =
609 __library.get(b"AbstractState_all_critical_points\0").map(|sym| *sym)?;
610 let AbstractState_keyed_output_satState =
611 __library.get(b"AbstractState_keyed_output_satState\0").map(|sym| *sym)?;
612 let AbstractState_backend_name =
613 __library.get(b"AbstractState_backend_name\0").map(|sym| *sym)?;
614 let AbstractState_fluid_param_string =
615 __library.get(b"AbstractState_fluid_param_string\0").map(|sym| *sym)?;
616 let AbstractState_phase = __library.get(b"AbstractState_phase\0").map(|sym| *sym)?;
617 let AbstractState_saturated_liquid_keyed_output =
618 __library.get(b"AbstractState_saturated_liquid_keyed_output\0").map(|sym| *sym)?;
619 let AbstractState_saturated_vapor_keyed_output =
620 __library.get(b"AbstractState_saturated_vapor_keyed_output\0").map(|sym| *sym)?;
621 let add_fluids_as_JSON = __library.get(b"add_fluids_as_JSON\0").map(|sym| *sym)?;
622 let C_is_valid_fluid_string =
623 __library.get(b"C_is_valid_fluid_string\0").map(|sym| *sym)?;
624 let C_extract_backend = __library.get(b"C_extract_backend\0").map(|sym| *sym)?;
625 Ok(CoolProp {
626 __library,
627 Props1SI,
628 Props1SImulti,
629 PropsSI,
630 PropsSImulti,
631 PhaseSI,
632 get_global_param_string,
633 get_parameter_information_string,
634 get_fluid_param_string,
635 get_fluid_param_string_len,
636 set_config_string,
637 set_config_double,
638 set_config_bool,
639 set_departure_functions,
640 set_reference_stateS,
641 set_reference_stateD,
642 propssi_,
643 F2K,
644 K2F,
645 get_param_index,
646 get_input_pair_index,
647 redirect_stdout,
648 get_debug_level,
649 set_debug_level,
650 saturation_ancillary,
651 HAPropsSI,
652 cair_sat,
653 hapropssi_,
654 HAProps,
655 haprops_,
656 AbstractState_factory,
657 AbstractState_fluid_names,
658 AbstractState_free,
659 AbstractState_set_fractions,
660 AbstractState_get_mole_fractions,
661 AbstractState_get_mole_fractions_satState,
662 AbstractState_get_fugacity,
663 AbstractState_get_fugacity_coefficient,
664 AbstractState_update,
665 AbstractState_specify_phase,
666 AbstractState_unspecify_phase,
667 AbstractState_keyed_output,
668 AbstractState_first_saturation_deriv,
669 AbstractState_first_partial_deriv,
670 AbstractState_second_two_phase_deriv,
671 AbstractState_second_partial_deriv,
672 AbstractState_first_two_phase_deriv_splined,
673 AbstractState_first_two_phase_deriv,
674 AbstractState_update_and_common_out,
675 AbstractState_update_and_1_out,
676 AbstractState_update_and_5_out,
677 AbstractState_set_binary_interaction_double,
678 AbstractState_set_cubic_alpha_C,
679 AbstractState_set_fluid_parameter_double,
680 AbstractState_build_phase_envelope,
681 AbstractState_get_phase_envelope_data,
682 AbstractState_get_phase_envelope_data_checkedMemory,
683 AbstractState_build_spinodal,
684 AbstractState_get_spinodal_data,
685 AbstractState_all_critical_points,
686 AbstractState_keyed_output_satState,
687 AbstractState_backend_name,
688 AbstractState_fluid_param_string,
689 AbstractState_phase,
690 AbstractState_saturated_liquid_keyed_output,
691 AbstractState_saturated_vapor_keyed_output,
692 add_fluids_as_JSON,
693 C_is_valid_fluid_string,
694 C_extract_backend,
695 })
696 }
697
698 pub unsafe fn Props1SI(
699 &self,
700 FluidName: *const ::core::ffi::c_char,
701 Output: *const ::core::ffi::c_char,
702 ) -> f64 {
703 (self.Props1SI)(FluidName, Output)
704 }
705
706 pub unsafe fn Props1SImulti(
707 &self,
708 Outputs: *const ::core::ffi::c_char,
709 backend: *mut ::core::ffi::c_char,
710 FluidNames: *const ::core::ffi::c_char,
711 fractions: *const f64,
712 length_fractions: ::core::ffi::c_long,
713 result: *mut f64,
714 resdim1: *mut ::core::ffi::c_long,
715 ) {
716 (self.Props1SImulti)(
717 Outputs,
718 backend,
719 FluidNames,
720 fractions,
721 length_fractions,
722 result,
723 resdim1,
724 )
725 }
726
727 pub unsafe fn PropsSI(
728 &self,
729 Output: *const ::core::ffi::c_char,
730 Name1: *const ::core::ffi::c_char,
731 Prop1: f64,
732 Name2: *const ::core::ffi::c_char,
733 Prop2: f64,
734 FluidName: *const ::core::ffi::c_char,
735 ) -> f64 {
736 (self.PropsSI)(Output, Name1, Prop1, Name2, Prop2, FluidName)
737 }
738
739 pub unsafe fn PropsSImulti(
740 &self,
741 Outputs: *const ::core::ffi::c_char,
742 Name1: *const ::core::ffi::c_char,
743 Prop1: *mut f64,
744 size_Prop1: ::core::ffi::c_long,
745 Name2: *const ::core::ffi::c_char,
746 Prop2: *mut f64,
747 size_Prop2: ::core::ffi::c_long,
748 backend: *mut ::core::ffi::c_char,
749 FluidNames: *const ::core::ffi::c_char,
750 fractions: *const f64,
751 length_fractions: ::core::ffi::c_long,
752 result: *mut f64,
753 resdim1: *mut ::core::ffi::c_long,
754 resdim2: *mut ::core::ffi::c_long,
755 ) {
756 (self.PropsSImulti)(
757 Outputs,
758 Name1,
759 Prop1,
760 size_Prop1,
761 Name2,
762 Prop2,
763 size_Prop2,
764 backend,
765 FluidNames,
766 fractions,
767 length_fractions,
768 result,
769 resdim1,
770 resdim2,
771 )
772 }
773
774 pub unsafe fn PhaseSI(
775 &self,
776 Name1: *const ::core::ffi::c_char,
777 Prop1: f64,
778 Name2: *const ::core::ffi::c_char,
779 Prop2: f64,
780 FluidName: *const ::core::ffi::c_char,
781 phase: *mut ::core::ffi::c_char,
782 n: ::core::ffi::c_int,
783 ) -> ::core::ffi::c_long {
784 (self.PhaseSI)(Name1, Prop1, Name2, Prop2, FluidName, phase, n)
785 }
786
787 pub unsafe fn get_global_param_string(
788 &self,
789 param: *const ::core::ffi::c_char,
790 Output: *mut ::core::ffi::c_char,
791 n: ::core::ffi::c_int,
792 ) -> ::core::ffi::c_long {
793 (self.get_global_param_string)(param, Output, n)
794 }
795
796 pub unsafe fn get_parameter_information_string(
797 &self,
798 param: *const ::core::ffi::c_char,
799 Output: *mut ::core::ffi::c_char,
800 n: ::core::ffi::c_int,
801 ) -> ::core::ffi::c_long {
802 (self.get_parameter_information_string)(param, Output, n)
803 }
804
805 pub unsafe fn get_fluid_param_string(
806 &self,
807 fluid: *const ::core::ffi::c_char,
808 param: *const ::core::ffi::c_char,
809 Output: *mut ::core::ffi::c_char,
810 n: ::core::ffi::c_int,
811 ) -> ::core::ffi::c_long {
812 (self.get_fluid_param_string)(fluid, param, Output, n)
813 }
814
815 pub unsafe fn get_fluid_param_string_len(
816 &self,
817 fluid: *const ::core::ffi::c_char,
818 param: *const ::core::ffi::c_char,
819 ) -> ::core::ffi::c_long {
820 (self.get_fluid_param_string_len)(fluid, param)
821 }
822
823 pub unsafe fn set_config_string(
824 &self,
825 key: *const ::core::ffi::c_char,
826 val: *const ::core::ffi::c_char,
827 ) {
828 (self.set_config_string)(key, val)
829 }
830
831 pub unsafe fn set_config_double(&self, key: *const ::core::ffi::c_char, val: f64) {
832 (self.set_config_double)(key, val)
833 }
834
835 pub unsafe fn set_config_bool(&self, key: *const ::core::ffi::c_char, val: bool) {
836 (self.set_config_bool)(key, val)
837 }
838
839 pub unsafe fn set_departure_functions(
840 &self,
841 string_data: *const ::core::ffi::c_char,
842 errcode: *mut ::core::ffi::c_long,
843 message_buffer: *mut ::core::ffi::c_char,
844 buffer_length: ::core::ffi::c_long,
845 ) {
846 (self.set_departure_functions)(string_data, errcode, message_buffer, buffer_length)
847 }
848
849 pub unsafe fn set_reference_stateS(
850 &self,
851 Ref: *const ::core::ffi::c_char,
852 reference_state: *const ::core::ffi::c_char,
853 ) -> ::core::ffi::c_int {
854 (self.set_reference_stateS)(Ref, reference_state)
855 }
856
857 pub unsafe fn set_reference_stateD(
858 &self,
859 Ref: *const ::core::ffi::c_char,
860 T: f64,
861 rhomolar: f64,
862 hmolar0: f64,
863 smolar0: f64,
864 ) -> ::core::ffi::c_int {
865 (self.set_reference_stateD)(Ref, T, rhomolar, hmolar0, smolar0)
866 }
867
868 pub unsafe fn propssi_(
869 &self,
870 Output: *const ::core::ffi::c_char,
871 Name1: *const ::core::ffi::c_char,
872 Prop1: *const f64,
873 Name2: *const ::core::ffi::c_char,
874 Prop2: *const f64,
875 FluidName: *const ::core::ffi::c_char,
876 output: *mut f64,
877 ) {
878 (self.propssi_)(Output, Name1, Prop1, Name2, Prop2, FluidName, output)
879 }
880
881 pub unsafe fn F2K(&self, T_F: f64) -> f64 {
882 (self.F2K)(T_F)
883 }
884
885 pub unsafe fn K2F(&self, T_K: f64) -> f64 {
886 (self.K2F)(T_K)
887 }
888
889 pub unsafe fn get_param_index(&self, param: *const ::core::ffi::c_char) -> ::core::ffi::c_long {
890 (self.get_param_index)(param)
891 }
892
893 pub unsafe fn get_input_pair_index(
894 &self,
895 pair: *const ::core::ffi::c_char,
896 ) -> ::core::ffi::c_long {
897 (self.get_input_pair_index)(pair)
898 }
899
900 pub unsafe fn redirect_stdout(&self, file: *const ::core::ffi::c_char) -> ::core::ffi::c_long {
901 (self.redirect_stdout)(file)
902 }
903
904 pub unsafe fn get_debug_level(&self) -> ::core::ffi::c_int {
905 (self.get_debug_level)()
906 }
907
908 pub unsafe fn set_debug_level(&self, level: ::core::ffi::c_int) {
909 (self.set_debug_level)(level)
910 }
911
912 pub unsafe fn saturation_ancillary(
913 &self,
914 fluid_name: *const ::core::ffi::c_char,
915 output: *const ::core::ffi::c_char,
916 Q: ::core::ffi::c_int,
917 input: *const ::core::ffi::c_char,
918 value: f64,
919 ) -> f64 {
920 (self.saturation_ancillary)(fluid_name, output, Q, input, value)
921 }
922
923 pub unsafe fn HAPropsSI(
924 &self,
925 Output: *const ::core::ffi::c_char,
926 Name1: *const ::core::ffi::c_char,
927 Prop1: f64,
928 Name2: *const ::core::ffi::c_char,
929 Prop2: f64,
930 Name3: *const ::core::ffi::c_char,
931 Prop3: f64,
932 ) -> f64 {
933 (self.HAPropsSI)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3)
934 }
935
936 pub unsafe fn cair_sat(&self, T: f64) -> f64 {
937 (self.cair_sat)(T)
938 }
939
940 pub unsafe fn hapropssi_(
941 &self,
942 Output: *const ::core::ffi::c_char,
943 Name1: *const ::core::ffi::c_char,
944 Prop1: *const f64,
945 Name2: *const ::core::ffi::c_char,
946 Prop2: *const f64,
947 Name3: *const ::core::ffi::c_char,
948 Prop3: *const f64,
949 output: *mut f64,
950 ) {
951 (self.hapropssi_)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3, output)
952 }
953
954 pub unsafe fn HAProps(
955 &self,
956 Output: *const ::core::ffi::c_char,
957 Name1: *const ::core::ffi::c_char,
958 Prop1: f64,
959 Name2: *const ::core::ffi::c_char,
960 Prop2: f64,
961 Name3: *const ::core::ffi::c_char,
962 Prop3: f64,
963 ) -> f64 {
964 (self.HAProps)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3)
965 }
966
967 pub unsafe fn haprops_(
968 &self,
969 Output: *const ::core::ffi::c_char,
970 Name1: *const ::core::ffi::c_char,
971 Prop1: *const f64,
972 Name2: *const ::core::ffi::c_char,
973 Prop2: *const f64,
974 Name3: *const ::core::ffi::c_char,
975 Prop3: *const f64,
976 output: *mut f64,
977 ) {
978 (self.haprops_)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3, output)
979 }
980
981 pub unsafe fn AbstractState_factory(
982 &self,
983 backend: *const ::core::ffi::c_char,
984 fluids: *const ::core::ffi::c_char,
985 errcode: *mut ::core::ffi::c_long,
986 message_buffer: *mut ::core::ffi::c_char,
987 buffer_length: ::core::ffi::c_long,
988 ) -> ::core::ffi::c_long {
989 (self.AbstractState_factory)(backend, fluids, errcode, message_buffer, buffer_length)
990 }
991
992 pub unsafe fn AbstractState_fluid_names(
993 &self,
994 handle: ::core::ffi::c_long,
995 fluids: *mut ::core::ffi::c_char,
996 errcode: *mut ::core::ffi::c_long,
997 message_buffer: *mut ::core::ffi::c_char,
998 buffer_length: ::core::ffi::c_long,
999 ) {
1000 (self.AbstractState_fluid_names)(handle, fluids, errcode, message_buffer, buffer_length)
1001 }
1002
1003 pub unsafe fn AbstractState_free(
1004 &self,
1005 handle: ::core::ffi::c_long,
1006 errcode: *mut ::core::ffi::c_long,
1007 message_buffer: *mut ::core::ffi::c_char,
1008 buffer_length: ::core::ffi::c_long,
1009 ) {
1010 (self.AbstractState_free)(handle, errcode, message_buffer, buffer_length)
1011 }
1012
1013 pub unsafe fn AbstractState_set_fractions(
1014 &self,
1015 handle: ::core::ffi::c_long,
1016 fractions: *const f64,
1017 N: ::core::ffi::c_long,
1018 errcode: *mut ::core::ffi::c_long,
1019 message_buffer: *mut ::core::ffi::c_char,
1020 buffer_length: ::core::ffi::c_long,
1021 ) {
1022 (self.AbstractState_set_fractions)(
1023 handle,
1024 fractions,
1025 N,
1026 errcode,
1027 message_buffer,
1028 buffer_length,
1029 )
1030 }
1031
1032 pub unsafe fn AbstractState_get_mole_fractions(
1033 &self,
1034 handle: ::core::ffi::c_long,
1035 fractions: *mut f64,
1036 maxN: ::core::ffi::c_long,
1037 N: *mut ::core::ffi::c_long,
1038 errcode: *mut ::core::ffi::c_long,
1039 message_buffer: *mut ::core::ffi::c_char,
1040 buffer_length: ::core::ffi::c_long,
1041 ) {
1042 (self.AbstractState_get_mole_fractions)(
1043 handle,
1044 fractions,
1045 maxN,
1046 N,
1047 errcode,
1048 message_buffer,
1049 buffer_length,
1050 )
1051 }
1052
1053 pub unsafe fn AbstractState_get_mole_fractions_satState(
1054 &self,
1055 handle: ::core::ffi::c_long,
1056 saturated_state: *const ::core::ffi::c_char,
1057 fractions: *mut f64,
1058 maxN: ::core::ffi::c_long,
1059 N: *mut ::core::ffi::c_long,
1060 errcode: *mut ::core::ffi::c_long,
1061 message_buffer: *mut ::core::ffi::c_char,
1062 buffer_length: ::core::ffi::c_long,
1063 ) {
1064 (self.AbstractState_get_mole_fractions_satState)(
1065 handle,
1066 saturated_state,
1067 fractions,
1068 maxN,
1069 N,
1070 errcode,
1071 message_buffer,
1072 buffer_length,
1073 )
1074 }
1075
1076 pub unsafe fn AbstractState_get_fugacity(
1077 &self,
1078 handle: ::core::ffi::c_long,
1079 i: ::core::ffi::c_long,
1080 errcode: *mut ::core::ffi::c_long,
1081 message_buffer: *mut ::core::ffi::c_char,
1082 buffer_length: ::core::ffi::c_long,
1083 ) -> f64 {
1084 (self.AbstractState_get_fugacity)(handle, i, errcode, message_buffer, buffer_length)
1085 }
1086
1087 pub unsafe fn AbstractState_get_fugacity_coefficient(
1088 &self,
1089 handle: ::core::ffi::c_long,
1090 i: ::core::ffi::c_long,
1091 errcode: *mut ::core::ffi::c_long,
1092 message_buffer: *mut ::core::ffi::c_char,
1093 buffer_length: ::core::ffi::c_long,
1094 ) -> f64 {
1095 (self.AbstractState_get_fugacity_coefficient)(
1096 handle,
1097 i,
1098 errcode,
1099 message_buffer,
1100 buffer_length,
1101 )
1102 }
1103
1104 pub unsafe fn AbstractState_update(
1105 &self,
1106 handle: ::core::ffi::c_long,
1107 input_pair: ::core::ffi::c_long,
1108 value1: f64,
1109 value2: f64,
1110 errcode: *mut ::core::ffi::c_long,
1111 message_buffer: *mut ::core::ffi::c_char,
1112 buffer_length: ::core::ffi::c_long,
1113 ) {
1114 (self.AbstractState_update)(
1115 handle,
1116 input_pair,
1117 value1,
1118 value2,
1119 errcode,
1120 message_buffer,
1121 buffer_length,
1122 )
1123 }
1124
1125 pub unsafe fn AbstractState_specify_phase(
1126 &self,
1127 handle: ::core::ffi::c_long,
1128 phase: *const ::core::ffi::c_char,
1129 errcode: *mut ::core::ffi::c_long,
1130 message_buffer: *mut ::core::ffi::c_char,
1131 buffer_length: ::core::ffi::c_long,
1132 ) {
1133 (self.AbstractState_specify_phase)(handle, phase, errcode, message_buffer, buffer_length)
1134 }
1135
1136 pub unsafe fn AbstractState_unspecify_phase(
1137 &self,
1138 handle: ::core::ffi::c_long,
1139 errcode: *mut ::core::ffi::c_long,
1140 message_buffer: *mut ::core::ffi::c_char,
1141 buffer_length: ::core::ffi::c_long,
1142 ) {
1143 (self.AbstractState_unspecify_phase)(handle, errcode, message_buffer, buffer_length)
1144 }
1145
1146 pub unsafe fn AbstractState_keyed_output(
1147 &self,
1148 handle: ::core::ffi::c_long,
1149 param: ::core::ffi::c_long,
1150 errcode: *mut ::core::ffi::c_long,
1151 message_buffer: *mut ::core::ffi::c_char,
1152 buffer_length: ::core::ffi::c_long,
1153 ) -> f64 {
1154 (self.AbstractState_keyed_output)(handle, param, errcode, message_buffer, buffer_length)
1155 }
1156
1157 pub unsafe fn AbstractState_first_saturation_deriv(
1158 &self,
1159 handle: ::core::ffi::c_long,
1160 Of: ::core::ffi::c_long,
1161 Wrt: ::core::ffi::c_long,
1162 errcode: *mut ::core::ffi::c_long,
1163 message_buffer: *mut ::core::ffi::c_char,
1164 buffer_length: ::core::ffi::c_long,
1165 ) -> f64 {
1166 (self.AbstractState_first_saturation_deriv)(
1167 handle,
1168 Of,
1169 Wrt,
1170 errcode,
1171 message_buffer,
1172 buffer_length,
1173 )
1174 }
1175
1176 pub unsafe fn AbstractState_first_partial_deriv(
1177 &self,
1178 handle: ::core::ffi::c_long,
1179 Of: ::core::ffi::c_long,
1180 Wrt: ::core::ffi::c_long,
1181 Constant: ::core::ffi::c_long,
1182 errcode: *mut ::core::ffi::c_long,
1183 message_buffer: *mut ::core::ffi::c_char,
1184 buffer_length: ::core::ffi::c_long,
1185 ) -> f64 {
1186 (self.AbstractState_first_partial_deriv)(
1187 handle,
1188 Of,
1189 Wrt,
1190 Constant,
1191 errcode,
1192 message_buffer,
1193 buffer_length,
1194 )
1195 }
1196
1197 pub unsafe fn AbstractState_second_two_phase_deriv(
1198 &self,
1199 handle: ::core::ffi::c_long,
1200 Of1: ::core::ffi::c_long,
1201 Wrt1: ::core::ffi::c_long,
1202 Constant1: ::core::ffi::c_long,
1203 Wrt2: ::core::ffi::c_long,
1204 Constant2: ::core::ffi::c_long,
1205 errcode: *mut ::core::ffi::c_long,
1206 message_buffer: *mut ::core::ffi::c_char,
1207 buffer_length: ::core::ffi::c_long,
1208 ) -> f64 {
1209 (self.AbstractState_second_two_phase_deriv)(
1210 handle,
1211 Of1,
1212 Wrt1,
1213 Constant1,
1214 Wrt2,
1215 Constant2,
1216 errcode,
1217 message_buffer,
1218 buffer_length,
1219 )
1220 }
1221
1222 pub unsafe fn AbstractState_second_partial_deriv(
1223 &self,
1224 handle: ::core::ffi::c_long,
1225 Of1: ::core::ffi::c_long,
1226 Wrt1: ::core::ffi::c_long,
1227 Constant1: ::core::ffi::c_long,
1228 Wrt2: ::core::ffi::c_long,
1229 Constant2: ::core::ffi::c_long,
1230 errcode: *mut ::core::ffi::c_long,
1231 message_buffer: *mut ::core::ffi::c_char,
1232 buffer_length: ::core::ffi::c_long,
1233 ) -> f64 {
1234 (self.AbstractState_second_partial_deriv)(
1235 handle,
1236 Of1,
1237 Wrt1,
1238 Constant1,
1239 Wrt2,
1240 Constant2,
1241 errcode,
1242 message_buffer,
1243 buffer_length,
1244 )
1245 }
1246
1247 pub unsafe fn AbstractState_first_two_phase_deriv_splined(
1248 &self,
1249 handle: ::core::ffi::c_long,
1250 Of: ::core::ffi::c_long,
1251 Wrt: ::core::ffi::c_long,
1252 Constant: ::core::ffi::c_long,
1253 x_end: f64,
1254 errcode: *mut ::core::ffi::c_long,
1255 message_buffer: *mut ::core::ffi::c_char,
1256 buffer_length: ::core::ffi::c_long,
1257 ) -> f64 {
1258 (self.AbstractState_first_two_phase_deriv_splined)(
1259 handle,
1260 Of,
1261 Wrt,
1262 Constant,
1263 x_end,
1264 errcode,
1265 message_buffer,
1266 buffer_length,
1267 )
1268 }
1269
1270 pub unsafe fn AbstractState_first_two_phase_deriv(
1271 &self,
1272 handle: ::core::ffi::c_long,
1273 Of: ::core::ffi::c_long,
1274 Wrt: ::core::ffi::c_long,
1275 Constant: ::core::ffi::c_long,
1276 errcode: *mut ::core::ffi::c_long,
1277 message_buffer: *mut ::core::ffi::c_char,
1278 buffer_length: ::core::ffi::c_long,
1279 ) -> f64 {
1280 (self.AbstractState_first_two_phase_deriv)(
1281 handle,
1282 Of,
1283 Wrt,
1284 Constant,
1285 errcode,
1286 message_buffer,
1287 buffer_length,
1288 )
1289 }
1290
1291 pub unsafe fn AbstractState_update_and_common_out(
1292 &self,
1293 handle: ::core::ffi::c_long,
1294 input_pair: ::core::ffi::c_long,
1295 value1: *const f64,
1296 value2: *const f64,
1297 length: ::core::ffi::c_long,
1298 T: *mut f64,
1299 p: *mut f64,
1300 rhomolar: *mut f64,
1301 hmolar: *mut f64,
1302 smolar: *mut f64,
1303 errcode: *mut ::core::ffi::c_long,
1304 message_buffer: *mut ::core::ffi::c_char,
1305 buffer_length: ::core::ffi::c_long,
1306 ) {
1307 (self.AbstractState_update_and_common_out)(
1308 handle,
1309 input_pair,
1310 value1,
1311 value2,
1312 length,
1313 T,
1314 p,
1315 rhomolar,
1316 hmolar,
1317 smolar,
1318 errcode,
1319 message_buffer,
1320 buffer_length,
1321 )
1322 }
1323
1324 pub unsafe fn AbstractState_update_and_1_out(
1325 &self,
1326 handle: ::core::ffi::c_long,
1327 input_pair: ::core::ffi::c_long,
1328 value1: *const f64,
1329 value2: *const f64,
1330 length: ::core::ffi::c_long,
1331 output: ::core::ffi::c_long,
1332 out: *mut f64,
1333 errcode: *mut ::core::ffi::c_long,
1334 message_buffer: *mut ::core::ffi::c_char,
1335 buffer_length: ::core::ffi::c_long,
1336 ) {
1337 (self.AbstractState_update_and_1_out)(
1338 handle,
1339 input_pair,
1340 value1,
1341 value2,
1342 length,
1343 output,
1344 out,
1345 errcode,
1346 message_buffer,
1347 buffer_length,
1348 )
1349 }
1350
1351 pub unsafe fn AbstractState_update_and_5_out(
1352 &self,
1353 handle: ::core::ffi::c_long,
1354 input_pair: ::core::ffi::c_long,
1355 value1: *const f64,
1356 value2: *const f64,
1357 length: ::core::ffi::c_long,
1358 outputs: *mut ::core::ffi::c_long,
1359 out1: *mut f64,
1360 out2: *mut f64,
1361 out3: *mut f64,
1362 out4: *mut f64,
1363 out5: *mut f64,
1364 errcode: *mut ::core::ffi::c_long,
1365 message_buffer: *mut ::core::ffi::c_char,
1366 buffer_length: ::core::ffi::c_long,
1367 ) {
1368 (self.AbstractState_update_and_5_out)(
1369 handle,
1370 input_pair,
1371 value1,
1372 value2,
1373 length,
1374 outputs,
1375 out1,
1376 out2,
1377 out3,
1378 out4,
1379 out5,
1380 errcode,
1381 message_buffer,
1382 buffer_length,
1383 )
1384 }
1385
1386 pub unsafe fn AbstractState_set_binary_interaction_double(
1387 &self,
1388 handle: ::core::ffi::c_long,
1389 i: ::core::ffi::c_long,
1390 j: ::core::ffi::c_long,
1391 parameter: *const ::core::ffi::c_char,
1392 value: f64,
1393 errcode: *mut ::core::ffi::c_long,
1394 message_buffer: *mut ::core::ffi::c_char,
1395 buffer_length: ::core::ffi::c_long,
1396 ) {
1397 (self.AbstractState_set_binary_interaction_double)(
1398 handle,
1399 i,
1400 j,
1401 parameter,
1402 value,
1403 errcode,
1404 message_buffer,
1405 buffer_length,
1406 )
1407 }
1408
1409 pub unsafe fn AbstractState_set_cubic_alpha_C(
1410 &self,
1411 handle: ::core::ffi::c_long,
1412 i: ::core::ffi::c_long,
1413 parameter: *const ::core::ffi::c_char,
1414 c1: f64,
1415 c2: f64,
1416 c3: f64,
1417 errcode: *mut ::core::ffi::c_long,
1418 message_buffer: *mut ::core::ffi::c_char,
1419 buffer_length: ::core::ffi::c_long,
1420 ) {
1421 (self.AbstractState_set_cubic_alpha_C)(
1422 handle,
1423 i,
1424 parameter,
1425 c1,
1426 c2,
1427 c3,
1428 errcode,
1429 message_buffer,
1430 buffer_length,
1431 )
1432 }
1433
1434 pub unsafe fn AbstractState_set_fluid_parameter_double(
1435 &self,
1436 handle: ::core::ffi::c_long,
1437 i: ::core::ffi::c_long,
1438 parameter: *const ::core::ffi::c_char,
1439 value: f64,
1440 errcode: *mut ::core::ffi::c_long,
1441 message_buffer: *mut ::core::ffi::c_char,
1442 buffer_length: ::core::ffi::c_long,
1443 ) {
1444 (self.AbstractState_set_fluid_parameter_double)(
1445 handle,
1446 i,
1447 parameter,
1448 value,
1449 errcode,
1450 message_buffer,
1451 buffer_length,
1452 )
1453 }
1454
1455 pub unsafe fn AbstractState_build_phase_envelope(
1456 &self,
1457 handle: ::core::ffi::c_long,
1458 level: *const ::core::ffi::c_char,
1459 errcode: *mut ::core::ffi::c_long,
1460 message_buffer: *mut ::core::ffi::c_char,
1461 buffer_length: ::core::ffi::c_long,
1462 ) {
1463 (self.AbstractState_build_phase_envelope)(
1464 handle,
1465 level,
1466 errcode,
1467 message_buffer,
1468 buffer_length,
1469 )
1470 }
1471
1472 pub unsafe fn AbstractState_get_phase_envelope_data(
1473 &self,
1474 handle: ::core::ffi::c_long,
1475 length: ::core::ffi::c_long,
1476 T: *mut f64,
1477 p: *mut f64,
1478 rhomolar_vap: *mut f64,
1479 rhomolar_liq: *mut f64,
1480 x: *mut f64,
1481 y: *mut f64,
1482 errcode: *mut ::core::ffi::c_long,
1483 message_buffer: *mut ::core::ffi::c_char,
1484 buffer_length: ::core::ffi::c_long,
1485 ) {
1486 (self.AbstractState_get_phase_envelope_data)(
1487 handle,
1488 length,
1489 T,
1490 p,
1491 rhomolar_vap,
1492 rhomolar_liq,
1493 x,
1494 y,
1495 errcode,
1496 message_buffer,
1497 buffer_length,
1498 )
1499 }
1500
1501 pub unsafe fn AbstractState_get_phase_envelope_data_checkedMemory(
1502 &self,
1503 handle: ::core::ffi::c_long,
1504 length: ::core::ffi::c_long,
1505 maxComponents: ::core::ffi::c_long,
1506 T: *mut f64,
1507 p: *mut f64,
1508 rhomolar_vap: *mut f64,
1509 rhomolar_liq: *mut f64,
1510 x: *mut f64,
1511 y: *mut f64,
1512 actual_length: *mut ::core::ffi::c_long,
1513 actual_components: *mut ::core::ffi::c_long,
1514 errcode: *mut ::core::ffi::c_long,
1515 message_buffer: *mut ::core::ffi::c_char,
1516 buffer_length: ::core::ffi::c_long,
1517 ) {
1518 (self.AbstractState_get_phase_envelope_data_checkedMemory)(
1519 handle,
1520 length,
1521 maxComponents,
1522 T,
1523 p,
1524 rhomolar_vap,
1525 rhomolar_liq,
1526 x,
1527 y,
1528 actual_length,
1529 actual_components,
1530 errcode,
1531 message_buffer,
1532 buffer_length,
1533 )
1534 }
1535
1536 pub unsafe fn AbstractState_build_spinodal(
1537 &self,
1538 handle: ::core::ffi::c_long,
1539 errcode: *mut ::core::ffi::c_long,
1540 message_buffer: *mut ::core::ffi::c_char,
1541 buffer_length: ::core::ffi::c_long,
1542 ) {
1543 (self.AbstractState_build_spinodal)(handle, errcode, message_buffer, buffer_length)
1544 }
1545
1546 pub unsafe fn AbstractState_get_spinodal_data(
1547 &self,
1548 handle: ::core::ffi::c_long,
1549 length: ::core::ffi::c_long,
1550 tau: *mut f64,
1551 delta: *mut f64,
1552 M1: *mut f64,
1553 errcode: *mut ::core::ffi::c_long,
1554 message_buffer: *mut ::core::ffi::c_char,
1555 buffer_length: ::core::ffi::c_long,
1556 ) {
1557 (self.AbstractState_get_spinodal_data)(
1558 handle,
1559 length,
1560 tau,
1561 delta,
1562 M1,
1563 errcode,
1564 message_buffer,
1565 buffer_length,
1566 )
1567 }
1568
1569 pub unsafe fn AbstractState_all_critical_points(
1570 &self,
1571 handle: ::core::ffi::c_long,
1572 length: ::core::ffi::c_long,
1573 T: *mut f64,
1574 p: *mut f64,
1575 rhomolar: *mut f64,
1576 stable: *mut ::core::ffi::c_long,
1577 errcode: *mut ::core::ffi::c_long,
1578 message_buffer: *mut ::core::ffi::c_char,
1579 buffer_length: ::core::ffi::c_long,
1580 ) {
1581 (self.AbstractState_all_critical_points)(
1582 handle,
1583 length,
1584 T,
1585 p,
1586 rhomolar,
1587 stable,
1588 errcode,
1589 message_buffer,
1590 buffer_length,
1591 )
1592 }
1593
1594 pub unsafe fn AbstractState_keyed_output_satState(
1595 &self,
1596 handle: ::core::ffi::c_long,
1597 saturated_state: *const ::core::ffi::c_char,
1598 param: ::core::ffi::c_long,
1599 errcode: *mut ::core::ffi::c_long,
1600 message_buffer: *mut ::core::ffi::c_char,
1601 buffer_length: ::core::ffi::c_long,
1602 ) -> f64 {
1603 (self.AbstractState_keyed_output_satState)(
1604 handle,
1605 saturated_state,
1606 param,
1607 errcode,
1608 message_buffer,
1609 buffer_length,
1610 )
1611 }
1612
1613 pub unsafe fn AbstractState_backend_name(
1614 &self,
1615 handle: ::core::ffi::c_long,
1616 backend: *mut ::core::ffi::c_char,
1617 errcode: *mut ::core::ffi::c_long,
1618 message_buffer: *mut ::core::ffi::c_char,
1619 buffer_length: ::core::ffi::c_long,
1620 ) {
1621 (self.AbstractState_backend_name)(handle, backend, errcode, message_buffer, buffer_length)
1622 }
1623
1624 pub unsafe fn AbstractState_fluid_param_string(
1625 &self,
1626 handle: ::core::ffi::c_long,
1627 param: *const ::core::ffi::c_char,
1628 return_buffer: *mut ::core::ffi::c_char,
1629 return_buffer_length: ::core::ffi::c_long,
1630 errcode: *mut ::core::ffi::c_long,
1631 message_buffer: *mut ::core::ffi::c_char,
1632 buffer_length: ::core::ffi::c_long,
1633 ) {
1634 (self.AbstractState_fluid_param_string)(
1635 handle,
1636 param,
1637 return_buffer,
1638 return_buffer_length,
1639 errcode,
1640 message_buffer,
1641 buffer_length,
1642 )
1643 }
1644
1645 pub unsafe fn AbstractState_phase(
1646 &self,
1647 handle: ::core::ffi::c_long,
1648 errcode: *mut ::core::ffi::c_long,
1649 message_buffer: *mut ::core::ffi::c_char,
1650 buffer_length: ::core::ffi::c_long,
1651 ) -> ::core::ffi::c_int {
1652 (self.AbstractState_phase)(handle, errcode, message_buffer, buffer_length)
1653 }
1654
1655 pub unsafe fn AbstractState_saturated_liquid_keyed_output(
1656 &self,
1657 handle: ::core::ffi::c_long,
1658 param: ::core::ffi::c_long,
1659 errcode: *mut ::core::ffi::c_long,
1660 message_buffer: *mut ::core::ffi::c_char,
1661 buffer_length: ::core::ffi::c_long,
1662 ) -> f64 {
1663 (self.AbstractState_saturated_liquid_keyed_output)(
1664 handle,
1665 param,
1666 errcode,
1667 message_buffer,
1668 buffer_length,
1669 )
1670 }
1671
1672 pub unsafe fn AbstractState_saturated_vapor_keyed_output(
1673 &self,
1674 handle: ::core::ffi::c_long,
1675 param: ::core::ffi::c_long,
1676 errcode: *mut ::core::ffi::c_long,
1677 message_buffer: *mut ::core::ffi::c_char,
1678 buffer_length: ::core::ffi::c_long,
1679 ) -> f64 {
1680 (self.AbstractState_saturated_vapor_keyed_output)(
1681 handle,
1682 param,
1683 errcode,
1684 message_buffer,
1685 buffer_length,
1686 )
1687 }
1688
1689 pub unsafe fn add_fluids_as_JSON(
1690 &self,
1691 backend: *const ::core::ffi::c_char,
1692 fluidstring: *const ::core::ffi::c_char,
1693 errcode: *mut ::core::ffi::c_long,
1694 message_buffer: *mut ::core::ffi::c_char,
1695 buffer_length: ::core::ffi::c_long,
1696 ) {
1697 (self.add_fluids_as_JSON)(backend, fluidstring, errcode, message_buffer, buffer_length)
1698 }
1699
1700 pub unsafe fn C_is_valid_fluid_string(
1701 &self,
1702 fluidName: *const ::core::ffi::c_char,
1703 ) -> ::core::ffi::c_int {
1704 (self.C_is_valid_fluid_string)(fluidName)
1705 }
1706
1707 pub unsafe fn C_extract_backend(
1708 &self,
1709 fluid_string: *const ::core::ffi::c_char,
1710 backend: *mut ::core::ffi::c_char,
1711 backend_length: ::core::ffi::c_long,
1712 fluid: *mut ::core::ffi::c_char,
1713 fluid_length: ::core::ffi::c_long,
1714 ) -> ::core::ffi::c_int {
1715 (self.C_extract_backend)(fluid_string, backend, backend_length, fluid, fluid_length)
1716 }
1717}