-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfrops_test.a4c
67 lines (55 loc) · 1.2 KB
/
frops_test.a4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(* test via ASCEND of the fluid properties routines implemented in helmholtz.c *)
REQUIRE "atoms.a4l";
REQUIRE "johnpye/thermo_types.a4c";
IMPORT "johnpye/fprops/helmholtz";
MODEL helmholtz_conf;
component IS_A symbol_constant;
component :== 'methane';
END helmholtz_conf;
MODEL fprops_test;
p IS_A pressure;
T IS_A temperature;
rho IS_A mass_density;
h IS_A specific_enthalpy;
u IS_A specific_energy;
a IS_A specific_energy;
s IS_A specific_entropy;
conf IS_A helmholtz_conf;
props1: helmholtz_p(
T, rho : INPUT;
p : OUTPUT;
conf : DATA
);
props2: helmholtz_u(
T, rho : INPUT;
u : OUTPUT;
conf : DATA
);
props3: helmholtz_s(
T, rho : INPUT;
s : OUTPUT;
conf : DATA
);
rho*(h - u) = p;
a = u + T*s;
METHODS
METHOD on_load;
RUN ClearAll;
FIX rho, T;
rho := 39.278 {kg/m^3};
T := 300 {K} + 273.15 {K};
END on_load;
METHOD self_test;
ASSERT abs(p - 10 {MPa}) < 0.001 {MPa};
ASSERT abs(h - 2238.2 {kJ/kg}) < 0.1 {kJ/kg};
END self_test;
METHOD values_2;
RUN on_load;
rho := 74.732 {kg/m^3};
T := 150 {K} + 273.15 {K};
END values_2;
METHOD self_test_2;
ASSERT abs(p - 10 {MPa}) < 0.001 {MPa};
ASSERT abs(h - 1688.5 {kJ/kg}) < 0.1 {kJ/kg};
END self_test_2;
END fprops_test;