168 Real e = _tab_ve_from_pT->e_from_p_T(p, T);
169 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
170 Real pp = _tab_ve_from_pT->p_from_v_e(
v, e);
171 Real TT = _tab_ve_from_pT->T_from_v_e(
v, e);
172 ABS_TEST(T, TT, 1.0);
173 REL_TEST(p, pp, 0.001);
178 Real e = _tab_ve_from_pT->e_from_p_T(p, T);
179 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
182 Real cp1 = _tab_ve_from_pT->cp_from_p_T(p, T);
183 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
184 REL_TEST(cp1, cp2, 0.001);
187 Real cv1 = _tab_ve_from_pT->cv_from_p_T(p, T);
188 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
189 REL_TEST(cv1, cv2, 0.001);
192 Real mu1 = _tab_ve_from_pT->mu_from_p_T(p, T);
193 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
194 REL_TEST(mu1, mu2, 0.001);
197 Real k1 = _tab_ve_from_pT->k_from_p_T(p, T);
198 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
199 REL_TEST(k1, k2, 0.001);
204 Real s = _tab_ve_from_pT->s_from_p_T(p, T);
207 Real rho1 = _tab_ve_from_pT->rho_from_p_T(p, T);
208 Real rho2 = _tab_ve_from_pT->rho_from_p_s(p, s);
209 REL_TEST(rho1, rho2, 0.001);
212 Real Ts = _tab_ve_from_pT->T_from_p_s(p, s);
213 REL_TEST(T, Ts, 0.001);
220 Real h = _tab_ve_from_pT->h_from_p_T(p, T);
221 Real Ts = _tab_ve_from_pT->T_from_p_h(p, h);
222 REL_TEST(T, Ts, 1e-4);
226 REL_TEST(T, Ts, 1e-4);
231 Real e = _tab_ve_from_pT->e_from_p_T(p, T);
232 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
241 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, d1, d2);
242 Real cp2 = _tab_ve_from_pT->cp_from_v_e(
v, e);
243 REL_TEST(cp1, cp2, 0.001);
247 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, d1, d2);
248 Real cv2 = _tab_ve_from_pT->cv_from_v_e(
v, e);
249 REL_TEST(cv1, cv2, 0.001);
253 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, d1, d2);
254 Real mu2 = _tab_ve_from_pT->mu_from_v_e(
v, e);
255 REL_TEST(mu1, mu2, 0.001);
259 _tab_ve_from_pT->k_from_v_e(
v, e, k1, d1, d2);
260 Real k2 = _tab_ve_from_pT->k_from_v_e(
v, e);
261 REL_TEST(k1, k2, 0.001);
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);
273 _tab_ve_from_pT->p_from_v_e(
v, e, p1, deriv1, deriv2);
274 Real p2 = _tab_ve_from_pT->p_from_v_e(
v, e);
275 REL_TEST(p1, p2, 0.001);
279 _tab_ve_from_pT->T_from_v_e(
v, e, T1, deriv1, deriv2);
280 Real T2 = _tab_ve_from_pT->T_from_v_e(
v, e);
281 REL_TEST(T1, T2, 0.001);
288 _tab_ve_from_pT->cp_from_v_e(
v, e, cp1, deriv1, deriv2);
289 Real cp_0 = _tab_ve_from_pT->cp_from_v_e(
v, e);
290 Real cp_1 = _tab_ve_from_pT->cp_from_v_e(
v * (1 + pert), e);
291 Real cp_2 = _tab_ve_from_pT->cp_from_v_e(
v, e * (1 + pert));
292 REL_TEST(deriv1, (cp_1 - cp_0) / (
v * pert), 0.001);
293 REL_TEST(deriv2, (cp_2 - cp_0) / (e * pert), 0.001);
297 _tab_ve_from_pT->cv_from_v_e(
v, e, cv1, deriv1, deriv2);
298 Real cv_0 = _tab_ve_from_pT->cv_from_v_e(
v, e);
299 Real cv_1 = _tab_ve_from_pT->cv_from_v_e(
v * (1 + pert), e);
300 Real cv_2 = _tab_ve_from_pT->cv_from_v_e(
v, e * (1 + pert));
301 REL_TEST(deriv1, (cv_1 - cv_0) / (
v * pert), 0.001);
302 REL_TEST(deriv2, (cv_2 - cv_0) / (e * pert), 0.001);
306 _tab_ve_from_pT->mu_from_v_e(
v, e, mu1, deriv1, deriv2);
307 Real mu_0 = _tab_ve_from_pT->mu_from_v_e(
v, e);
308 Real mu_1 = _tab_ve_from_pT->mu_from_v_e(
v * (1 + pert), e);
309 Real mu_2 = _tab_ve_from_pT->mu_from_v_e(
v, e * (1 + pert));
310 REL_TEST(deriv1, (mu_1 -
mu_0) / (
v * pert), 0.001);
311 REL_TEST(deriv2, (mu_2 -
mu_0) / (e * pert), 0.001);
315 _tab_ve_from_pT->k_from_v_e(
v, e, k1, deriv1, deriv2);
316 Real k_0 = _tab_ve_from_pT->k_from_v_e(
v, e);
317 Real k_1 = _tab_ve_from_pT->k_from_v_e(
v * (1 + pert), e);
318 Real k_2 = _tab_ve_from_pT->k_from_v_e(
v, e * (1 + pert));
319 REL_TEST(deriv1, (k_1 - k_0) / (
v * pert), 0.001);
320 REL_TEST(deriv2, (k_2 - k_0) / (e * pert), 0.001);
325 Real h = _tab_ve_from_pT->h_from_p_T(p, T);
326 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
327 Real e_gold = _tab_ve_from_pT->e_from_p_T(p, T);
328 Real e = _tab_ve_from_pT->e_from_v_h(
v, h);
329 REL_TEST(e_gold, e, 0.001);
331 Real e2, de_dv, de_dh;
332 _tab_ve_from_pT->e_from_v_h(
v, h, e2, de_dv, de_dh);
333 REL_TEST(e_gold, e2, 0.001);
334 Real e_0 = _tab_ve_from_pT->e_from_v_h(
v, h);
335 Real e_1 = _tab_ve_from_pT->e_from_v_h(
v * (1 + pert), h);
336 Real e_2 = _tab_ve_from_pT->e_from_v_h(
v, h * (1 + pert));
337 REL_TEST(de_dv, (e_1 - e_0) / (
v * pert), 0.001);
338 REL_TEST(de_dh, (e_2 - e_0) / (h * pert), 0.001);
343 Real e = _tab_ve_from_pT->e_from_p_T(p, T);
344 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
356 ADReal p_ad = _tab_ve_from_pT->p_from_v_e(v_ad, e_ad);
358 Real pp, dp_dv, dp_de;
359 _tab_ve_from_pT->p_from_v_e(
v, e, pp, dp_dv, dp_de);
360 REL_TEST(p_ad.derivatives()[0], dp_dv, 0.0001);
361 REL_TEST(p_ad.derivatives()[1], dp_de, 0.0001);
366 Real e = _tab_ve_from_pT->e_from_p_T(p, T);
367 Real v = _tab_ve_from_pT->v_from_p_T(p, T);
379 ADReal T_ad = _tab_ve_from_pT->T_from_v_e(v_ad, e_ad);
381 Real TT, dT_dv, dT_de;
382 _tab_ve_from_pT->T_from_v_e(
v, e, TT, dT_dv, dT_de);
383 REL_TEST(T_ad.derivatives()[0], dT_dv, 0.0001);
384 REL_TEST(T_ad.derivatives()[1], dT_de, 0.0001);
392 Real h = _tab_ve_from_pT->h_from_p_T(p, T);
404 ADReal T_ad = _tab_ve_from_pT->T_from_p_h(p_ad, h_ad);
406 Real TT_1 = _tab_ve_from_pT->T_from_p_h(p * (1 + pert), h);
407 Real TT_2 = _tab_ve_from_pT->T_from_p_h(p, h * (1 + pert));
408 Real dT_dp = (TT_1 - T) / p / pert;
409 Real dT_dh = (TT_2 - T) / h / pert;
410 REL_TEST(T_ad.derivatives()[0], dT_dp, 0.0001);
411 REL_TEST(T_ad.derivatives()[1], dT_dh, 0.0001);
SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< MOOSE_AD_MAX_DOFS_PER_ELEM > > DNDerivativeType
DualNumber< Real, DNDerivativeType, true > ADReal
Common class for single phase fluid properties.
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
static const std::string v
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)