Skip to content

Commit 3a1a987

Browse files
committed
use table data for test of R6
1 parent e29379e commit 3a1a987

File tree

2 files changed

+94
-100
lines changed

2 files changed

+94
-100
lines changed

pyXSteam/tables/R6_95.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,3 +374,83 @@ def tab2_sec4():
374374
R6_95.Table2_D[54:56],
375375
R6_95.Table2_beta[54:56],
376376
)
377+
378+
# Table 7: Thermodynamic property values in the single-phase region for selected values of T and ρ
379+
Table7_T = [
380+
300.0,
381+
300.0,
382+
300.0,
383+
500.0,
384+
500.0,
385+
500.0,
386+
500.0,
387+
647.0,
388+
900.0,
389+
900.0,
390+
900.0,
391+
] # in K
392+
Table7_rho = [
393+
0.9965560e3,
394+
0.1005308e4,
395+
0.1188202e4,
396+
0.4350000,
397+
0.4532000e1,
398+
0.8380250e3,
399+
0.1084564e4,
400+
0.3580000e3,
401+
0.2410000,
402+
0.5261500e2,
403+
0.8707690e3,
404+
] # in kg / m^3
405+
Table7_p = [
406+
0.992418352e-1,
407+
0.200022515e2,
408+
0.700004704e3,
409+
0.999679423e-1,
410+
0.999938125,
411+
0.100003858e2,
412+
0.700000405e3,
413+
0.220384756e2,
414+
0.100062559,
415+
0.200000690e2,
416+
0.700000006e3,
417+
] # p in MPa
418+
Table7_cv = [
419+
0.413018112e1,
420+
0.406798347e1,
421+
0.346135580e1,
422+
0.150817541e1,
423+
0.166991025e1,
424+
0.322106219e1,
425+
0.307437693e1,
426+
0.618315728e1,
427+
0.175890657e1,
428+
0.193510526e1,
429+
0.266422350e1,
430+
] # cv in kJ / kg K
431+
Table7_w = [
432+
0.150151914e4,
433+
0.153492501e4,
434+
0.244357992e4,
435+
0.548314253e3,
436+
0.535739001e3,
437+
0.127128441e4,
438+
0.241200877e4,
439+
0.252145078e3,
440+
0.724027147e3,
441+
0.698445674e3,
442+
0.201933608e4,
443+
] # w in m / s
444+
Table7_s = [
445+
0.393062643,
446+
0.387405401,
447+
0.132609616,
448+
0.794488271e1,
449+
0.682502725e1,
450+
0.256690919e1,
451+
0.203237509e1,
452+
0.432092307e1,
453+
0.916653194e1,
454+
0.659070225e1,
455+
0.417223802e1,
456+
] # s in kJ / kg K

tests/test_R6.py

Lines changed: 14 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def tearDown(self):
1616
pass
1717

1818
def test_R6_internal(self):
19+
"""check internal calculations with values from Table 6"""
1920
delta = 838.025 / R6_95.CRITICAL_DENSITY
2021
tau = R6_95.CRITICAL_TEMPERATURE / 500.0
2122

@@ -54,115 +55,28 @@ def test_R6_internal(self):
5455

5556
def test_p_function(self):
5657
"""check functions against values of R6-95 Table 7"""
57-
in_T = [
58-
300.0,
59-
300.0,
60-
300.0,
61-
500.0,
62-
500.0,
63-
500.0,
64-
500.0,
65-
647.0,
66-
900.0,
67-
900.0,
68-
900.0,
69-
] # in K
70-
71-
in_rho = [
72-
0.9965560e3,
73-
0.1005308e4,
74-
0.1188202e4,
75-
0.4350000,
76-
0.4532000e1,
77-
0.8380250e3,
78-
0.1084564e4,
79-
0.3580000e3,
80-
0.2410000,
81-
0.5261500e2,
82-
0.8707690e3,
83-
] # in kg / m^3
84-
85-
ref = [
86-
0.992418352e-1,
87-
0.200022515e2,
88-
0.700004704e3,
89-
0.999679423e-1,
90-
0.999938125,
91-
0.100003858e2,
92-
0.700000405e3,
93-
0.220384756e2,
94-
0.100062559,
95-
0.200000690e2,
96-
0.700000006e3,
97-
] # p in MPa
98-
99-
res = numpy.zeros(len(ref))
100-
for i, (rho, T) in enumerate(zip(in_rho, in_T)):
101-
res[i] = IAPWS_R6.R6_p_rhoT(rho, T)
10258

103-
error = numpy.sum(numpy.absolute((res - ref) / ref))
59+
res = numpy.zeros(len(R6_95.Table7_p))
60+
for i, (rho, T) in enumerate(zip(R6_95.Table7_rho, R6_95.Table7_T)):
61+
res[i] = IAPWS_R6.R6_p_rhoT(rho, T)
62+
error = numpy.sum(numpy.absolute((res - R6_95.Table7_p) / R6_95.Table7_p))
10463
self.assertLess(error, self.max_error * 2, "Test of p(rho,T) Function failed")
10564

106-
ref = [
107-
0.413018112e1,
108-
0.406798347e1,
109-
0.346135580e1,
110-
0.150817541e1,
111-
0.166991025e1,
112-
0.322106219e1,
113-
0.307437693e1,
114-
0.618315728e1,
115-
0.175890657e1,
116-
0.193510526e1,
117-
0.266422350e1,
118-
] # cv in kJ / kg K
119-
120-
res = numpy.zeros(len(ref))
121-
for i, (rho, T) in enumerate(zip(in_rho, in_T)):
65+
res = numpy.zeros(len(R6_95.Table7_cv))
66+
for i, (rho, T) in enumerate(zip(R6_95.Table7_rho, R6_95.Table7_T)):
12267
res[i] = IAPWS_R6.R6_cv_rhoT(rho, T)
123-
124-
error = numpy.sum(numpy.absolute((res - ref) / ref))
68+
error = numpy.sum(numpy.absolute((res - R6_95.Table7_cv) / R6_95.Table7_cv))
12569
self.assertLess(error, self.max_error * 2, "Test of cv(rho,T) Function failed")
12670

127-
ref = [
128-
0.150151914e4,
129-
0.153492501e4,
130-
0.244357992e4,
131-
0.548314253e3,
132-
0.535739001e3,
133-
0.127128441e4,
134-
0.241200877e4,
135-
0.252145078e3,
136-
0.724027147e3,
137-
0.698445674e3,
138-
0.201933608e4,
139-
] # w in m / s
140-
141-
res = numpy.zeros(len(ref))
142-
for i, (rho, T) in enumerate(zip(in_rho, in_T)):
71+
res = numpy.zeros(len(R6_95.Table7_w))
72+
for i, (rho, T) in enumerate(zip(R6_95.Table7_rho, R6_95.Table7_T)):
14373
res[i] = IAPWS_R6.R6_w_rhoT(rho, T)
144-
14574
# FIXME
146-
error = numpy.sum(numpy.absolute((res - ref) / ref))
75+
error = numpy.sum(numpy.absolute((res - R6_95.Table7_w) / R6_95.Table7_w))
14776
self.assertLess(error, 5.3e-3, "Test of w(rho,T) Function failed")
14877

149-
ref = [
150-
0.393062643,
151-
0.387405401,
152-
0.132609616,
153-
0.794488271e1,
154-
0.682502725e1,
155-
0.256690919e1,
156-
0.203237509e1,
157-
0.432092307e1,
158-
0.916653194e1,
159-
0.659070225e1,
160-
0.417223802e1,
161-
] # s in kJ / kg K
162-
163-
res = numpy.zeros(len(ref))
164-
for i, (rho, T) in enumerate(zip(in_rho, in_T)):
78+
res = numpy.zeros(len(R6_95.Table7_s))
79+
for i, (rho, T) in enumerate(zip(R6_95.Table7_rho, R6_95.Table7_T)):
16580
res[i] = IAPWS_R6.R6_s_rhoT(rho, T)
166-
167-
error = numpy.sum(numpy.absolute((res - ref) / ref))
81+
error = numpy.sum(numpy.absolute((res - R6_95.Table7_s) / R6_95.Table7_s))
16882
self.assertLess(error, self.max_error * 2, "Test of s(rho,T) Function failed")

0 commit comments

Comments
 (0)