MAiNGO
functionWrapper.h
Go to the documentation of this file.
1 /**********************************************************************************
2  * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License 2.0 which is available at
6  * http://www.eclipse.org/legal/epl-2.0.
7  *
8  * SPDX-License-Identifier: EPL-2.0
9  *
10  **********************************************************************************/
11 
12 #pragma once
13 
14 #include "ffunc.hpp"
15 
16 inline mc::FFVar
17 xlogx(const mc::FFVar& Var)
18 {
19  return mc::xlog(Var);
20 }
21 
22 inline mc::FFVar
23 xexpy(const mc::FFVar& y, const mc::FFVar& x)
24 {
25  return mc::expx_times_y(x, y);
26 }
27 
28 inline mc::FFVar
29 norm2(const mc::FFVar& Var1, const mc::FFVar& Var2)
30 {
31  return mc::euclidean_norm_2d(Var1, Var2);
32 }
33 
34 inline mc::FFVar
35 xabsx(const mc::FFVar& Var)
36 {
37  return mc::fabsx_times_x(Var);
38 }
39 
40 inline mc::FFVar
41 squash(const mc::FFVar& Var, const double lb, const double ub)
42 {
43  return mc::squash_node(Var, lb, ub);
44 }
45 
46 inline mc::FFVar
47 ext_antoine_psat(const mc::FFVar& T, const double p1, const double p2, const double p3, const double p4,
48  const double p5, const double p6, const double p7)
49 {
50  return mc::vapor_pressure(T, 1, p1, p2, p3, p4, p5, p6, p7);
51 }
52 
53 inline mc::FFVar
54 ext_antoine_psat(const mc::FFVar& T, const std::vector<double> p)
55 {
56  assert(p.size() == 7);
57  return mc::vapor_pressure(T, 1, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
58 }
59 
60 inline mc::FFVar
61 antoine_psat(const mc::FFVar& T, const double p1, const double p2, const double p3)
62 {
63  return mc::vapor_pressure(T, 2, p1, p2, p3);
64 }
65 
66 inline mc::FFVar
67 antoine_psat(const mc::FFVar& T, const std::vector<double> p)
68 {
69  assert(p.size() == 3);
70  return mc::vapor_pressure(T, 2, p[0], p[1], p[2]);
71 }
72 
73 inline mc::FFVar
74 wagner_psat(const mc::FFVar& Var, const double p1, const double p2, const double p3, const double p4, const double Tc, const double p6)
75 {
76  return mc::vapor_pressure(Var, 3, p1, p2, p3, p4, Tc, p6);
77 }
78 
79 inline mc::FFVar
80 wagner_psat(const mc::FFVar& T, const std::vector<double> p)
81 {
82  assert(p.size() == 6);
83  return mc::vapor_pressure(T, 3, p[0], p[1], p[2], p[3], p[4], p[5]);
84 }
85 
86 inline mc::FFVar
87 ik_cape_psat(const mc::FFVar& T, const double p1, const double p2, const double p3, const double p4,
88  const double p5, const double p6, const double p7, const double p8, const double p9, const double p10)
89 {
90 
91  return mc::vapor_pressure(T, 4, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
92 }
93 
94 inline mc::FFVar
95 ik_cape_psat(const mc::FFVar& T, const std::vector<double> p)
96 {
97  assert(p.size() == 10);
98  return mc::vapor_pressure(T, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9]);
99 }
100 
101 inline mc::FFVar
102 antoine_tsat(const mc::FFVar& T, const double p1, const double p2, const double p3)
103 {
104  return mc::saturation_temperature(T, 2, p1, p2, p3);
105 }
106 
107 inline mc::FFVar
108 antoine_tsat(const mc::FFVar& T, const std::vector<double> p)
109 {
110  assert(p.size() == 3);
111  return mc::saturation_temperature(T, 2, p[0], p[1], p[2]);
112 }
113 
114 inline mc::FFVar
115 aspen_hig(const mc::FFVar& T, const double T0, const double p1, const double p2, const double p3, const double p4,
116  const double p5, const double p6)
117 {
118  return mc::ideal_gas_enthalpy(T, T0, 1, p1, p2, p3, p4, p5, p6);
119 }
120 
121 inline mc::FFVar
122 aspen_hig(const mc::FFVar& T, const double T0, const std::vector<double> p)
123 {
124  assert(p.size() == 6);
125  return mc::ideal_gas_enthalpy(T, T0, 1, p[0], p[1], p[2], p[3], p[4], p[5]);
126 }
127 
128 inline mc::FFVar
129 nasa9_hig(const mc::FFVar& T, const double T0, const double p1, const double p2, const double p3, const double p4,
130  const double p5, const double p6, const double p7)
131 {
132  return mc::ideal_gas_enthalpy(T, T0, 2, p1, p2, p3, p4, p5, p6, p7);
133 }
134 
135 inline mc::FFVar
136 nasa9_hig(const mc::FFVar& T, const double T0, const std::vector<double> p)
137 {
138  assert(p.size() == 7);
139  return mc::ideal_gas_enthalpy(T, T0, 2, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
140 }
141 
142 inline mc::FFVar
143 dippr107_hig(const mc::FFVar& T, const double T0, const double p1, const double p2, const double p3, const double p4,
144  const double p5)
145 {
146  return mc::ideal_gas_enthalpy(T, T0, 3, p1, p2, p3, p4, p5);
147 }
148 
149 inline mc::FFVar
150 dippr107_hig(const mc::FFVar& T, const double T0, const std::vector<double> p)
151 {
152  assert(p.size() == 5);
153  return mc::ideal_gas_enthalpy(T, T0, 3, p[0], p[1], p[2], p[3], p[4]);
154 }
155 
156 inline mc::FFVar
157 dippr127_hig(const mc::FFVar& T, const double T0, const double p1, const double p2, const double p3, const double p4,
158  const double p5, const double p6, const double p7)
159 {
160  return mc::ideal_gas_enthalpy(T, T0, 4, p1, p2, p3, p4, p5, p6, p7);
161 }
162 
163 inline mc::FFVar
164 dippr127_hig(const mc::FFVar& T, const double T0, const std::vector<double> p)
165 {
166  assert(p.size() == 7);
167  return mc::ideal_gas_enthalpy(T, T0, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
168 }
169 
170 inline mc::FFVar
171 watson_dhvap(const mc::FFVar& T, const double Tc, const double a, const double b, const double T1,
172  const double dHT1)
173 {
174  return mc::enthalpy_of_vaporization(T, 1, Tc, a, b, T1, dHT1);
175 }
176 
177 inline mc::FFVar
178 watson_dhvap(const mc::FFVar& T, const std::vector<double> p)
179 {
180  assert(p.size() == 5);
181  return mc::enthalpy_of_vaporization(T, 1, p[0], p[1], p[2], p[3], p[4]);
182 }
183 
184 inline mc::FFVar
185 dippr106_dhvap(const mc::FFVar& T, const double Tc, const double p1, const double p2, const double p3,
186  const double p4, const double p5)
187 {
188  return mc::enthalpy_of_vaporization(T, 2, Tc, p1, p2, p3, p4, p5);
189 }
190 
191 inline mc::FFVar
192 dippr106_dhvap(const mc::FFVar& T, const std::vector<double> p)
193 {
194  assert(p.size() == 6);
195  return mc::enthalpy_of_vaporization(T, 2, p[0], p[1], p[2], p[3], p[4], p[5]);
196 }
197 
198 
199 inline mc::FFVar
200 nrtl_tau(const mc::FFVar& T, const std::vector<double> p)
201 {
202  assert(p.size() == 4);
203  return mc::nrtl_tau(T, p[0], p[1], p[2], p[3]);
204 }
205 
206 inline mc::FFVar
207 nrtl_dtau(const mc::FFVar& T, const std::vector<double> p)
208 {
209  assert(p.size() == 3);
210  return mc::nrtl_dtau(T, p[0], p[1], p[2]);
211 }
212 
213 inline mc::FFVar
214 nrtl_g(const mc::FFVar& T, const double a, const double b, const double e, const double f, const double alpha)
215 {
216  return mc::nrtl_G(T, a, b, e, f, alpha);
217 }
218 
219 inline mc::FFVar
220 nrtl_g(const mc::FFVar& T, const std::vector<double> p)
221 {
222  assert(p.size() == 5);
223  return mc::nrtl_G(T, p[0], p[1], p[2], p[3], p[4]);
224 }
225 
226 inline mc::FFVar
227 nrtl_gtau(const mc::FFVar& T, const double a, const double b, const double e, const double f, const double alpha)
228 {
229  return mc::nrtl_Gtau(T, a, b, e, f, alpha);
230 }
231 
232 inline mc::FFVar
233 nrtl_gtau(const mc::FFVar& T, const std::vector<double> p)
234 {
235  assert(p.size() == 5);
236  return mc::nrtl_Gtau(T, p[0], p[1], p[2], p[3], p[4]);
237 }
238 
239 inline mc::FFVar
240 nrtl_gdtau(const mc::FFVar& Var, const double a, const double b, const double e, const double f, const double alpha)
241 {
242  return mc::nrtl_Gdtau(Var, a, b, e, f, alpha);
243 }
244 
245 inline mc::FFVar
246 nrtl_gdtau(const mc::FFVar& Var, const std::vector<double> p)
247 {
248  assert(p.size() == 5);
249  return mc::nrtl_Gdtau(Var, p[0], p[1], p[2], p[3], p[4]);
250 }
251 
252 inline mc::FFVar
253 nrtl_dgtau(const mc::FFVar& Var, const double a, const double b, const double e, const double f, const double alpha)
254 {
255  return mc::nrtl_dGtau(Var, a, b, e, f, alpha);
256 }
257 
258 inline mc::FFVar
259 nrtl_dgtau(const mc::FFVar& Var, const std::vector<double> p)
260 {
261  assert(p.size() == 5);
262  return mc::nrtl_dGtau(Var, p[0], p[1], p[2], p[3], p[4]);
263 }
264 
265 inline mc::FFVar
266 schroeder_ethanol_p(const mc::FFVar& Var)
267 {
268  return mc::p_sat_ethanol_schroeder(Var);
269 }
270 
271 inline mc::FFVar
272 schroeder_ethanol_rhovap(const mc::FFVar& Var)
273 {
274  return mc::rho_vap_sat_ethanol_schroeder(Var);
275 }
276 
277 inline mc::FFVar
278 schroeder_ethanol_rholiq(const mc::FFVar& Var)
279 {
280  return mc::rho_liq_sat_ethanol_schroeder(Var);
281 }
282 
283 inline mc::FFVar
284 cost_turton(const mc::FFVar& Var, const double p1, const double p2, const double p3)
285 {
286  return mc::cost_function(Var, 1, p1, p2, p3);
287 }
288 
289 inline mc::FFVar
290 cost_turton(const mc::FFVar& Var, const std::vector<double> p)
291 {
292  assert(p.size() == 3);
293  return mc::cost_function(Var, 1, p[0], p[1], p[2]);
294 }
295 
296 inline mc::FFVar
297 covar_matern_1(const mc::FFVar& Var)
298 {
299  return mc::covariance_function(Var, 1);
300 }
301 
302 inline mc::FFVar
303 covar_matern_3(const mc::FFVar& Var)
304 {
305  return mc::covariance_function(Var, 2);
306 }
307 
308 inline mc::FFVar
309 covar_matern_5(const mc::FFVar& Var)
310 {
311  return mc::covariance_function(Var, 3);
312 }
313 
314 inline mc::FFVar
315 covar_sqrexp(const mc::FFVar& Var)
316 {
317  return mc::covariance_function(Var, 4);
318 }
319 
320 inline mc::FFVar
321 af_lcb(const mc::FFVar& Var1, const mc::FFVar& Var2, const double kappa)
322 {
323  return mc::acquisition_function(Var1, Var2, 1, kappa);
324 }
325 
326 inline mc::FFVar
327 af_ei(const mc::FFVar& Var1, const mc::FFVar& Var2, const double fmin)
328 {
329  return mc::acquisition_function(Var1, Var2, 2, fmin);
330 }
331 
332 inline mc::FFVar
333 af_pi(const mc::FFVar& Var1, const mc::FFVar& Var2, const double fmin)
334 {
335  return mc::acquisition_function(Var1, Var2, 3, fmin);
336 }
337 
338 inline mc::FFVar
339 gpdf(const mc::FFVar& Var)
340 {
341  return mc::gaussian_probability_density_function(Var);
342 }
mc::FFVar norm2(const mc::FFVar &Var1, const mc::FFVar &Var2)
Definition: functionWrapper.h:29
mc::FFVar xexpy(const mc::FFVar &y, const mc::FFVar &x)
Definition: functionWrapper.h:23
mc::FFVar covar_matern_1(const mc::FFVar &Var)
Definition: functionWrapper.h:297
mc::FFVar nrtl_gdtau(const mc::FFVar &Var, const double a, const double b, const double e, const double f, const double alpha)
Definition: functionWrapper.h:240
mc::FFVar schroeder_ethanol_rholiq(const mc::FFVar &Var)
Definition: functionWrapper.h:278
mc::FFVar covar_sqrexp(const mc::FFVar &Var)
Definition: functionWrapper.h:315
mc::FFVar Var
Definition: aleModel.h:22
mc::FFVar ext_antoine_psat(const mc::FFVar &T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)
Definition: functionWrapper.h:47
mc::FFVar af_pi(const mc::FFVar &Var1, const mc::FFVar &Var2, const double fmin)
Definition: functionWrapper.h:333
mc::FFVar schroeder_ethanol_p(const mc::FFVar &Var)
Definition: functionWrapper.h:266
mc::FFVar dippr107_hig(const mc::FFVar &T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5)
Definition: functionWrapper.h:143
mc::FFVar nrtl_gtau(const mc::FFVar &T, const double a, const double b, const double e, const double f, const double alpha)
Definition: functionWrapper.h:227
mc::FFVar ik_cape_psat(const mc::FFVar &T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7, const double p8, const double p9, const double p10)
Definition: functionWrapper.h:87
mc::FFVar nrtl_dgtau(const mc::FFVar &Var, const double a, const double b, const double e, const double f, const double alpha)
Definition: functionWrapper.h:253
mc::FFVar covar_matern_3(const mc::FFVar &Var)
Definition: functionWrapper.h:303
mc::FFVar xlogx(const mc::FFVar &Var)
Definition: functionWrapper.h:17
mc::FFVar cost_turton(const mc::FFVar &Var, const double p1, const double p2, const double p3)
Definition: functionWrapper.h:284
mc::FFVar dippr127_hig(const mc::FFVar &T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)
Definition: functionWrapper.h:157
mc::FFVar nrtl_g(const mc::FFVar &T, const double a, const double b, const double e, const double f, const double alpha)
Definition: functionWrapper.h:214
mc::FFVar nrtl_tau(const mc::FFVar &T, const std::vector< double > p)
Definition: functionWrapper.h:200
mc::FFVar af_lcb(const mc::FFVar &Var1, const mc::FFVar &Var2, const double kappa)
Definition: functionWrapper.h:321
mc::FFVar nrtl_dtau(const mc::FFVar &T, const std::vector< double > p)
Definition: functionWrapper.h:207
mc::FFVar covar_matern_5(const mc::FFVar &Var)
Definition: functionWrapper.h:309
mc::FFVar schroeder_ethanol_rhovap(const mc::FFVar &Var)
Definition: functionWrapper.h:272
mc::FFVar xabsx(const mc::FFVar &Var)
Definition: functionWrapper.h:35
mc::FFVar nasa9_hig(const mc::FFVar &T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)
Definition: functionWrapper.h:129
mc::FFVar dippr106_dhvap(const mc::FFVar &T, const double Tc, const double p1, const double p2, const double p3, const double p4, const double p5)
Definition: functionWrapper.h:185
mc::FFVar aspen_hig(const mc::FFVar &T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6)
Definition: functionWrapper.h:115
mc::FFVar squash(const mc::FFVar &Var, const double lb, const double ub)
Definition: functionWrapper.h:41
mc::FFVar watson_dhvap(const mc::FFVar &T, const double Tc, const double a, const double b, const double T1, const double dHT1)
Definition: functionWrapper.h:171
mc::FFVar antoine_psat(const mc::FFVar &T, const double p1, const double p2, const double p3)
Definition: functionWrapper.h:61
mc::FFVar wagner_psat(const mc::FFVar &Var, const double p1, const double p2, const double p3, const double p4, const double Tc, const double p6)
Definition: functionWrapper.h:74
mc::FFVar af_ei(const mc::FFVar &Var1, const mc::FFVar &Var2, const double fmin)
Definition: functionWrapper.h:327
mc::FFVar antoine_tsat(const mc::FFVar &T, const double p1, const double p2, const double p3)
Definition: functionWrapper.h:102
mc::FFVar gpdf(const mc::FFVar &Var)
Definition: functionWrapper.h:339