mirror of
https://github.com/Cantera/cantera.git
synced 2025-02-25 18:55:29 -06:00
414 lines
16 KiB
YAML
414 lines
16 KiB
YAML
# Parameters for test cases defined in test/thermo/consistency.cpp
|
|
#
|
|
# Each top-level entry here corresponds to a Googletest "test suite" instantiation,
|
|
# using the INSTANTIATE_TEST_SUITE_P macro.
|
|
#
|
|
# Each of these entries has two keys, 'setup' and 'states'. The 'setup' map defines the
|
|
# phase to be loaded, information on cases that are known to fail, and optional
|
|
# tolerance parameters that are used in some tests. Within the 'setup' map, the
|
|
# following keys are recognized:
|
|
# - file: the name of the input file, read from the usual data paths (which
|
|
# includes test/data when running the test suite)
|
|
# - phase: The name of the phase to read. Optional - by default, the first phase
|
|
# in the file is used.
|
|
# - known-failures: A map where the keys identify tests that should be skipped because
|
|
# they are known to fail and the values are messages to be printed in the test log
|
|
# explaining why the test has been skipped. The keys are regular expressions that are
|
|
# searched for in the test names (second argument to TEST_P) defined in
|
|
# consistency.cpp. The test name is suffixed with '/N' where 'N' is the (zero-indexed)
|
|
# index into the 'states' array and can be used to skip specific test instances. Where
|
|
# possible, known failures should reference GitHub Issue numbers documenting known
|
|
# errors. This mechanism is not used to handle test cases that raise
|
|
# NotImplementedError; Those tests should be skipped automatically.
|
|
# - atol: An absolute tolerance used for tests comparing molar energy-like quantities.
|
|
# Default 1.0e-5.
|
|
# - atol_v: An absolute tolerance used for tests comparing molar volumes.
|
|
# Default 1.0e-11.
|
|
# - rtol_fd: A relative tolerance used in some finite difference tests. Default 1.0e-6.
|
|
#
|
|
# The 'states' key defines a list of maps, where each map provides a complete state
|
|
# definition for the phase. The map is passed directly to ThermoPhase::setState(), and
|
|
# supports setting the state using any of the variables supported there.
|
|
|
|
ideal-gas-h2o2:
|
|
setup: {file: h2o2.yaml}
|
|
states:
|
|
- {T: 300, P: 101325, X: {H2: 0.1, O2: 0.7, H2O2: 0.1}}
|
|
- {T: 300, P: 101325, Y: {H2: 0.1, O2: 0.7, H2O2: 0.1}}
|
|
- {T: 400, density: 5 g/cm^3 , X: {H2: 0.1, O2: 0.7, H2O2: 0.1}}
|
|
|
|
redlich-kwong:
|
|
setup:
|
|
file: co2_RK_example.yaml
|
|
rtol_fd: 1e-5
|
|
states:
|
|
- {T: 300, P: 101325, X: {CO2: 0.7, CH4: 0.2, H2O: 0.1}}
|
|
- {T: 320, P: 200 bar, X: {CO2: 0.3, CH4: 0.5, H2O: 0.2}}
|
|
- {T: 600, P: 200 bar, X: {CO2: 0.4, CH4: 0.2, H2O: 0.4}}
|
|
|
|
peng-robinson:
|
|
setup:
|
|
file: co2_PR_example.yaml
|
|
rtol_fd: 1e-5
|
|
states:
|
|
- {T: 300, P: 101325, X: {CO2: 0.7, CH4: 0.2, H2O: 0.1}}
|
|
- {T: 320, P: 200 bar, X: {CO2: 0.3, CH4: 0.5, H2O: 0.2}}
|
|
- {T: 600, P: 200 bar, X: {CO2: 0.4, CH4: 0.2, H2O: 0.4}}
|
|
|
|
ideal-molal-solution:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: ideal-molal-aqueous
|
|
known-failures:
|
|
g_eq_h_minus_Ts:
|
|
"Implementations of g and s are inconsistent. See GitHub Issue #1300"
|
|
gk_eq_hk_minus_T_sk:
|
|
"Implementations of g and s are inconsistent. See GitHub Issue #1300"
|
|
cv_eq_.+: cv not implemented
|
|
cp_eq_dsdT_const_p_times_T:
|
|
"Implementation of cp and s are inconsistent. See GitHub Issue #1300"
|
|
activity_coeffs: "Activity coeffs are incorrect. See GitHub Issue #1311"
|
|
states:
|
|
- {T: 300, P: 101325, molalities: {CH4(aq): 0.01, H2S(aq): 0.03, CO2(aq): 0.1}}
|
|
- {T: 300, P: 2 atm, molalities: {CH4(aq): 0.1, H2S(aq): 0.01, CO2(aq): 0.1}}
|
|
- {T: 340, P: 5 atm, molalities: {CH4(aq): 0.1, H2S(aq): 0.01, CO2(aq): 0.1}}
|
|
|
|
ideal-condensed-1:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: IdealSolidSolnPhase
|
|
states:
|
|
- {T: 300, P: 0.1 atm, X: {sp1: 1.0}}
|
|
- {T: 300, P: 1 atm, X: {sp1: 0.6, sp2: 0.4}}
|
|
- {T: 400, P: 0.1 atm, X: {sp1: 0.01, sp2: 0.03, sp3: 0.94}}
|
|
- {T: 500, P: 2 bar, X: {sp1: 0.1, sp2: 0.89, sp3: 0.01}}
|
|
|
|
ideal-condensed-2:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: IdealSolidSolnPhase2
|
|
states:
|
|
- {T: 300, P: 0.1 atm, X: {sp1: 1.0}}
|
|
- {T: 400, P: 0.1 atm, X: {sp1: 0.01, sp2: 0.03, sp3: 0.94}}
|
|
- {T: 500, P: 2 bar, X: {sp1: 0.1, sp2: 0.89, sp3: 0.01}}
|
|
|
|
binary-solution-tabulated:
|
|
setup:
|
|
file: BinarySolutionTabulatedThermo.yaml
|
|
phase: anode
|
|
known-failures:
|
|
g_eq_h_minus_Ts/4: "Problems near composition limit. See GitHub Issue #1303"
|
|
g_eq_sum_gk_Xk/4: "Problems near composition limit. See GitHub Issue #1303"
|
|
s_eq_sum_sk_Xk/4: "Problems near composition limit. See GitHub Issue #1303"
|
|
gk_eq_hk_minus_T_sk/[34]: "Problems near composition limit. See GitHub Issue #1303"
|
|
gk0_eq_hk0_minus_T_sk0/[34]:
|
|
"Problems near composition limit. See GitHub Issue #1303"
|
|
chem_potentials_to_activities/3:
|
|
"Problems near composition limit. See GitHub Issue #1303"
|
|
gRef_eq_hRef_minus_T_sRef/[34]:
|
|
"Problems near composition limit. See GitHub Issue #1303"
|
|
states:
|
|
- {T: 300, P: 1 atm, X: {"Li[anode]": 0.3, "V[anode]": 0.7}}
|
|
- {T: 320, P: 1 atm, X: {"Li[anode]": 0.3, "V[anode]": 0.7}}
|
|
- {T: 340, P: 10 atm, X: {"Li[anode]": 0.6, "V[anode]": 0.4}}
|
|
- {T: 300, P: 5 atm, X: {"Li[anode]": 0.0, "V[anode]": 1.0}}
|
|
- {T: 300, P: 1 atm, X: {"Li[anode]": 1.0, "V[anode]": 0.0}}
|
|
- {T: 300, P: 5 atm, X: {"Li[anode]": 1.0e-10, "V[anode]": 1.0}}
|
|
- {T: 300, P: 1 atm, X: {"Li[anode]": 1.0, "V[anode]": 1.0e-10}}
|
|
|
|
electron-cloud:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: Metal
|
|
states:
|
|
- {T: 300, P: 1 atm}
|
|
- {T: 400, P: 1 atm}
|
|
- {T: 500, P: 10 atm}
|
|
|
|
# The Python test_purefluid.py test suite contains a much more extensive set of tests
|
|
# for the pure substance models
|
|
nitrogen-purefluid:
|
|
setup:
|
|
file: liquidvapor.yaml
|
|
phase: nitrogen
|
|
rtol_fd: 2e-3 # agreement for Maxwell relations is limited
|
|
known-failures:
|
|
cv_eq_.+/3: cv not defined in two-phase region
|
|
cp_eq_sum_cpk_Xk: cp is inf in the two-phase region
|
|
dsdP_const_T_eq_minus_dV_dT_const_P/3: Can't set TP in two-phase region
|
|
states:
|
|
- {T: 300, P: 1 atm}
|
|
- {T: 70, P: 1 atm}
|
|
- {T: 80, P: 100 atm}
|
|
- {T: 80, density: 100 kg/m^3}
|
|
|
|
plasma:
|
|
setup:
|
|
file: oxygen-plasma.yaml
|
|
phase: discretized-electron-energy-plasma
|
|
known-failures:
|
|
cp_eq_.+/1: Test does not account for distinct electron temperature
|
|
cv_eq_.+/1: Test does not account for distinct electron temperature
|
|
c._eq_dsdT_const_._times_T: Test does not account for distinct electron temperature
|
|
cpk0_eq_dhk0dT: Test does not account for distinct electron temperature
|
|
cpRef_eq_dhRefdT: Test does not account for distinct electron temperature
|
|
states:
|
|
- {T: 300, P: 1 atm, X: {O2: 1.0, O2-: 1e-5, E: 1e-5}}
|
|
- {T: 300, P: 1 atm, X: {E: 1.0}}
|
|
- {T: 3500, P: 10 atm, X: {O2: 1.0, O2-: 2e-5, E: 2e-5}}
|
|
|
|
debye-huckel-dilute:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-dilute
|
|
known-failures: &debye-huckel-failures
|
|
cv_eq_.+: cv not implemented
|
|
activity_coeffs: "Activity coeffs are incorrect. See GitHub Issue #1311"
|
|
|
|
states: &debye-huckel-states
|
|
- {T: 300, P: 1 atm,
|
|
molalities: {Na+: 9.3549, Cl-: 9.3549, H+: 1.05e-08, OH-: 1.3765e-06,
|
|
NaCl(aq): 0.98492, NaOH(aq): 3.8836e-06, NaH3SiO4(aq): 6.8798e-05,
|
|
SiO2(aq): 3.0179e-05, H3SiO4-: 1.0231e-06}}
|
|
- {T: 300, P: 1 atm,
|
|
molalities: {Na+: 4.1, Cl-: 4.1, H+: 1.05e-07, OH-: 1.3765e-05,
|
|
NaCl(aq): 2.2, NaOH(aq): 3.8836e-03}}
|
|
- {T: 320, P: 1 atm,
|
|
molalities: {Na+: 9.3549, Cl-: 9.3549, H+: 1.05e-06, OH-: 2.0e-05,
|
|
NaCl(aq): 0.98492, NaOH(aq): 3.8836e-06}}
|
|
- {T: 320, P: 20 atm,
|
|
molalities: {Na+: 9.3549, Cl-: 9.3549, H+: 1.05e-08, OH-: 1.3765e-06,
|
|
NaCl(aq): 0.98492, NaOH(aq): 3.8836e-06}}
|
|
|
|
debye-huckel-dilute-IAPWS:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-dilute-IAPWS
|
|
rtol_fd: 1e-5 # Good finite difference results with IAPWS are challenging
|
|
known-failures:
|
|
cv_eq_.+: cv not implemented
|
|
activity_coeffs: "Activity coeffs are incorrect. See GitHub Issue #1311"
|
|
cp_eq_.+: "cp with variable A_Debye is incorrect. See GitHub Issue #1500"
|
|
dsdP_const_T_eq_minus_dV_dT_const_P.+:
|
|
"Error with dilute limit with variable A_Debye. See GitHub Issue #1502"
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-B-dot-ak:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-B-dot-ak
|
|
known-failures: *debye-huckel-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-B-dot-ak-IAPWS:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-B-dot-ak-IAPWS
|
|
rtol_fd: 1e-5 # Good finite difference results with IAPWS are challenging
|
|
known-failures: &debye-huckel-IAPWS-failures
|
|
cv_eq_.+: cv not implemented
|
|
activity_coeffs: "Activity coeffs are incorrect. See GitHub Issue #1311"
|
|
cp_eq_.+: "cp with variable A_debye is incorrect. See GitHub Issue #1500"
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-B-dot-a:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-B-dot-a
|
|
known-failures: *debye-huckel-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-B-dot-a-IAPWS:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-B-dot-a-IAPWS
|
|
rtol_fd: 1e-5 # Good finite difference results with IAPWS are challenging
|
|
known-failures: *debye-huckel-IAPWS-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-pitzer-beta_ij:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-pitzer-beta_ij
|
|
known-failures: *debye-huckel-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-pitzer-beta_ij-IAPWS:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-pitzer-beta_ij-IAPWS
|
|
rtol_fd: 1e-5 # Good finite difference results with IAPWS are challenging
|
|
known-failures: *debye-huckel-IAPWS-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-beta_ij:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-beta_ij
|
|
known-failures: *debye-huckel-failures
|
|
states: *debye-huckel-states
|
|
|
|
debye-huckel-beta_ij-IAPWS:
|
|
setup:
|
|
file: debye-huckel-all.yaml
|
|
phase: debye-huckel-beta_ij-IAPWS
|
|
rtol_fd: 1e-5 # Good finite difference results with IAPWS are challenging
|
|
known-failures: *debye-huckel-IAPWS-failures
|
|
states: *debye-huckel-states
|
|
|
|
margules:
|
|
setup:
|
|
file: LiKCl_liquid.yaml
|
|
known-failures:
|
|
cv_eq.+: "Implementation of cv is incorrect. See GitHub Issue #1308"
|
|
states:
|
|
- {T: 900, P: 1 atm, X: {KCl(L): 0.2, LiCl(L): 0.8}}
|
|
- {T: 1000, P: 10 atm, X: {KCl(L): 0.99, LiCl(L): 0.01}}
|
|
- {T: 1400, P: 20 atm, X: {KCl(L): 2.0e-5, LiCl(L): 1}}
|
|
|
|
lattice:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: Li7Si3-interstitial
|
|
known-failures:
|
|
_sum_.+_Xk: "Implementation is wrong. See GitHub Issue #1309"
|
|
gk_eq_hk_minus_T_sk: "Implementation is wrong. See GitHub Issue #1309"
|
|
standard_gibbs_nondim: "Implementation is wrong. See GitHub Issue #1309"
|
|
chem_potentials_to_activities: "Implementation is wrong. See GitHub Issue #1309"
|
|
states:
|
|
- {T: 725.0 K, P: 1.0 atm, X: {Li(i): 0.2, V(i): 0.8}}
|
|
- {T: 825.0 K, P: 50.0 bar, X: {Li(i): 0.7, V(i): 0.3}}
|
|
- {T: 925.0 K, P: 50.0 bar, X: {Li(i): 1.0, V(i): 0.0}}
|
|
|
|
compound-lattice:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: Li7Si3_and_interstitials
|
|
known-failures:
|
|
_sum_.+_Xk: "LatticePhase implementation is wrong. See GitHub Issue #1309"
|
|
h_eq_u_plus_Pv: "Implementation is inconsistent. See GitHub Issue #1310"
|
|
gk_eq_hk_minus_T_sk: "Implementation is inconsistent. See GitHub Issue #1310"
|
|
chem_potentials_to_activities:
|
|
"LatticePhase implementation is wrong. See GitHub Issue #1309"
|
|
activity_coeffs: "See GitHub Issue #1309"
|
|
states:
|
|
- {T: 725.0 K, P: 1.0 atm}
|
|
- {T: 825.0 K, P: 50.0 bar}
|
|
- {T: 825.0 K, P: 50.0 bar, X: {Li7Si3(s): 0.3, Li(i): 0.5, V(i): 0.2}}
|
|
|
|
fixed-stoichiometry:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: KCl(s)
|
|
states:
|
|
- {T: 300, P: 1 atm}
|
|
- {T: 300, P: 10 atm}
|
|
- {T: 500, P: 10 atm}
|
|
|
|
ideal-surface:
|
|
setup:
|
|
file: surface-phases.yaml
|
|
phase: Pt-surf
|
|
atol_v: 1e-7
|
|
states:
|
|
- {T: 800, P: 1 atm, coverages: {Pt(s): 0.5, H(s): 0.4, O(s): 0.1}}
|
|
- {T: 800, P: 5 atm, coverages: {H(s): 1.0}}
|
|
- {T: 300, P: 20 atm, coverages: {Pt(s): 1.0}}
|
|
- {T: 600, P: 5 atm, coverages: {Pt(s): 0.1, O(s): 0.9}}
|
|
|
|
ideal-edge:
|
|
setup:
|
|
file: surface-phases.yaml
|
|
phase: TPB
|
|
atol_v: 1e3 # site density of 5e-18 kmol/m = linear molar volume of 2e17 m/kmol
|
|
states:
|
|
- {T: 300, P: 1 atm}
|
|
- {T: 900, P: 20 atm}
|
|
|
|
coverage-dependent-surface:
|
|
setup:
|
|
file: copt_covdepsurf_example.yaml
|
|
phase: covdep
|
|
atol_v: 1e-7
|
|
states:
|
|
- {T: 700, P: 1 atm,
|
|
coverages: {Pt: 0.0, OC_Pt: 0.1, CO2_Pt: 0.5, C_Pt: 0.1, O_Pt: 0.3}}
|
|
- {T: 800, P: 5 atm,
|
|
coverages: {Pt: 0.12, OC_Pt: 0.07, CO2_Pt: 0.21, C_Pt: 0.17, O_Pt: 0.43}}
|
|
- {T: 300, P: 3 atm,
|
|
coverages: {Pt: 0.0, OC_Pt: 0.71, CO2_Pt: 0.08, C_Pt: 0.07, O_Pt: 0.14}}
|
|
- {T: 500, P: 10 atm,
|
|
coverages: {Pt: 0.0, OC_Pt: 0.0, CO2_Pt: 0.09, C_Pt: 0.81, O_Pt: 0.1}}
|
|
|
|
liquid-water-IAPWS95:
|
|
setup:
|
|
file: liquidvapor.yaml
|
|
phase: liquid-water-IAPWS95
|
|
rtol_fd: 5e-3 # Limited agreement for Maxwell relations
|
|
known-failures:
|
|
log_standard_concentrations: Not implemented
|
|
states:
|
|
- {T: 300, P: 1 atm}
|
|
- {T: 360, P: 1 atm}
|
|
- {T: 450, P: 100 atm}
|
|
|
|
ideal-solution-VPSS-simple:
|
|
setup:
|
|
file: IdealSolidSolnPhaseExample.yaml
|
|
phase: VpssSolidSolutionExample
|
|
known-failures:
|
|
cv_eq_dudT: "Implementation of cv is incorrect. See GitHub Issue #1317"
|
|
cv_eq_dsdT_const_v_times_T:
|
|
"Implementation of cv is incorrect. See GitHub Issue #1317"
|
|
states:
|
|
- {T: 300, P: 1 atm, X: {C2H2-graph: 0.2, C-graph: 0.5, H2-solute: 0.3}}
|
|
- {T: 400, P: 1 atm, X: {C2H2-graph: 1.0}}
|
|
- {T: 500, P: 10 atm, X: {C-graph: 0.6, H2-solute: 0.4}}
|
|
|
|
ideal-solution-VPSS-HKFT:
|
|
setup:
|
|
file: pdss_hkft.yaml
|
|
known-failures:
|
|
cv_eq_dudT: "Implementation of cv is incorrect. See GitHub Issue #1317"
|
|
cv_eq_dsdT_const_v_times_T:
|
|
"Implementation of cv is incorrect. See GitHub Issue #1317"
|
|
dsdP_const_T_eq_minus_dV_dT_const_P:
|
|
"Implementation of cv is incorrect. See GitHub Issue #1318"
|
|
states:
|
|
- {T: 300, P: 1 atm, X: {H2O(L): 0.9, Na+: 0.05, Cl-: 0.05, H+: 1e-7, OH-: 1e-7}}
|
|
- {T: 360, P: 5 atm, X: {H2O(L): 0.6, Na+: 0.2, Cl-: 0.2}}
|
|
- {T: 330, P: 10 atm, X: {H2O(L): 0.9, Na+: 0.05, Cl-: 0.05, H+: 1e-7, OH-: 1e-7}}
|
|
- {T: 320, P: 1 atm, X: {H2O(L): 1.0, Na+: 0.01, Cl-: 0.05, H+: 0.04}}
|
|
|
|
Redlich-Kister-LiC6:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: Redlich-Kister-LiC6
|
|
states:
|
|
- {T: 300, P: 1 atm, X: {Li(C6): 0.85, V(C6): 0.15}}
|
|
- {T: 440, P: 1 atm, X: {Li(C6): 0.75, V(C6): 0.25}}
|
|
- {T: 350, P: 10 atm, X: {Li(C6): 1.0, V(C6): 0.0}}
|
|
- {T: 350, P: 10 atm, X: {Li(C6): 0.0, V(C6): 1.0}}
|
|
|
|
Redlich-Kister-complex:
|
|
setup:
|
|
file: thermo-models.yaml
|
|
phase: Redlich-Kister-complex
|
|
states:
|
|
- {T: 900, P: 1 atm, X: {KCl(l): 0.85, LiCl(l): 0.15}}
|
|
- {T: 950, P: 10 atm, X: {KCl(l): 0.3, LiCl(l): 0.2, NaCl(s): 0.5}}
|
|
- {T: 950, P: 0.1 atm, X: {KCl(l): 0.05, LiCl(l): 0.0, NaCl(s): 0.95}}
|
|
|
|
HMW-electrolyte:
|
|
setup:
|
|
file: HMW_NaCl.yaml
|
|
known-failures:
|
|
cp_eq_dhdT: "Moderate discrepancies. See GitHub Issue #1324"
|
|
cp_eq_dsdT_const_p_times_T: "Moderate discrepancies. See GitHub Issue #1324"
|
|
dsdP_const_T_eq_minus_dV_dT_const_P: "Moderate discrepancies. See GitHub Issue #1324"
|
|
activity_coeffs: "Major discrepancies for all solute species. See GitHub Issue #1324"
|
|
states:
|
|
- {T: 300, P: 1 atm, molalities: {Na+: 9.4, Cl-: 9.4, H+: 1.05e-05, OH-: 1.0e-05}}
|
|
- {T: 330, P: 1 atm, molalities: {Na+: 9.4, Cl-: 9.4, H+: 1.05e-04, OH-: 1.0e-04}}
|
|
- {T: 330, P: 10 atm, molalities: {Na+: 5.0, Cl-: 4.8, H+: 1.0e-07, OH-: 0.2}}
|