https://mooseframework.inl.gov
fluid_properties
test
include
utils
VaporMixtureFluidPropertiesUtils.h
Go to the documentation of this file.
1
//* This file is part of the MOOSE framework
2
//* https://mooseframework.inl.gov
3
//*
4
//* All rights reserved, see COPYRIGHT for full restrictions
5
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6
//*
7
//* Licensed under LGPL 2.1, please see LICENSE for details
8
//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10
#pragma once
11
12
#include "
SinglePhaseFluidPropertiesTestUtils.h
"
13
14
// Macro for performing a derivative test
15
#define VAPOR_MIX_DERIV_TEST(f, a, b, x, rel_tol) \
16
{ \
17
const Real abs_tol = 1e-10; \
18
const Real da = REL_PERTURBATION * a; \
19
const Real db = REL_PERTURBATION * b; \
20
std::vector<Real> dx(x.size()); \
21
for (unsigned int i = 0; i < x.size(); ++i) \
22
dx[i] = REL_PERTURBATION * x[i]; \
23
const Real df_da_fd = (f(a + da, b, x) - f(a - da, b, x)) / (2 * da); \
24
const Real df_db_fd = (f(a, b + db, x) - f(a, b - db, x)) / (2 * db); \
25
std::vector<Real> df_dx_fd(x.size()); \
26
for (unsigned int i = 0; i < x.size(); ++i) \
27
{ \
28
std::vector<Real> x_forward(x); \
29
x_forward[i] += dx[i]; \
30
std::vector<Real> x_backward(x); \
31
x_backward[i] -= dx[i]; \
32
df_dx_fd[i] = (f(a, b, x_forward) - f(a, b, x_backward)) / (2 * dx[i]); \
33
} \
34
Real f_value, df_da, df_db; \
35
std::vector<Real> df_dx(x.size()); \
36
f(a, b, x, f_value, df_da, df_db, df_dx); \
37
REL_ABS_TEST(f(a, b, x), f_value, REL_TOL_CONSISTENCY, abs_tol); \
38
REL_ABS_TEST(df_da, df_da_fd, rel_tol, abs_tol); \
39
REL_ABS_TEST(df_db, df_db_fd, rel_tol, abs_tol); \
40
for (unsigned int i = 0; i < x.size(); ++i) \
41
REL_ABS_TEST(df_dx[i], df_dx_fd[i], rel_tol, abs_tol); \
42
}
SinglePhaseFluidPropertiesTestUtils.h
Generated on Fri Jul 18 2025 13:42:52 for https://mooseframework.inl.gov by
1.8.14