183 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
184 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
185 Real pp = _tab_ve_from_pT->p_from_v_e(
v, e);
186 Real TT = _tab_ve_from_pT->T_from_v_e(
v, e);
187 ABS_TEST(
T, TT, 1.0);
188 REL_TEST(
p, pp, 0.001);
193 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
194 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
197 Real cp1 = _tab_ve_from_pT->cp_from_p_T(
p,
T);
198 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
199 REL_TEST(cp1, cp2, 0.001);
202 Real cv1 = _tab_ve_from_pT->cv_from_p_T(
p,
T);
203 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
204 REL_TEST(cv1, cv2, 0.001);
207 Real mu1 = _tab_ve_from_pT->mu_from_p_T(
p,
T);
208 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
209 REL_TEST(mu1, mu2, 0.001);
212 Real k1 = _tab_ve_from_pT->k_from_p_T(
p,
T);
213 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
214 REL_TEST(k1, k2, 0.001);
217 Real h1 = _tab_ve_from_pT->h_from_p_T(
p,
T);
218 Real h2 = _tab_ve_from_pT->h_from_v_e(
v, e);
219 REL_TEST(h1, h2, 0.001);
222 Real s1 = _tab_ve_from_pT->s_from_p_T(
p,
T);
223 Real s2 = _tab_ve_from_pT->s_from_v_e(
v, e);
224 REL_TEST(s1, s2, 0.001);
229 Real s = _tab_ve_from_pT->s_from_p_T(
p,
T);
232 Real rho1 = _tab_ve_from_pT->rho_from_p_T(
p,
T);
233 Real rho2 = _tab_ve_from_pT->rho_from_p_s(
p, s);
234 REL_TEST(rho1, rho2, 0.001);
237 Real Ts = _tab_ve_from_pT->T_from_p_s(
p, s);
238 REL_TEST(
T, Ts, 0.001);
243 Real rho = _tab_ve_from_pT->rho_from_p_T(
p,
T);
246 Real e1 = _tab_ve_from_pT->e_from_p_T(
p,
T);
247 Real e2 = _tab_ve_from_pT->e_from_p_rho(
p,
rho);
248 REL_TEST(e1, e2, REL_TOL_CONSISTENCY);
255 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
256 Real Ts = _tab_ve_from_pT->T_from_p_h(
p, h);
257 REL_TEST(
T, Ts, 1e-4);
261 REL_TEST(
T, Ts, 1e-4);
266 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
267 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
276 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, d1, d2);
277 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
278 REL_TEST(cp1, cp2, 0.001);
282 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, d1, d2);
283 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
284 REL_TEST(cv1, cv2, 0.001);
288 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, d1, d2);
289 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
290 REL_TEST(mu1, mu2, 0.001);
294 _tab_ve_from_pT->k_from_v_e(
v, e, k1, d1, d2);
295 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
296 REL_TEST(k1, k2, 0.001);
301 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
302 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
308 _tab_ve_from_pT->p_from_v_e(
v, e, p1, deriv1, deriv2);
309 Real p2 = _tab_ve_from_pT->p_from_v_e(
v, e);
310 REL_TEST(p1, p2, 0.001);
314 _tab_ve_from_pT->T_from_v_e(
v, e, T1, deriv1, deriv2);
315 Real T2 = _tab_ve_from_pT->T_from_v_e(
v, e);
316 REL_TEST(T1, T2, 0.001);
323 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, deriv1, deriv2);
324 Real cp_0 = _tab_ve_from_pT->cp_from_v_e(
v, e);
325 Real cp_1 = _tab_ve_from_pT->cp_from_v_e(
v * (1 + pert), e);
326 Real cp_2 = _tab_ve_from_pT->cp_from_v_e(
v, e * (1 + pert));
327 REL_TEST(deriv1, (cp_1 - cp_0) / (
v * pert), 0.001);
328 REL_TEST(deriv2, (cp_2 - cp_0) / (e * pert), 0.001);
332 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, deriv1, deriv2);
333 Real cv_0 = _tab_ve_from_pT->cv_from_v_e(
v, e);
334 Real cv_1 = _tab_ve_from_pT->cv_from_v_e(
v * (1 + pert), e);
335 Real cv_2 = _tab_ve_from_pT->cv_from_v_e(
v, e * (1 + pert));
336 REL_TEST(deriv1, (cv_1 - cv_0) / (
v * pert), 0.001);
337 REL_TEST(deriv2, (cv_2 - cv_0) / (e * pert), 0.001);
341 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, deriv1, deriv2);
342 Real mu_0 = _tab_ve_from_pT->mu_from_v_e(
v, e);
343 Real mu_1 = _tab_ve_from_pT->mu_from_v_e(
v * (1 + pert), e);
344 Real mu_2 = _tab_ve_from_pT->mu_from_v_e(
v, e * (1 + pert));
345 REL_TEST(deriv1, (mu_1 -
mu_0) / (
v * pert), 0.001);
346 REL_TEST(deriv2, (mu_2 -
mu_0) / (e * pert), 0.001);
350 _tab_ve_from_pT->k_from_v_e(
v, e, k1, deriv1, deriv2);
351 Real k_0 = _tab_ve_from_pT->k_from_v_e(
v, e);
352 Real k_1 = _tab_ve_from_pT->k_from_v_e(
v * (1 + pert), e);
353 Real k_2 = _tab_ve_from_pT->k_from_v_e(
v, e * (1 + pert));
354 REL_TEST(deriv1, (k_1 - k_0) / (
v * pert), 0.001);
355 REL_TEST(deriv2, (k_2 - k_0) / (e * pert), 0.001);
360 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
361 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
362 Real e_gold = _tab_ve_from_pT->e_from_p_T(
p,
T);
363 Real e = _tab_ve_from_pT->e_from_v_h(
v, h);
364 REL_TEST(e_gold, e, 0.001);
366 Real e2, de_dv, de_dh;
367 _tab_ve_from_pT->e_from_v_h(
v, h, e2, de_dv, de_dh);
368 REL_TEST(e_gold, e2, 0.001);
369 Real e_0 = _tab_ve_from_pT->e_from_v_h(
v, h);
370 Real e_1 = _tab_ve_from_pT->e_from_v_h(
v * (1 + pert), h);
371 Real e_2 = _tab_ve_from_pT->e_from_v_h(
v, h * (1 + pert));
372 REL_TEST(de_dv, (e_1 - e_0) / (
v * pert), 0.001);
373 REL_TEST(de_dh, (e_2 - e_0) / (h * pert), 0.001);
378 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
379 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
391 ADReal p_ad = _tab_ve_from_pT->p_from_v_e(v_ad, e_ad);
393 Real pp, dp_dv, dp_de;
394 _tab_ve_from_pT->p_from_v_e(
v, e, pp, dp_dv, dp_de);
395 REL_TEST(p_ad.derivatives()[0], dp_dv, 0.0001);
396 REL_TEST(p_ad.derivatives()[1], dp_de, 0.0001);
398 ADReal ad_pp, ad_dp_dv, ad_dp_de;
399 _tab_ve_from_pT->p_from_v_e(v_ad, e_ad, ad_pp, ad_dp_dv, ad_dp_de);
400 REL_TEST(p_ad.derivatives()[0], ad_dp_dv.value(), 0.0001);
401 REL_TEST(p_ad.derivatives()[1], ad_dp_de.value(), 0.0001);
406 Real e = _tab_ve_from_pT->e_from_p_T(
p,
T);
407 Real v = _tab_ve_from_pT->v_from_p_T(
p,
T);
419 ADReal T_ad = _tab_ve_from_pT->T_from_v_e(v_ad, e_ad);
421 Real TT, dT_dv, dT_de;
422 _tab_ve_from_pT->T_from_v_e(
v, e, TT, dT_dv, dT_de);
423 REL_TEST(T_ad.derivatives()[0], dT_dv, 0.0001);
424 REL_TEST(T_ad.derivatives()[1], dT_de, 0.0001);
426 ADReal ad_TT, ad_dT_dv, ad_dT_de;
427 _tab_ve_from_pT->T_from_v_e(v_ad, e_ad, ad_TT, ad_dT_dv, ad_dT_de);
428 REL_TEST(T_ad.derivatives()[0], ad_dT_dv.value(), 0.0001);
429 REL_TEST(T_ad.derivatives()[1], ad_dT_de.value(), 0.0001);
437 Real h = _tab_ve_from_pT->h_from_p_T(
p,
T);
449 ADReal T_ad = _tab_ve_from_pT->T_from_p_h(p_ad, h_ad);
451 Real TT_1 = _tab_ve_from_pT->T_from_p_h(
p * (1 + pert), h);
452 Real TT_2 = _tab_ve_from_pT->T_from_p_h(
p, h * (1 + pert));
453 Real dT_dp = (TT_1 -
T) /
p / pert;
454 Real dT_dh = (TT_2 -
T) / h / pert;
455 REL_TEST(T_ad.derivatives()[0], dT_dp, 0.0001);
456 REL_TEST(T_ad.derivatives()[1], dT_dh, 0.0001);
472 ADReal rho_ad = _tab_ve_from_pT->rho_from_p_T(p_ad, T_ad);
475 _tab_ve_from_pT->rho_from_p_T(
p,
T,
rho, drho_dp, drho_dT);
476 REL_TEST(rho_ad.derivatives()[0], drho_dp, 0.0001);
477 REL_TEST(rho_ad.derivatives()[1], drho_dT, 0.0001);
479 ADReal ad_rho, ad_drho_dp, ad_drho_dT;
480 _tab_ve_from_pT->rho_from_p_T(p_ad, T_ad, ad_rho, ad_drho_dp, ad_drho_dT);
481 REL_TEST(rho_ad.derivatives()[0], ad_drho_dp.value(), 0.0001);
482 REL_TEST(rho_ad.derivatives()[1], ad_drho_dT.value(), 0.0001);
498 ADReal e_ad = _tab_ve_from_pT->e_from_p_T(p_ad, T_ad);
500 Real e, de_dp, de_dT;
501 _tab_ve_from_pT->e_from_p_T(
p,
T, e, de_dp, de_dT);
502 REL_TEST(e_ad.derivatives()[0], de_dp, 0.0001);
503 REL_TEST(e_ad.derivatives()[1], de_dT, 0.0001);
519 ADReal v_ad = _tab_ve_from_pT->v_from_p_T(p_ad, T_ad);
521 Real v, dv_dp, dv_dT;
522 _tab_ve_from_pT->v_from_p_T(
p,
T,
v, dv_dp, dv_dT);
523 REL_TEST(v_ad.derivatives()[0], dv_dp, 0.0001);
524 REL_TEST(v_ad.derivatives()[1], dv_dT, 0.0001);
DualNumber< Real, DNDerivativeType, false > ADReal
Common class for single phase fluid properties.
KokkosSemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< MOOSE_AD_MAX_DOFS_PER_ELEM > > DNDerivativeType
Class for fluid properties read from a file.
static const Real mu_0
Magnetic permeability of free space in SI units (H/m)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)