iapws-if97 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +113 -0
  3. package/dist/backward/hs.d.ts +16 -0
  4. package/dist/backward/hs.d.ts.map +1 -0
  5. package/dist/backward/hs.js +234 -0
  6. package/dist/backward/hs.js.map +1 -0
  7. package/dist/backward/ph.d.ts +21 -0
  8. package/dist/backward/ph.d.ts.map +1 -0
  9. package/dist/backward/ph.js +231 -0
  10. package/dist/backward/ph.js.map +1 -0
  11. package/dist/backward/ps.d.ts +13 -0
  12. package/dist/backward/ps.d.ts.map +1 -0
  13. package/dist/backward/ps.js +189 -0
  14. package/dist/backward/ps.js.map +1 -0
  15. package/dist/constants.d.ts +65 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +74 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/core/region-detector.d.ts +24 -0
  20. package/dist/core/region-detector.d.ts.map +1 -0
  21. package/dist/core/region-detector.js +409 -0
  22. package/dist/core/region-detector.js.map +1 -0
  23. package/dist/core/solver.d.ts +19 -0
  24. package/dist/core/solver.d.ts.map +1 -0
  25. package/dist/core/solver.js +92 -0
  26. package/dist/core/solver.js.map +1 -0
  27. package/dist/index.d.ts +24 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +28 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/regions/boundaries.d.ts +50 -0
  32. package/dist/regions/boundaries.d.ts.map +1 -0
  33. package/dist/regions/boundaries.js +98 -0
  34. package/dist/regions/boundaries.js.map +1 -0
  35. package/dist/regions/region1.d.ts +18 -0
  36. package/dist/regions/region1.d.ts.map +1 -0
  37. package/dist/regions/region1.js +95 -0
  38. package/dist/regions/region1.js.map +1 -0
  39. package/dist/regions/region2.d.ts +18 -0
  40. package/dist/regions/region2.d.ts.map +1 -0
  41. package/dist/regions/region2.js +134 -0
  42. package/dist/regions/region2.js.map +1 -0
  43. package/dist/regions/region3-data-am.d.ts +19 -0
  44. package/dist/regions/region3-data-am.d.ts.map +1 -0
  45. package/dist/regions/region3-data-am.js +53 -0
  46. package/dist/regions/region3-data-am.js.map +1 -0
  47. package/dist/regions/region3-data-nz.d.ts +18 -0
  48. package/dist/regions/region3-data-nz.d.ts.map +1 -0
  49. package/dist/regions/region3-data-nz.js +53 -0
  50. package/dist/regions/region3-data-nz.js.map +1 -0
  51. package/dist/regions/region3-eval.d.ts +30 -0
  52. package/dist/regions/region3-eval.d.ts.map +1 -0
  53. package/dist/regions/region3-eval.js +25 -0
  54. package/dist/regions/region3-eval.js.map +1 -0
  55. package/dist/regions/region3-subregions.d.ts +5 -0
  56. package/dist/regions/region3-subregions.d.ts.map +1 -0
  57. package/dist/regions/region3-subregions.js +164 -0
  58. package/dist/regions/region3-subregions.js.map +1 -0
  59. package/dist/regions/region3.d.ts +18 -0
  60. package/dist/regions/region3.d.ts.map +1 -0
  61. package/dist/regions/region3.js +112 -0
  62. package/dist/regions/region3.js.map +1 -0
  63. package/dist/regions/region4.d.ts +27 -0
  64. package/dist/regions/region4.d.ts.map +1 -0
  65. package/dist/regions/region4.js +62 -0
  66. package/dist/regions/region4.js.map +1 -0
  67. package/dist/regions/region5.d.ts +18 -0
  68. package/dist/regions/region5.d.ts.map +1 -0
  69. package/dist/regions/region5.js +92 -0
  70. package/dist/regions/region5.js.map +1 -0
  71. package/dist/saturation/common.d.ts +12 -0
  72. package/dist/saturation/common.d.ts.map +1 -0
  73. package/dist/saturation/common.js +75 -0
  74. package/dist/saturation/common.js.map +1 -0
  75. package/dist/saturation/two-phase.d.ts +22 -0
  76. package/dist/saturation/two-phase.d.ts.map +1 -0
  77. package/dist/saturation/two-phase.js +44 -0
  78. package/dist/saturation/two-phase.js.map +1 -0
  79. package/dist/solvers/nelder-mead.d.ts +21 -0
  80. package/dist/solvers/nelder-mead.d.ts.map +1 -0
  81. package/dist/solvers/nelder-mead.js +99 -0
  82. package/dist/solvers/nelder-mead.js.map +1 -0
  83. package/dist/solvers/newton-raphson.d.ts +25 -0
  84. package/dist/solvers/newton-raphson.d.ts.map +1 -0
  85. package/dist/solvers/newton-raphson.js +44 -0
  86. package/dist/solvers/newton-raphson.js.map +1 -0
  87. package/dist/transport/properties.d.ts +47 -0
  88. package/dist/transport/properties.d.ts.map +1 -0
  89. package/dist/transport/properties.js +205 -0
  90. package/dist/transport/properties.js.map +1 -0
  91. package/dist/types.d.ts +161 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +56 -0
  94. package/dist/types.js.map +1 -0
  95. package/package.json +62 -0
@@ -0,0 +1,231 @@
1
+ /**
2
+ * IAPWS-IF97 Backward Equations: P-H → T, v
3
+ *
4
+ * Given pressure and specific enthalpy, compute temperature (and volume for R3).
5
+ * Uses backward equations for initial guess + Newton-Raphson refinement.
6
+ *
7
+ * Reference: IAPWS-IF97 Supplementary Release on Backward Equations
8
+ */
9
+ import { Region, IF97Error } from '../types.js';
10
+ import * as C from '../constants.js';
11
+ import { region1 } from '../regions/region1.js';
12
+ import { region2 } from '../regions/region2.js';
13
+ import { region3ByRhoT } from '../regions/region3.js';
14
+ import { region5 } from '../regions/region5.js';
15
+ import { saturationTemperature } from '../regions/region4.js';
16
+ import { detectRegionPH } from '../core/region-detector.js';
17
+ import { newtonRaphson } from '../solvers/newton-raphson.js';
18
+ import { nelderMead } from '../solvers/nelder-mead.js';
19
+ import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtPressure, } from '../saturation/common.js';
20
+ // ─── Backward Polynomial Evaluator ─────────────────────────────────────────
21
+ function evalPoly(table, piShift, etaShift, pi, eta) {
22
+ let sum = 0;
23
+ for (const [I, J, N] of table) {
24
+ sum += N * Math.pow(pi - piShift, I) * Math.pow(eta - etaShift, J);
25
+ }
26
+ return sum;
27
+ }
28
+ // ─── Region 1 Backward T(P,H) — Eq. 11 ────────────────────────────────────
29
+ const R1_PH = [
30
+ [0, 0, -238.72489924521], [0, 1, 404.21188637945], [0, 2, 113.49746881718], [0, 6, -5.8457616048039],
31
+ [0, 22, -0.0001528548241314], [0, 32, -1.0866707695377e-6], [1, 0, -13.391744872602], [1, 1, 43.211039183559],
32
+ [1, 2, -54.010067170506], [1, 3, 30.535892203916], [1, 4, -6.5964749423638], [1, 10, 0.0093965400878363],
33
+ [1, 32, 1.157364750534e-7], [2, 10, -0.000025858641282073], [2, 32, -4.0644363084799e-9],
34
+ [3, 10, 6.6456186191635e-8], [3, 32, 8.0670734103027e-11], [4, 32, -9.3477771213947e-13],
35
+ [5, 32, 5.8265442020601e-15], [6, 32, -1.5020185953503e-17],
36
+ ];
37
+ function r1BackwardT(p, h) {
38
+ return evalPoly(R1_PH, 0, -1, p, h / 2500);
39
+ }
40
+ // ─── Region 2 Backward T(P,H) ─────────────────────────────────────────────
41
+ // B2bc boundary (exported for future use)
42
+ export function b2bc_H_P(h) {
43
+ return 0.90584278514723e-3 - 0.67955786399241 * h + 0.12809002730136e-3 * h * h;
44
+ }
45
+ // Subregion 2a — Eq. 22
46
+ const R2A_PH = [
47
+ [0, 0, 1089.8952318288], [0, 1, 849.51654495535], [0, 2, -107.81748091826], [0, 3, 33.153654801263],
48
+ [0, 7, -7.4232016790248], [0, 20, 11.765048724356], [1, 0, 1.844574935579], [1, 1, -4.1792700549624],
49
+ [1, 2, 6.2478196935812], [1, 3, -17.344563108114], [1, 7, -200.58176862096], [1, 9, 271.96065473796],
50
+ [1, 11, -455.11318285818], [1, 18, 3091.9688604755], [1, 44, 252266.40357872], [2, 0, -0.0061707422868339],
51
+ [2, 2, -0.31078046629583], [2, 7, 11.670873077107], [2, 36, 128127984.04046], [2, 38, -985549096.23276],
52
+ [2, 40, 2822454697.3002], [2, 42, -3594897141.0703], [2, 44, 1722734991.3197], [3, 24, -13551.334240775],
53
+ [3, 44, 12848734.66465], [4, 12, 1.3865724283226], [4, 32, 235988.32556514], [4, 44, -13105236.545054],
54
+ [5, 32, 7399.9835474766], [5, 36, -551966.9703006], [5, 42, 3715408.5996233], [6, 34, 19127.7292396],
55
+ [6, 44, -415351.64835634], [7, 28, -62.459855192507],
56
+ ];
57
+ function r2aBackwardT(p, h) {
58
+ return evalPoly(R2A_PH, 0, 2.1, p, h / 2000);
59
+ }
60
+ // Subregion 2b — Eq. 23
61
+ const R2B_PH = [
62
+ [0, 0, 1489.5041079516], [0, 1, 743.07798314034], [0, 2, -97.708318797837], [0, 12, 2.4742464705674],
63
+ [0, 18, -0.63281320016026], [0, 24, 1.1385952129658], [0, 28, -0.47811863648625], [0, 40, 0.0085208123431544],
64
+ [1, 0, 0.93747147377932], [1, 2, 3.3593118604916], [1, 6, 3.3809355601454], [1, 12, 0.16844539671904],
65
+ [1, 18, 0.73875745236695], [1, 24, -0.47128737436186], [1, 28, 0.15020273139707], [1, 40, -0.002176411421975],
66
+ [2, 2, -0.021810755324761], [2, 8, -0.10829784403677], [2, 18, -0.046333324635812], [2, 40, 0.000071280351959551],
67
+ [3, 1, 0.00011032831789999], [3, 2, 0.00018955248387902], [3, 12, 0.0030891541160537], [3, 24, 0.0013555504554949],
68
+ [4, 2, 2.8640237477456e-7], [4, 12, -0.000010779857357512], [4, 18, -0.000076462712454814],
69
+ [4, 24, 0.000014052392818316], [4, 28, -0.000031083814331434], [4, 40, -1.0302738212103e-6],
70
+ [5, 18, 2.821728163504e-7], [5, 24, 1.2704902271945e-6], [5, 40, 7.3803353468292e-8],
71
+ [6, 28, -1.1030139238909e-8], [7, 2, -8.1456365207833e-14], [7, 28, -2.5180545682962e-11],
72
+ [9, 1, -1.7565233969407e-18], [9, 40, 8.6934156344163e-15],
73
+ ];
74
+ function r2bBackwardT(p, h) {
75
+ return evalPoly(R2B_PH, 2, 2.6, p, h / 2000);
76
+ }
77
+ // Subregion 2c — Eq. 24
78
+ const R2C_PH = [
79
+ [-7, 0, -3236839855524.2], [-7, 4, 7326335090218.1], [-6, 0, 358250899454.47], [-6, 2, -583401318515.9],
80
+ [-5, 0, -10783068217.47], [-5, 2, 20825544563.171], [-2, 0, 610747.83564516], [-2, 1, 859777.2253558],
81
+ [-1, 0, -25745.72360417], [-1, 2, 31081.088422714], [0, 0, 1208.2315865936], [0, 1, 482.19755109255],
82
+ [1, 4, 3.7966001272486], [1, 8, -10.842984880077], [2, 4, -0.04536417267666],
83
+ [6, 0, 1.4559115658698e-13], [6, 1, 1.126159740723e-12], [6, 4, -1.7804982240686e-11],
84
+ [6, 10, 1.2324579690832e-7], [6, 12, -1.1606921130984e-6], [6, 16, 0.000027846367088554],
85
+ [6, 20, -0.00059270038474176], [6, 22, 0.0012918582991878],
86
+ ];
87
+ function r2cBackwardT(p, h) {
88
+ return evalPoly(R2C_PH, -25, 1.8, p, h / 2000);
89
+ }
90
+ function r2BackwardT(p, h) {
91
+ let T;
92
+ if (p <= C.R2_P_CRT) {
93
+ T = r2aBackwardT(p, h);
94
+ }
95
+ else if (p <= 6.546699678) {
96
+ T = r2bBackwardT(p, h);
97
+ }
98
+ else {
99
+ if (p < 905.84278514723 - 0.67955786399241 * h + 1.2809002730136e-4 * h * h) {
100
+ T = r2bBackwardT(p, h);
101
+ }
102
+ else {
103
+ T = r2cBackwardT(p, h);
104
+ }
105
+ }
106
+ if (p <= C.Pc) {
107
+ T = Math.max(saturationTemperature(p), T);
108
+ }
109
+ return T;
110
+ }
111
+ // ─── Region 3 Backward T(P,H) and v(P,H) ──────────────────────────────────
112
+ /** B3ab boundary: P → H */
113
+ export function b3ab_P_to_H(p) {
114
+ return 2014.64004206875 + 3.74696550136983 * p - 0.0219921901054187 * p * p + 0.000087513168600995 * p * p * p;
115
+ }
116
+ const R3A_PH_T = [
117
+ [-12, 0, -1.33645667811215e-7], [-12, 1, 4.55912656802978e-6], [-12, 2, -1.46294640700979e-5],
118
+ [-12, 6, 0.0063934131297008], [-12, 14, 372.783927268847], [-12, 16, -7186.54377460447],
119
+ [-12, 20, 573494.7521034], [-12, 22, -2675693.29111439], [-10, 1, -3.34066283302614e-5],
120
+ [-10, 5, -0.0245479214069597], [-10, 12, 47.8087847764996], [-8, 0, 7.64664131818904e-6],
121
+ [-8, 2, 0.00128350627676972], [-8, 4, 0.0171219081377331], [-8, 10, -8.51007304583213],
122
+ [-5, 2, -0.0136513461629781], [-3, 0, -3.84460997596657e-6], [-2, 1, 0.00337423807911655],
123
+ [-2, 3, -0.551624873066791], [-2, 4, 0.72920227710747], [-1, 0, -0.00992522757376041],
124
+ [-1, 2, -0.119308831407288], [0, 0, 0.793929190615421], [0, 1, 0.454270731799386],
125
+ [1, 1, 0.20999859125991], [3, 0, -0.00642109823904738], [3, 1, -0.023515586860454],
126
+ [4, 0, 0.00252233108341612], [4, 3, -0.00764885133368119], [10, 4, 0.0136176427574291],
127
+ [12, 5, -0.0133027883575669],
128
+ ];
129
+ const R3A_PH_V = [
130
+ [-12, 6, 0.00529944062966028], [-12, 8, -0.170099690234461], [-12, 12, 11.1323814312927],
131
+ [-12, 18, -2178.98123145125], [-10, 4, -0.000506061827980875], [-10, 7, 0.556495239685324],
132
+ [-10, 10, -9.43672726094016], [-8, 5, -0.297856807561527], [-8, 12, 93.9353943717186],
133
+ [-6, 3, 0.0192944939465981], [-6, 4, 0.421740664704763], [-6, 22, -3689141.2628233],
134
+ [-4, 2, -0.00737566847600639], [-4, 3, -0.354753242424366], [-3, 7, -1.99768169338727],
135
+ [-2, 3, 1.15456297059049], [-2, 16, 5683.6687581596], [-1, 0, 0.00808169540124668],
136
+ [-1, 1, 0.172416341519307], [-1, 2, 1.04270175292927], [-1, 3, -0.297691372792847],
137
+ [0, 0, 0.560394465163593], [0, 1, 0.275234661176914], [1, 0, -0.148347894866012],
138
+ [1, 1, -0.0651142513478515], [1, 2, -2.92468715386302], [2, 0, 0.0664876096952665],
139
+ [2, 2, 3.52335014263844], [3, 0, -0.0146340792313332], [4, 2, -2.24503486668184],
140
+ [5, 2, 1.10533464706142], [8, 2, -0.0408757344495612],
141
+ ];
142
+ const R3B_PH_T = [
143
+ [-12, 0, 0.000032325457364492], [-12, 1, -0.000127575556587181], [-10, 0, -0.000475851877356068],
144
+ [-10, 1, 0.00156183014181602], [-10, 5, 0.105724860113781], [-10, 10, -85.8514221132534],
145
+ [-10, 12, 724.140095480911], [-8, 0, 0.00296475810273257], [-8, 1, -0.00592721983365988],
146
+ [-8, 2, -0.0126305422818666], [-8, 4, -0.115716196364853], [-8, 10, 84.9000969739595],
147
+ [-6, 0, -0.0108602260086615], [-6, 1, 0.0154304475328851], [-6, 2, 0.0750455441524466],
148
+ [-4, 0, 0.0252520973612982], [-4, 1, -0.0602507901232996], [-3, 5, -3.07622221350501],
149
+ [-2, 0, -0.0574011959864879], [-2, 4, 5.03471360939849], [-1, 2, -0.925081888584834],
150
+ [-1, 4, 3.91733882917546], [-1, 6, -77.314600713019], [-1, 10, 9493.08762098587],
151
+ [-1, 14, -1410437.19679409], [-1, 16, 8491662.30819026], [0, 0, 0.861095729446704],
152
+ [0, 2, 0.32334644281172], [1, 1, 0.873281936020439], [3, 1, -0.436653048526683],
153
+ [5, 1, 0.286596714529479], [6, 1, -0.131778331276228], [8, 1, 0.00676682064330275],
154
+ ];
155
+ const R3B_PH_V = [
156
+ [-12, 0, -2.25196934336318e-9], [-12, 1, 1.40674363313486e-8], [-8, 0, 2.3378408528056e-6],
157
+ [-8, 1, -3.31833715229001e-5], [-8, 3, 0.00107956778514318], [-8, 6, -0.271382067378863],
158
+ [-8, 7, 1.07202262490333], [-8, 8, -0.853821329075382], [-6, 0, -2.15214194340526e-5],
159
+ [-6, 1, 0.00076965608822273], [-6, 2, -0.00431136580433864], [-6, 5, 0.453342167309331],
160
+ [-6, 6, -0.507749535873652], [-6, 10, -100.475154528389], [-4, 3, -0.219201924648793],
161
+ [-4, 6, -3.21087965668917], [-4, 10, 607.567815637771], [-3, 0, 0.000557686450685932],
162
+ [-3, 2, 0.18749904002955], [-2, 1, 0.00905368030448107], [-2, 2, 0.285417173048685],
163
+ [-1, 0, 0.0329924030996098], [-1, 1, 0.239897419685483], [-1, 4, 4.82754995951394],
164
+ [-1, 5, -11.8035753702231], [0, 0, 0.169490044091791], [1, 0, -0.0179967222507787],
165
+ [1, 1, 0.0371810116332674], [2, 2, -0.0536288335065096], [2, 6, 1.6069710109252],
166
+ ];
167
+ // R4: saturation pressure boundary from enthalpy
168
+ const R4_H_PSAT = [
169
+ [0, 0, 0.600073641753024], [1, 1, -9.36203654849857], [1, 3, 24.6590798594147],
170
+ [1, 4, -107.014222858224], [1, 36, -9.15821315805768e13], [5, 3, -8625.32011700662],
171
+ [7, 0, -23.5837344740032], [8, 24, 2.52304969384128e17], [14, 16, -3.89718771997719e18],
172
+ [20, 16, -3.33775713645296e22], [22, 3, 3.56499469636328e10], [24, 18, -1.48547544720641e26],
173
+ [28, 8, 3.30611514838798e18], [36, 24, 8.13641294467829e37],
174
+ ];
175
+ /** R4: enthalpy → saturation pressure for PH boundary detection */
176
+ export function r4EnthalpyToPsat(h) {
177
+ const mu = h / 2600;
178
+ let p = 0;
179
+ for (const [I, J, N] of R4_H_PSAT) {
180
+ p += N * Math.pow(mu - 1.02, I) * Math.pow(mu - 0.608, J);
181
+ }
182
+ return 22 * p;
183
+ }
184
+ // ─── Main PH Solver ────────────────────────────────────────────────────────
185
+ /**
186
+ * Solve for thermodynamic state given P and H.
187
+ * @param p - Pressure [MPa]
188
+ * @param h - Specific enthalpy [kJ/kg]
189
+ */
190
+ export function solvePH(p, h) {
191
+ const region = detectRegionPH(p, h);
192
+ switch (region) {
193
+ case Region.Region1: {
194
+ const T0 = r1BackwardT(p, h);
195
+ const T = newtonRaphson((T_x) => region1(p, T_x).enthalpy - h, T0);
196
+ return region1(p, T);
197
+ }
198
+ case Region.Region2: {
199
+ const T0 = r2BackwardT(p, h);
200
+ const T = newtonRaphson((T_x) => region2(p, T_x).enthalpy - h, T0);
201
+ return region2(p, T);
202
+ }
203
+ case Region.Region3: {
204
+ const hBound = b3ab_P_to_H(p);
205
+ let T0, v0;
206
+ if (h < hBound) {
207
+ T0 = 760 * evalPoly(R3A_PH_T, -0.240, 0.615, p / 100, h / 2300);
208
+ v0 = 0.0028 * evalPoly(R3A_PH_V, -0.128, 0.727, p / 100, h / 2100);
209
+ }
210
+ else {
211
+ T0 = 860 * evalPoly(R3B_PH_T, -0.298, 0.720, p / 100, h / 2800);
212
+ v0 = 0.0088 * evalPoly(R3B_PH_V, -0.0661, 0.720, p / 100, h / 2800);
213
+ }
214
+ const sol = nelderMead((pair) => Math.abs(region3ByRhoT(1 / pair[0], pair[1]).enthalpy - h) +
215
+ Math.abs(region3ByRhoT(1 / pair[0], pair[1]).pressure - p), [v0, T0]);
216
+ return region3ByRhoT(1 / sol.x[0], sol.x[1]);
217
+ }
218
+ case Region.Region4: {
219
+ const endpoints = saturationEndpointsAtPressure(p);
220
+ const x = qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h);
221
+ return mixSaturationState(endpoints, x);
222
+ }
223
+ case Region.Region5: {
224
+ const T = newtonRaphson((T_x) => region5(p, T_x).enthalpy - h, 1500);
225
+ return region5(p, T);
226
+ }
227
+ default:
228
+ throw new IF97Error(`Cannot determine region for P=${p} MPa, h=${h} kJ/kg`);
229
+ }
230
+ }
231
+ //# sourceMappingURL=ph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ph.js","sourceRoot":"","sources":["../../src/backward/ph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * IAPWS-IF97 Backward Equations: P-S → T, v
3
+ *
4
+ * Reference: IAPWS-IF97 Supplementary Release on Backward Equations
5
+ */
6
+ import type { BasicProperties } from '../types.js';
7
+ /**
8
+ * Solve for thermodynamic state given P and S.
9
+ * @param p - Pressure [MPa]
10
+ * @param s - Specific entropy [kJ/(kg·K)]
11
+ */
12
+ export declare function solvePS(p: number, s: number): BasicProperties;
13
+ //# sourceMappingURL=ps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/backward/ps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AA8JrE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA8C7D"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * IAPWS-IF97 Backward Equations: P-S → T, v
3
+ *
4
+ * Reference: IAPWS-IF97 Supplementary Release on Backward Equations
5
+ */
6
+ import { Region, IF97Error } from '../types.js';
7
+ import * as C from '../constants.js';
8
+ import { region1 } from '../regions/region1.js';
9
+ import { region2 } from '../regions/region2.js';
10
+ import { region3ByRhoT } from '../regions/region3.js';
11
+ import { region5 } from '../regions/region5.js';
12
+ import { detectRegionPS } from '../core/region-detector.js';
13
+ import { newtonRaphson } from '../solvers/newton-raphson.js';
14
+ import { nelderMead } from '../solvers/nelder-mead.js';
15
+ import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtPressure, } from '../saturation/common.js';
16
+ function evalPoly(table, piShift, sigShift, pi, sig) {
17
+ let sum = 0;
18
+ for (const [I, J, N] of table)
19
+ sum += N * Math.pow(pi - piShift, I) * Math.pow(sig - sigShift, J);
20
+ return sum;
21
+ }
22
+ // ─── Region 1 Backward T(P,S) ──────────────────────────────────────────────
23
+ const R1_PS = [
24
+ [0, 0, 174.78268058307], [0, 1, 34.806930892873], [0, 2, 6.5292584978455], [0, 3, 0.33039981775489],
25
+ [0, 11, -1.9281382923196e-7], [0, 31, -2.4909197244573e-23], [1, 0, -0.26107636489332],
26
+ [1, 1, 0.22592965981586], [1, 2, -0.064256463395226], [1, 3, 0.0078876289270526],
27
+ [1, 12, 3.5672110607366e-10], [1, 31, 1.7332496994895e-24], [2, 0, 0.00056608900654837],
28
+ [2, 1, -0.00032635483139717], [2, 2, 0.000044778286690632], [2, 9, -5.1322156908507e-10],
29
+ [2, 31, -4.2522657042207e-26], [3, 10, 2.6400441360689e-13], [3, 32, 7.8124600459723e-29],
30
+ [4, 32, -3.0732199903668e-31],
31
+ ];
32
+ function r1BackwardT(p, s) {
33
+ return evalPoly(R1_PS, 0, -2, p, s);
34
+ }
35
+ // ─── Region 2 Backward T(P,S) — Subregions 2a/2b/2c ───────────────────────
36
+ const R2A_PS = [
37
+ [-1.5, -24, -392359.83861984], [-1.5, -23, 515265.7382727], [-1.5, -19, 40482.443161048],
38
+ [-1.5, -13, -321.93790923902], [-1.5, -11, 96.961424218694], [-1.5, -10, -22.867846371773],
39
+ [-1.25, -19, -449429.14124357], [-1.25, -15, -5011.8336020166], [-1.25, -6, 0.35684463560015],
40
+ [-1, -26, 44235.33584819], [-1, -21, -13673.388811708], [-1, -17, 421632.6027864],
41
+ [-1, -16, 22516.925837475], [-1, -9, 474.42144865646], [-1, -8, -149.31130797647],
42
+ [-0.75, -15, -197811.26320452], [-0.75, -14, -23554.39947076], [-0.5, -26, -19070.616302076],
43
+ [-0.5, -13, 55375.669883164], [-0.5, -9, 3829.3691437363], [-0.5, -7, -603.91860580567],
44
+ [-0.25, -27, 1936.3102620331], [-0.25, -25, 4266.064369861], [-0.25, -11, -5978.0638872718],
45
+ [-0.25, -6, -704.01463926862], [0.25, 1, 338.36784107553], [0.25, 4, 20.862786635187],
46
+ [0.25, 8, 0.033834172656196], [0.25, 11, -0.000043124428414893], [0.5, 0, 166.53791356412],
47
+ [0.5, 1, -139.86292055898], [0.5, 5, -0.78849547999872], [0.5, 6, 0.072132411753872],
48
+ [0.5, 10, -0.0059754839398283], [0.5, 14, -0.000012141358953904], [0.5, 16, 2.3227096733871e-7],
49
+ [0.75, 0, -10.538463566194], [0.75, 4, 2.0718925496502], [0.75, 9, -0.072193155260427],
50
+ [0.75, 17, 2.074988708112e-7], [1, 7, -0.018340657911379], [1, 18, 2.9036272348696e-7],
51
+ [1.25, 3, 0.21037527893619], [1.25, 15, 0.00025681239729999], [1.5, 5, -0.012799002933781],
52
+ [1.5, 18, -8.2198102652018e-6],
53
+ ];
54
+ const R2B_PS = [
55
+ [-6, 0, 316876.65083497], [-6, 11, 20.864175881858], [-5, 0, -398593.99803599],
56
+ [-5, 11, -21.816058518877], [-4, 0, 223697.85194242], [-4, 1, -2784.1703445817],
57
+ [-4, 11, 9.920743607148], [-3, 0, -75197.512299157], [-3, 1, 2970.8605951158],
58
+ [-3, 11, -3.4406878548526], [-3, 12, 0.38815564249115], [-2, 0, 17511.29508575],
59
+ [-2, 1, -1423.7112854449], [-2, 6, 1.0943803364167], [-2, 10, 0.89971619308495],
60
+ [-1, 0, -3375.9740098958], [-1, 1, 471.62885818355], [-1, 5, -1.9188241993679],
61
+ [-1, 8, 0.41078580492196], [-1, 9, -0.33465378172097], [0, 0, 1387.0034777505],
62
+ [0, 1, -406.63326195838], [0, 2, 41.72734715961], [0, 4, 2.1932549434532],
63
+ [0, 5, -1.0320050009077], [0, 6, 0.35882943516703], [0, 9, 0.0052511453726066],
64
+ [1, 0, 12.838916450705], [1, 1, -2.8642437219381], [1, 2, 0.56912683664855],
65
+ [1, 3, -0.099962954584931], [1, 7, -0.0032632037778459], [1, 8, 0.00023320922576723],
66
+ [2, 0, -0.1533480985745], [2, 1, 0.029072288239902], [2, 5, 0.00037534702741167],
67
+ [3, 0, 0.0017296691702411], [3, 1, -0.00038556050844504], [3, 3, -0.000035017712292608],
68
+ [4, 0, -0.000014566393631492], [4, 1, 5.6420857267269e-6], [5, 0, 4.1286150074605e-8],
69
+ [5, 1, -2.0684671118824e-8], [5, 2, 1.6409393674725e-9],
70
+ ];
71
+ const R2C_PS = [
72
+ [-2, 0, 909.68501005365], [-2, 1, 2404.566708842], [-1, 0, -591.6232638713],
73
+ [0, 0, 541.45404128074], [0, 1, -270.98308411192], [0, 2, 979.76525097926],
74
+ [0, 3, -469.66772959435], [1, 0, 14.399274604723], [1, 1, -19.104204230429],
75
+ [1, 3, 5.3299167111971], [1, 4, -21.252975375934], [2, 0, -0.3114733441376],
76
+ [2, 1, 0.60334840894623], [2, 2, -0.042764839702509], [3, 0, 0.0058185597255259],
77
+ [3, 1, -0.014597008284753], [3, 5, 0.0056631175631027], [4, 0, -0.000076155864584577],
78
+ [4, 1, 0.00022440342919332], [4, 4, -0.000012561095013413], [5, 0, 6.3323132660934e-7],
79
+ [5, 1, -2.0541989675375e-6], [5, 2, 3.6405370390082e-8], [6, 0, -2.9759897789215e-9],
80
+ [6, 1, 1.0136618529763e-8], [7, 0, 5.9925719692351e-12], [7, 1, -2.0677870105164e-11],
81
+ [7, 3, -2.0874278181886e-11], [7, 4, 1.0162166825089e-10], [7, 5, -1.6429828281347e-10],
82
+ ];
83
+ function r2BackwardT(p, s) {
84
+ if (p <= C.R2_P_CRT) {
85
+ return evalPoly(R2A_PS, 0, 2, p, s / 2);
86
+ }
87
+ if (s >= C.R2_S_CRT) {
88
+ return evalPoly(R2B_PS, 0, 10, p, s / 0.7853);
89
+ }
90
+ return evalPoly(R2C_PS, 0, 2, p, s / 2.9251);
91
+ }
92
+ // ─── Region 3 Backward T(P,S) and v(P,S) ──────────────────────────────────
93
+ const R3A_PS_T_TABLE = [
94
+ [-12, 28, 1500420082.63875], [-12, 32, -159397258480.424], [-10, 4, 5.02181140217975e-4],
95
+ [-10, 10, -67.2057767855466], [-10, 12, 1450.58545404456], [-10, 14, -8238.8953488889],
96
+ [-8, 5, -0.154852214233853], [-8, 7, 11.2305046746695], [-8, 8, -29.7000213482822],
97
+ [-8, 28, 43856513263.5495], [-6, 2, 0.00137837838635464], [-6, 6, -2.97478527157462],
98
+ [-6, 32, 9717779473494.13], [-5, 0, -5.71527767052398e-5], [-5, 14, 28830.794977842],
99
+ [-5, 32, -74442828926270.3], [-4, 6, 12.8017324848921], [-4, 10, -368.275545889071],
100
+ [-4, 36, 6647689047791770], [-2, 1, 0.044935925195888], [-2, 4, -4.22897836099655],
101
+ [-1, 1, -0.240614376434179], [-1, 6, -4.74341365254924], [0, 0, 0.72409399912611],
102
+ [0, 1, 0.923874349695897], [0, 4, 3.99043655281015], [1, 0, 0.0384066651868009],
103
+ [2, 0, -0.00359344365571848], [2, 3, -0.735196448821653], [3, 2, 0.188367048396131],
104
+ [8, 0, 0.000141064266818704], [8, 1, -0.00257418501496337], [10, 2, 0.00123220024851555],
105
+ ];
106
+ const R3A_PS_V_TABLE = [
107
+ [-12, 10, 79.5544074093975], [-12, 12, -2382.6124298459], [-12, 14, 17681.3100617787],
108
+ [-10, 4, -0.00110524727080379], [-10, 8, -15.3213833655326], [-10, 10, 297.544599376982],
109
+ [-10, 20, -35031520.6871242], [-8, 5, 0.277513761062119], [-8, 6, -0.523964271036888],
110
+ [-8, 14, -148011.182995403], [-8, 16, 1600148.99374266], [-6, 28, 1708023226634.27],
111
+ [-5, 1, 0.000246866996006494], [-4, 5, 1.6532608479798], [-3, 2, -0.118008384666987],
112
+ [-3, 4, 2.537986423559], [-2, 3, 0.965127704669424], [-2, 8, -28.2172420532826],
113
+ [-1, 1, 0.203224612353823], [-1, 2, 1.10648186063513], [0, 0, 0.52612794845128],
114
+ [0, 1, 0.277000018736321], [0, 3, 1.08153340501132], [1, 0, -0.0744127885357893],
115
+ [2, 0, 0.0164094443541384], [4, 2, -0.0680468275301065], [5, 2, 0.025798857610164],
116
+ [6, 0, -0.000145749861944416],
117
+ ];
118
+ const R3B_PS_T_TABLE = [
119
+ [-12, 1, 0.52711170160166], [-12, 3, -40.1317830052742], [-12, 4, 153.020073134484],
120
+ [-12, 7, -2247.99398218827], [-8, 0, -0.193993484669048], [-8, 1, -1.40467557893768],
121
+ [-8, 3, 42.6799878114024], [-6, 0, 0.752810643416743], [-6, 2, 22.6657238616417],
122
+ [-6, 4, -622.873556909932], [-5, 0, -0.660823667935396], [-5, 1, 0.841267087271658],
123
+ [-5, 2, -25.3717501764397], [-5, 4, 485.708963532948], [-5, 6, 880.531517490555],
124
+ [-4, 12, 2650155.92794626], [-3, 1, -0.359287150025783], [-3, 6, -656.991567673753],
125
+ [-2, 2, 2.41768149185367], [0, 0, 0.856873461222588], [2, 1, 0.655143675313458],
126
+ [3, 1, -0.213535213206406], [4, 0, 0.00562974957606348], [5, 24, -316955725450471.0],
127
+ [6, 0, -0.000699997000152457], [8, 3, 0.0119845803210767], [12, 1, 1.93848122022095e-5],
128
+ [14, 2, -2.15095749182309e-5],
129
+ ];
130
+ const R3B_PS_V_TABLE = [
131
+ [-12, 0, 5.91599780322238e-5], [-12, 1, -0.00185465997137856], [-12, 2, 0.0104190510480013],
132
+ [-12, 3, 0.0059864730203859], [-12, 5, -0.771391189901699], [-12, 6, 1.72549765557036],
133
+ [-10, 0, -0.000467076079846526], [-10, 1, 0.0134533823384439], [-10, 2, -0.0808094336805495],
134
+ [-10, 4, 0.508139374365767], [-8, 0, 0.00128584643361683], [-5, 1, -1.63899353915435],
135
+ [-5, 2, 5.86938199318063], [-5, 3, -2.92466667918613], [-4, 0, -0.00614076301499537],
136
+ [-4, 1, 5.76199014049172], [-4, 2, -12.1613320606788], [-4, 3, 1.67637540957944],
137
+ [-3, 1, -7.44135838773463], [-2, 0, 0.0378168091437659], [-2, 1, 4.01432203027688],
138
+ [-2, 2, 16.0279837479185], [-2, 3, 3.17848779347728], [-2, 4, -3.58362310304853],
139
+ [-2, 12, -1159952.60446827], [0, 0, 0.199256573577909], [0, 1, -0.122270624794624],
140
+ [0, 2, -19.1449143716586], [1, 0, -0.0150448002905284], [1, 2, 14.6407900162154],
141
+ [2, 2, -3.2747778718823],
142
+ ];
143
+ // ─── Main PS Solver ────────────────────────────────────────────────────────
144
+ /**
145
+ * Solve for thermodynamic state given P and S.
146
+ * @param p - Pressure [MPa]
147
+ * @param s - Specific entropy [kJ/(kg·K)]
148
+ */
149
+ export function solvePS(p, s) {
150
+ const region = detectRegionPS(p, s);
151
+ switch (region) {
152
+ case Region.Region1: {
153
+ const T0 = r1BackwardT(p, s);
154
+ const T = newtonRaphson((T_x) => region1(p, T_x).entropy - s, T0);
155
+ return region1(p, T);
156
+ }
157
+ case Region.Region2: {
158
+ const T0 = r2BackwardT(p, s);
159
+ const T = newtonRaphson((T_x) => region2(p, T_x).entropy - s, T0);
160
+ return region2(p, T);
161
+ }
162
+ case Region.Region3: {
163
+ let T0, v0;
164
+ if (s <= C.R3_S_CRT) {
165
+ T0 = 760 * evalPoly(R3A_PS_T_TABLE, -0.240, 0.703, p / 100, s / 4.4);
166
+ v0 = 0.0028 * evalPoly(R3A_PS_V_TABLE, -0.187, 0.755, p / 100, s / 4.4);
167
+ }
168
+ else {
169
+ T0 = 860 * evalPoly(R3B_PS_T_TABLE, -0.760, 0.818, p / 100, s / 5.3);
170
+ v0 = 0.0088 * evalPoly(R3B_PS_V_TABLE, -0.298, 0.816, p / 100, s / 5.3);
171
+ }
172
+ const sol = nelderMead((pair) => Math.abs(region3ByRhoT(1 / pair[0], pair[1]).entropy - s) +
173
+ Math.abs(region3ByRhoT(1 / pair[0], pair[1]).pressure - p), [v0, T0]);
174
+ return region3ByRhoT(1 / sol.x[0], sol.x[1]);
175
+ }
176
+ case Region.Region4: {
177
+ const endpoints = saturationEndpointsAtPressure(p);
178
+ const x = qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s);
179
+ return mixSaturationState(endpoints, x);
180
+ }
181
+ case Region.Region5: {
182
+ const T = newtonRaphson((T_x) => region5(p, T_x).entropy - s, 1500);
183
+ return region5(p, T);
184
+ }
185
+ default:
186
+ throw new IF97Error(`Cannot determine region for P=${p} MPa, s=${s} kJ/(kg·K)`);
187
+ }
188
+ }
189
+ //# sourceMappingURL=ps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/backward/ps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * IAPWS-IF97 Constants
3
+ *
4
+ * Physical constants, critical point properties, and range limits
5
+ * for the IAPWS Industrial Formulation 1997.
6
+ */
7
+ /** Specific gas constant for water [kJ/(kg·K)] */
8
+ export declare const R = 0.461526;
9
+ /** Critical temperature [K] */
10
+ export declare const Tc = 647.096;
11
+ /** Critical pressure [MPa] */
12
+ export declare const Pc = 22.064;
13
+ /** Critical density [kg/m³] */
14
+ export declare const RHOc = 322;
15
+ /** Triple point pressure [MPa] */
16
+ export declare const Pt = 0.000611657;
17
+ /** Minimum pressure [MPa] */
18
+ export declare const P_MIN = 0.000611212677444;
19
+ /** Maximum pressure [MPa] */
20
+ export declare const P_MAX = 100;
21
+ /** Minimum temperature [K] (273.15 K = 0 °C) */
22
+ export declare const T_MIN = 273.15;
23
+ /** Maximum temperature [K] (2273.15 K = 2000 °C) */
24
+ export declare const T_MAX = 2273.15;
25
+ /** Minimum specific entropy [kJ/(kg·K)] */
26
+ export declare const S_MIN = -0.00015454959194;
27
+ /** Maximum specific entropy [kJ/(kg·K)] */
28
+ export declare const S_MAX = 8.668866265157533;
29
+ /** Minimum specific enthalpy [kJ/kg] */
30
+ export declare const H_MIN = -0.041587825987;
31
+ /** Maximum specific enthalpy [kJ/kg] */
32
+ export declare const H_MAX = 7365.802234015646;
33
+ /** Region 2 minimum temperature for high-P subregions [K] (623.15 K = 350 °C) */
34
+ export declare const R2_T_MIN = 623.15;
35
+ /** Region 2 maximum temperature for backward eqs [K] (1073.15 K = 800 °C) */
36
+ export declare const R2_T_MAX = 1073.15;
37
+ /** Region 2 critical entropy boundary [kJ/(kg·K)] */
38
+ export declare const R2_S_CRT = 5.85;
39
+ /** Region 2 critical pressure boundary [MPa] */
40
+ export declare const R2_P_CRT = 4;
41
+ /** B23 minimum pressure [MPa] */
42
+ export declare const B23_P_MIN = 16.5291642526;
43
+ /** B23 maximum temperature [K] */
44
+ export declare const B23_T_MAX = 863.15;
45
+ /** Region 3 minimum temperature [K] */
46
+ export declare const R3_T_MIN = 623.15;
47
+ /** Region 3 critical entropy [kJ/(kg·K)] */
48
+ export declare const R3_S_CRT = 4.41202148223476;
49
+ /** Region 3 critical enthalpy [kJ/kg] */
50
+ export declare const R3_H_CRT = 2087.5468451171537;
51
+ /** Region 5 minimum temperature [K] */
52
+ export declare const R5_T_MIN = 1073.15;
53
+ /** Region 5 maximum pressure [MPa] */
54
+ export declare const R5_P_MAX = 50;
55
+ /** Region 5 maximum temperature [K] */
56
+ export declare const R5_T_MAX = 2273.15;
57
+ /** B23 minimum entropy [kJ/(kg·K)] */
58
+ export declare const B23_S_MIN = 5.048096828;
59
+ /** B23 maximum entropy [kJ/(kg·K)] */
60
+ export declare const B23_S_MAX = 5.260578707;
61
+ /** B23 minimum enthalpy [kJ/kg] */
62
+ export declare const B23_H_MIN = 2563.592004;
63
+ /** B23 maximum enthalpy [kJ/kg] */
64
+ export declare const B23_H_MAX = 2812.942061;
65
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,kDAAkD;AAClD,eAAO,MAAM,CAAC,WAAW,CAAC;AAI1B,+BAA+B;AAC/B,eAAO,MAAM,EAAE,UAAU,CAAC;AAE1B,8BAA8B;AAC9B,eAAO,MAAM,EAAE,SAAS,CAAC;AAEzB,+BAA+B;AAC/B,eAAO,MAAM,IAAI,MAAM,CAAC;AAIxB,kCAAkC;AAClC,eAAO,MAAM,EAAE,cAAc,CAAC;AAI9B,6BAA6B;AAC7B,eAAO,MAAM,KAAK,oBAAoB,CAAC;AAEvC,6BAA6B;AAC7B,eAAO,MAAM,KAAK,MAAQ,CAAC;AAE3B,gDAAgD;AAChD,eAAO,MAAM,KAAK,SAAS,CAAC;AAE5B,oDAAoD;AACpD,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,2CAA2C;AAC3C,eAAO,MAAM,KAAK,oBAAoB,CAAC;AAEvC,2CAA2C;AAC3C,eAAO,MAAM,KAAK,oBAAoB,CAAC;AAEvC,wCAAwC;AACxC,eAAO,MAAM,KAAK,kBAAkB,CAAC;AAErC,wCAAwC;AACxC,eAAO,MAAM,KAAK,oBAAoB,CAAC;AAIvC,iFAAiF;AACjF,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,6EAA6E;AAC7E,eAAO,MAAM,QAAQ,UAAU,CAAC;AAEhC,qDAAqD;AACrD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B,gDAAgD;AAChD,eAAO,MAAM,QAAQ,IAAM,CAAC;AAI5B,iCAAiC;AACjC,eAAO,MAAM,SAAS,gBAAgB,CAAC;AAEvC,kCAAkC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAIhC,uCAAuC;AACvC,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,4CAA4C;AAC5C,eAAO,MAAM,QAAQ,mBAAmB,CAAC;AAEzC,yCAAyC;AACzC,eAAO,MAAM,QAAQ,qBAAqB,CAAC;AAI3C,uCAAuC;AACvC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAEhC,sCAAsC;AACtC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,uCAAuC;AACvC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAIhC,sCAAsC;AACtC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,sCAAsC;AACtC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,mCAAmC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,mCAAmC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC"}