iapws-if97 2.1.0 → 2.1.2

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 (108) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +22 -61
  3. package/dist/backward/hs.d.ts.map +1 -1
  4. package/dist/backward/hs.js +36 -43
  5. package/dist/backward/hs.js.map +1 -1
  6. package/dist/backward/objective-normalization.d.ts +7 -0
  7. package/dist/backward/objective-normalization.d.ts.map +1 -0
  8. package/dist/backward/objective-normalization.js +8 -0
  9. package/dist/backward/objective-normalization.js.map +1 -0
  10. package/dist/backward/ph.d.ts.map +1 -1
  11. package/dist/backward/ph.js +24 -5
  12. package/dist/backward/ph.js.map +1 -1
  13. package/dist/backward/ps.d.ts.map +1 -1
  14. package/dist/backward/ps.js +18 -3
  15. package/dist/backward/ps.js.map +1 -1
  16. package/dist/backward/solution-validation.d.ts.map +1 -1
  17. package/dist/backward/solution-validation.js +24 -16
  18. package/dist/backward/solution-validation.js.map +1 -1
  19. package/dist/backward/th.d.ts.map +1 -1
  20. package/dist/backward/th.js +5 -0
  21. package/dist/backward/th.js.map +1 -1
  22. package/dist/backward/tolerances.d.ts +6 -0
  23. package/dist/backward/tolerances.d.ts.map +1 -0
  24. package/dist/backward/tolerances.js +21 -0
  25. package/dist/backward/tolerances.js.map +1 -0
  26. package/dist/backward/ts.d.ts.map +1 -1
  27. package/dist/backward/ts.js +5 -0
  28. package/dist/backward/ts.js.map +1 -1
  29. package/dist/constants.d.ts +38 -12
  30. package/dist/constants.d.ts.map +1 -1
  31. package/dist/constants.js +47 -13
  32. package/dist/constants.js.map +1 -1
  33. package/dist/core/input-validation.d.ts +2 -0
  34. package/dist/core/input-validation.d.ts.map +1 -0
  35. package/dist/core/input-validation.js +7 -0
  36. package/dist/core/input-validation.js.map +1 -0
  37. package/dist/core/public-normalization.d.ts +2 -3
  38. package/dist/core/public-normalization.d.ts.map +1 -1
  39. package/dist/core/public-normalization.js +32 -9
  40. package/dist/core/public-normalization.js.map +1 -1
  41. package/dist/core/region-detector.d.ts.map +1 -1
  42. package/dist/core/region-detector.js +114 -56
  43. package/dist/core/region-detector.js.map +1 -1
  44. package/dist/core/region3-pt.d.ts.map +1 -1
  45. package/dist/core/region3-pt.js +6 -1
  46. package/dist/core/region3-pt.js.map +1 -1
  47. package/dist/core/solve-input-normalization.d.ts.map +1 -1
  48. package/dist/core/solve-input-normalization.js +4 -1
  49. package/dist/core/solve-input-normalization.js.map +1 -1
  50. package/dist/core/solver.d.ts.map +1 -1
  51. package/dist/core/solver.js +3 -0
  52. package/dist/core/solver.js.map +1 -1
  53. package/dist/index.d.ts +8 -8
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +7 -16
  56. package/dist/index.js.map +1 -1
  57. package/dist/regions/boundaries.d.ts +0 -9
  58. package/dist/regions/boundaries.d.ts.map +1 -1
  59. package/dist/regions/boundaries.js +8 -0
  60. package/dist/regions/boundaries.js.map +1 -1
  61. package/dist/regions/region3-subregions.d.ts +6 -2
  62. package/dist/regions/region3-subregions.d.ts.map +1 -1
  63. package/dist/regions/region3-subregions.js +22 -14
  64. package/dist/regions/region3-subregions.js.map +1 -1
  65. package/dist/regions/region3.d.ts +5 -1
  66. package/dist/regions/region3.d.ts.map +1 -1
  67. package/dist/regions/region3.js +12 -2
  68. package/dist/regions/region3.js.map +1 -1
  69. package/dist/regions/region4.d.ts +3 -1
  70. package/dist/regions/region4.d.ts.map +1 -1
  71. package/dist/regions/region4.js +9 -6
  72. package/dist/regions/region4.js.map +1 -1
  73. package/dist/saturation/common.d.ts +1 -0
  74. package/dist/saturation/common.d.ts.map +1 -1
  75. package/dist/saturation/common.js +53 -14
  76. package/dist/saturation/common.js.map +1 -1
  77. package/dist/saturation/region4-boundaries.d.ts +14 -0
  78. package/dist/saturation/region4-boundaries.d.ts.map +1 -0
  79. package/dist/saturation/region4-boundaries.js +79 -0
  80. package/dist/saturation/region4-boundaries.js.map +1 -0
  81. package/dist/saturation/region4-hs.d.ts +3 -0
  82. package/dist/saturation/region4-hs.d.ts.map +1 -0
  83. package/dist/saturation/region4-hs.js +165 -0
  84. package/dist/saturation/region4-hs.js.map +1 -0
  85. package/dist/saturation/two-phase.d.ts.map +1 -1
  86. package/dist/saturation/two-phase.js +9 -9
  87. package/dist/saturation/two-phase.js.map +1 -1
  88. package/dist/saturation.d.ts +6 -1
  89. package/dist/saturation.d.ts.map +1 -1
  90. package/dist/saturation.js +6 -1
  91. package/dist/saturation.js.map +1 -1
  92. package/dist/solvers/nelder-mead.d.ts +0 -4
  93. package/dist/solvers/nelder-mead.d.ts.map +1 -1
  94. package/dist/solvers/nelder-mead.js +29 -12
  95. package/dist/solvers/nelder-mead.js.map +1 -1
  96. package/dist/solvers/newton-raphson.d.ts +1 -4
  97. package/dist/solvers/newton-raphson.d.ts.map +1 -1
  98. package/dist/solvers/newton-raphson.js +15 -4
  99. package/dist/solvers/newton-raphson.js.map +1 -1
  100. package/dist/transport/properties.d.ts +1 -0
  101. package/dist/transport/properties.d.ts.map +1 -1
  102. package/dist/transport/properties.js +44 -4
  103. package/dist/transport/properties.js.map +1 -1
  104. package/dist/types.d.ts +2 -2
  105. package/dist/types.d.ts.map +1 -1
  106. package/dist/types.js +1 -1
  107. package/dist/types.js.map +1 -1
  108. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/core/solver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAmB,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkD3E;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAqCxD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAenD"}
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/core/solver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAmB,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmD3E;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAwCxD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAenD"}
@@ -5,6 +5,7 @@ import { region2 } from '../regions/region2.js';
5
5
  import { region5 } from '../regions/region5.js';
6
6
  import { detectRegionPT } from './region-detector.js';
7
7
  import { solveRegion3PTBasic } from './region3-pt.js';
8
+ import { assertFiniteNumber } from './input-validation.js';
8
9
  import { normalizeSolveInput } from './solve-input-normalization.js';
9
10
  import { viscosity, thermalConductivity, surfaceTension, dielectricConstant, ionizationConstant } from '../transport/properties.js';
10
11
  import { solvePH } from '../backward/ph.js';
@@ -50,6 +51,8 @@ function enrichState(basic) {
50
51
  * @returns Complete steam state with transport properties
51
52
  */
52
53
  export function solvePT(p, T) {
54
+ assertFiniteNumber('Pressure', p);
55
+ assertFiniteNumber('Temperature', T);
53
56
  if (p < C.P_MIN || p > C.P_MAX) {
54
57
  throw new OutOfRangeError('Pressure', p, C.P_MIN, C.P_MAX);
55
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/core/solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/core/solver.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,16 +3,16 @@
3
3
  *
4
4
  * Public API exports.
5
5
  */
6
- import type { BasicProperties, SteamState, SolveInput } from './types.js';
6
+ import type { SteamState, SolveInput } from './types.js';
7
7
  export declare function solvePT(p: number, T: number): SteamState;
8
8
  export declare function solve(input: SolveInput): SteamState;
9
- export declare function solvePH(p: number, h: number): BasicProperties;
10
- export declare function solvePS(p: number, s: number): BasicProperties;
11
- export declare function solveHS(h: number, s: number): BasicProperties;
12
- export declare function solveTH(T: number, h: number): BasicProperties;
13
- export declare function solveTS(T: number, s: number): BasicProperties;
14
- export declare function solvePx(p: number, x: number): BasicProperties;
15
- export declare function solveTx(T: number, x: number): BasicProperties;
9
+ export declare function solvePH(p: number, h: number): SteamState;
10
+ export declare function solvePS(p: number, s: number): SteamState;
11
+ export declare function solveHS(h: number, s: number): SteamState;
12
+ export declare function solveTH(T: number, h: number): SteamState;
13
+ export declare function solveTS(T: number, s: number): SteamState;
14
+ export declare function solvePx(p: number, x: number): SteamState;
15
+ export declare function solveTx(T: number, x: number): SteamState;
16
16
  export type { SteamState, SolveInput } from './types.js';
17
17
  export { Region, IF97Error, OutOfRangeError, ConvergenceError } from './types.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAqB1E,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEnD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAE7D;AAGD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWzD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEnD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAExD;AAGD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,5 @@
1
1
  import { solve as solveAny, solvePT as solvePTInternal } from './core/solver.js';
2
2
  import { normalizePublicState } from './core/public-normalization.js';
3
- import { solvePH as solvePHInternal } from './backward/ph.js';
4
- import { solvePS as solvePSInternal } from './backward/ps.js';
5
- import { solveHS as solveHSInternal } from './backward/hs.js';
6
- import { solveTH as solveTHInternal } from './backward/th.js';
7
- import { solveTS as solveTSInternal } from './backward/ts.js';
8
- import { solvePx as solvePxInternal, solveTx as solveTxInternal } from './saturation/two-phase.js';
9
- function normalizeBasicState(state) {
10
- return normalizePublicState(state);
11
- }
12
3
  function normalizeSteamState(state) {
13
4
  return normalizePublicState(state);
14
5
  }
@@ -22,25 +13,25 @@ export function solve(input) {
22
13
  return normalizeSteamState(solveAny(input));
23
14
  }
24
15
  export function solvePH(p, h) {
25
- return normalizeBasicState(solvePHInternal(p, h));
16
+ return normalizeSteamState(solveAny({ mode: 'PH', p, h }));
26
17
  }
27
18
  export function solvePS(p, s) {
28
- return normalizeBasicState(solvePSInternal(p, s));
19
+ return normalizeSteamState(solveAny({ mode: 'PS', p, s }));
29
20
  }
30
21
  export function solveHS(h, s) {
31
- return normalizeBasicState(solveHSInternal(h, s));
22
+ return normalizeSteamState(solveAny({ mode: 'HS', h, s }));
32
23
  }
33
24
  export function solveTH(T, h) {
34
- return normalizeBasicState(solveTHInternal(T, h));
25
+ return normalizeSteamState(solveAny({ mode: 'TH', T, h }));
35
26
  }
36
27
  export function solveTS(T, s) {
37
- return normalizeBasicState(solveTSInternal(T, s));
28
+ return normalizeSteamState(solveAny({ mode: 'TS', T, s }));
38
29
  }
39
30
  export function solvePx(p, x) {
40
- return normalizeBasicState(solvePxInternal(p, x));
31
+ return normalizeSteamState(solveAny({ mode: 'Px', p, x }));
41
32
  }
42
33
  export function solveTx(T, x) {
43
- return normalizeBasicState(solveTxInternal(T, x));
34
+ return normalizeSteamState(solveAny({ mode: 'Tx', T, x }));
44
35
  }
45
36
  export { Region, IF97Error, OutOfRangeError, ConvergenceError } from './types.js';
46
37
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEnG,SAAS,mBAAmB,CAAC,KAAsB;IACjD,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAiB;IAC5C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,eAAe;AACf,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAID,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,SAAS,mBAAmB,CAAC,KAAiB;IAC5C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,eAAe;AACf,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAID,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,12 +1,3 @@
1
- /**
2
- * IAPWS-IF97 Region Boundary Equations
3
- *
4
- * Boundary equations between regions, including:
5
- * - B23: Boundary between Region 2 and Region 3
6
- * - B3 subregion boundaries (ab, cd, ef, gh, ij, jk, mn, op, qu, rx, uv, wx)
7
- *
8
- * Reference: IAPWS-IF97 Section 4 & Supplementary Release on v(P,T) for Region 3
9
- */
10
1
  /**
11
2
  * B23 boundary: Temperature → Pressure
12
3
  * Equation 5 (pp. 5), IAPWS-IF97
@@ -1 +1 @@
1
- {"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../../src/regions/boundaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAwBD,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC"}
1
+ {"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../../src/regions/boundaries.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKnD;AAwBD,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKtC"}
@@ -7,6 +7,8 @@
7
7
  *
8
8
  * Reference: IAPWS-IF97 Section 4 & Supplementary Release on v(P,T) for Region 3
9
9
  */
10
+ import { B23_P_MIN, B23_T_MAX, P_MAX, R2_T_MIN } from '../constants.js';
11
+ import { IF97Error } from '../types.js';
10
12
  // ─── B23 Boundary (Region 2 ↔ Region 3) ────────────────────────────────────
11
13
  /**
12
14
  * B23 boundary: Temperature → Pressure
@@ -16,6 +18,9 @@
16
18
  * @returns Pressure [MPa] on the B23 boundary
17
19
  */
18
20
  export function boundary23_T_to_P(T) {
21
+ if (!Number.isFinite(T) || T < R2_T_MIN || T > B23_T_MAX) {
22
+ throw new IF97Error(`boundary23_T_to_P requires T in [${R2_T_MIN}, ${B23_T_MAX}] K, got ${T}`);
23
+ }
19
24
  return 348.05185628969 - 1.1671859879975 * T + 0.0010192970039326 * T * T;
20
25
  }
21
26
  /**
@@ -26,6 +31,9 @@ export function boundary23_T_to_P(T) {
26
31
  * @returns Temperature [K] on the B23 boundary
27
32
  */
28
33
  export function boundary23_P_to_T(p) {
34
+ if (!Number.isFinite(p) || p < B23_P_MIN || p > P_MAX) {
35
+ throw new IF97Error(`boundary23_P_to_T requires p in [${B23_P_MIN}, ${P_MAX}] MPa, got ${p}`);
36
+ }
29
37
  return 572.54459862746 + Math.sqrt((p - 13.91883977887) / 0.0010192970039326);
30
38
  }
31
39
  // ─── B3 Subregion Boundaries ────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"boundaries.js","sourceRoot":"","sources":["../../src/regions/boundaries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundaries.js","sourceRoot":"","sources":["../../src/regions/boundaries.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- /** Compute specific volume for Region 3 saturation boundary. x=0 liquid, x=1 vapor */
1
+ /** Compute specific volume for Region 3 saturation boundary. x=0 liquid, x=1 vapor
2
+ * Pressure thresholds from IAPWS Supplementary Release on Backward
3
+ * Equations v(P,T) for Region 3, Table 1 (saturation subregion limits). */
2
4
  export declare function region3SatVolume(p: number, T: number, x: number): number;
3
- /** Compute specific volume for Region 3 from P and T using subregion equations. */
5
+ /** Compute specific volume for Region 3 from P and T using subregion equations.
6
+ * Pressure thresholds from IAPWS Supplementary Release on Backward
7
+ * Equations v(P,T) for Region 3, Figures 2–5. */
4
8
  export declare function region3Volume(p: number, T: number): number;
5
9
  //# sourceMappingURL=region3-subregions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"region3-subregions.d.ts","sourceRoot":"","sources":["../../src/regions/region3-subregions.ts"],"names":[],"mappings":"AAUA,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWxE;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmG1D"}
1
+ {"version":3,"file":"region3-subregions.d.ts","sourceRoot":"","sources":["../../src/regions/region3-subregions.ts"],"names":[],"mappings":"AAcA;;4EAE4E;AAC5E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWxE;AAED;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAqG1D"}
@@ -6,29 +6,36 @@ import { evalSubregion } from './region3-eval.js';
6
6
  import { REGION3_SUBREGIONS as R3 } from './region3-data.js';
7
7
  import { b3ab, b3cd, b3ef, b3gh, b3ij, b3jk, b3mn, b3op, b3qu, b3rx, b3uv, b3wx } from './boundaries.js';
8
8
  import { saturationPressure, saturationTemperature } from './region4.js';
9
+ import { Pc } from '../constants.js';
9
10
  import { IF97Error } from '../types.js';
10
- /** Compute specific volume for Region 3 saturation boundary. x=0 liquid, x=1 vapor */
11
+ // Shared liquid-side C/S saturation threshold from the Region 3 supplementary release.
12
+ const R3_C_S_LIQUID_BOUNDARY_PRESSURE = 19.00881189173929;
13
+ /** Compute specific volume for Region 3 saturation boundary. x=0 liquid, x=1 vapor
14
+ * Pressure thresholds from IAPWS Supplementary Release on Backward
15
+ * Equations v(P,T) for Region 3, Table 1 (saturation subregion limits). */
11
16
  export function region3SatVolume(p, T, x) {
12
17
  if (x === 0) {
13
- if (p < 19.00881189)
18
+ if (p < R3_C_S_LIQUID_BOUNDARY_PRESSURE)
14
19
  return evalSubregion(R3.C, p, T);
15
20
  if (p < 21.0434)
16
- return evalSubregion(R3.S, p, T);
21
+ return evalSubregion(R3.S, p, T); // near P3cd
17
22
  if (p < 21.9316)
18
- return evalSubregion(R3.U, p, T);
23
+ return evalSubregion(R3.U, p, T); // near Puv
19
24
  return evalSubregion(R3.Y, p, T);
20
25
  }
21
26
  if (p < 20.5)
22
- return evalSubregion(R3.T, p, T);
27
+ return evalSubregion(R3.T, p, T); // near P3cd
23
28
  if (p < 21.0434)
24
29
  return evalSubregion(R3.R, p, T);
25
30
  if (p < 21.9009)
26
- return evalSubregion(R3.X, p, T);
31
+ return evalSubregion(R3.X, p, T); // near Pwx
27
32
  return evalSubregion(R3.Z, p, T);
28
33
  }
29
- /** Compute specific volume for Region 3 from P and T using subregion equations. */
34
+ /** Compute specific volume for Region 3 from P and T using subregion equations.
35
+ * Pressure thresholds from IAPWS Supplementary Release on Backward
36
+ * Equations v(P,T) for Region 3, Figures 2–5. */
30
37
  export function region3Volume(p, T) {
31
- if (p > 40) {
38
+ if (p > 40) { // Suppl. Release Fig. 2: subregions A/B
32
39
  return T <= b3ab(p) ? evalSubregion(R3.A, p, T) : evalSubregion(R3.B, p, T);
33
40
  }
34
41
  if (p > 25) {
@@ -98,7 +105,7 @@ export function region3Volume(p, T) {
98
105
  return evalSubregion(R3.Q, p, T);
99
106
  if (T <= trx) {
100
107
  const tef = b3ef(p), twx = b3wx(p), tuv = b3uv(p);
101
- if (p > 22.11) {
108
+ if (p > 22.11) { // Suppl. Release Fig. 5 boundary
102
109
  if (T <= tuv)
103
110
  return evalSubregion(R3.U, p, T);
104
111
  if (T <= tef)
@@ -107,7 +114,7 @@ export function region3Volume(p, T) {
107
114
  return evalSubregion(R3.W, p, T);
108
115
  return evalSubregion(R3.X, p, T);
109
116
  }
110
- if (p > 22.064) {
117
+ if (p > Pc) { // above critical pressure → no saturation line
111
118
  if (T <= tuv)
112
119
  return evalSubregion(R3.U, p, T);
113
120
  if (T <= tef)
@@ -144,12 +151,13 @@ export function region3Volume(p, T) {
144
151
  return evalSubregion(R3.R, p, T);
145
152
  return evalSubregion(R3.K, p, T);
146
153
  }
147
- if (p > 19.00881189173929 && p <= 20.5) {
154
+ if (p >= R3_C_S_LIQUID_BOUNDARY_PRESSURE && p <= 20.5) {
148
155
  const tcd = b3cd(p), Ts = saturationTemperature(p);
149
- if (T <= tcd)
150
- return evalSubregion(R3.C, p, T);
151
- if (T <= Ts)
156
+ if (T <= Ts) {
157
+ if (T < tcd && T < Ts)
158
+ return evalSubregion(R3.C, p, T);
152
159
  return evalSubregion(R3.S, p, T);
160
+ }
153
161
  return evalSubregion(R3.T, p, T);
154
162
  }
155
163
  if (p > 16.5291642526) {
@@ -1 +1 @@
1
- {"version":3,"file":"region3-subregions.js","sourceRoot":"","sources":["../../src/regions/region3-subregions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"region3-subregions.js","sourceRoot":"","sources":["../../src/regions/region3-subregions.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,13 @@ import type { BasicProperties } from '../types.js';
10
10
  /**
11
11
  * Compute Region 3 thermodynamic properties from density and temperature.
12
12
  *
13
- * @param rho - Density [kg/m³]
13
+ * Low-level Region 3 equation entry point. Callers must provide a finite,
14
+ * strictly positive density because the Helmholtz formulation contains ln(ρ).
15
+ *
16
+ * @param rho - Density [kg/m³], must be > 0
14
17
  * @param T - Temperature [K]
15
18
  * @returns Basic thermodynamic properties
19
+ * @throws {IF97Error} if rho is non-finite or not strictly positive
16
20
  */
17
21
  export declare function region3ByRhoT(rho: number, T: number): BasicProperties;
18
22
  //# sourceMappingURL=region3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"region3.d.ts","sourceRoot":"","sources":["../../src/regions/region3.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAoDrE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAyDrE"}
1
+ {"version":3,"file":"region3.d.ts","sourceRoot":"","sources":["../../src/regions/region3.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAuDrE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA6DrE"}
@@ -7,9 +7,12 @@
7
7
  * Reference: IAPWS-IF97, Section 7 (Equations for Region 3)
8
8
  */
9
9
  import { R } from '../constants.js';
10
- import { Region } from '../types.js';
10
+ import { IF97Error, Region } from '../types.js';
11
11
  // ─── Coefficient Table (Table 30, IAPWS-IF97) ──────────────────────────────
12
12
  const COEFFICIENTS = [
13
+ // Entry 0 is the coefficient n₁ for the logarithmic term n₁·ln(δ).
14
+ // It shares the [I=0, J=0] shape with entry 1 but is handled separately
15
+ // in the evaluation loop (index 0 = ln term, indices 1+ = polynomial).
13
16
  [0, 0, 1.0658070028513],
14
17
  [0, 0, -0.15732845290239e2],
15
18
  [0, 1, 0.20944396974307e2],
@@ -57,11 +60,18 @@ const T_STAR = 647.096; // T* [K] (critical temperature)
57
60
  /**
58
61
  * Compute Region 3 thermodynamic properties from density and temperature.
59
62
  *
60
- * @param rho - Density [kg/m³]
63
+ * Low-level Region 3 equation entry point. Callers must provide a finite,
64
+ * strictly positive density because the Helmholtz formulation contains ln(ρ).
65
+ *
66
+ * @param rho - Density [kg/m³], must be > 0
61
67
  * @param T - Temperature [K]
62
68
  * @returns Basic thermodynamic properties
69
+ * @throws {IF97Error} if rho is non-finite or not strictly positive
63
70
  */
64
71
  export function region3ByRhoT(rho, T) {
72
+ if (!Number.isFinite(rho) || rho <= 0) {
73
+ throw new IF97Error(`region3ByRhoT requires a finite positive density, got ${rho}`);
74
+ }
65
75
  const delta = rho / RHO_STAR;
66
76
  const tau = T_STAR / T;
67
77
  const v = 1 / rho;
@@ -1 +1 @@
1
- {"version":3,"file":"region3.js","sourceRoot":"","sources":["../../src/regions/region3.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,8EAA8E;AAE9E,MAAM,YAAY,GAAqB;IACrC,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC;IAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC;IAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;IACxB,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC;IAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC;IAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC;IAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC;IAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,EAAE,mBAAmB,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC;IAC7B,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC;CACtB,CAAC;AAEX,mCAAmC;AACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,gCAAgC;AACtD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,gCAAgC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,CAAS;IAClD,MAAM,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAElB,kDAAkD;IAClD,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,qDAAqD;IACrD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAEhC,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC7B,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QACrD,cAAc,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QACpE,OAAO,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,UAAU,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,OAAO;QACtB,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI;QAChD,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO;QACrC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;QAClC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;QACrD,EAAE,EAAE,CAAC,GAAG,CACN,CAAC,GAAG,GAAG,GAAG,GAAG,UAAU;YACvB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,YAAY,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc,CAAC,CACzD;QACD,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;QACjC,YAAY,EAAE,IAAI,CAAC,IAAI,CACrB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CACb,CAAC,GAAG,KAAK,GAAG,SAAS;YACrB,KAAK,GAAG,KAAK,GAAG,cAAc;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,YAAY,EAAE,CAAC,CAAC;gBAC3D,CAAC,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC,CACzB,CACF;QACD,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,YAAY,CAAC;YACjD,CAAC,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC;QAC9C,yBAAyB,EAAE,CAAC;YAC1B,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,cAAc,CAAC;YACxD,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"region3.js","sourceRoot":"","sources":["../../src/regions/region3.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,9 @@ export declare function saturationPressure(T: number): number;
19
19
  * Saturation temperature for a given pressure.
20
20
  * Equation 31 (pp. 34) of IAPWS-IF97.
21
21
  *
22
- * @param p - Pressure [MPa], Pt ≤ P ≤ Pc
22
+ * @param p - Pressure [MPa], P_MIN ≤ P ≤ Pc
23
+ * (P_MIN = Psat(273.15 K), the lower pressure bound matching
24
+ * saturationPressure's lower temperature bound per IAPWS-IF97 §8)
23
25
  * @returns Saturation temperature [K]
24
26
  * @throws {OutOfRangeError} if P is outside valid range
25
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"region4.d.ts","sourceRoot":"","sources":["../../src/regions/region4.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvD"}
1
+ {"version":3,"file":"region4.d.ts","sourceRoot":"","sources":["../../src/regions/region4.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAapD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBvD"}
@@ -6,8 +6,9 @@
6
6
  *
7
7
  * Reference: IAPWS-IF97, Section 8 (Equations for Region 4)
8
8
  */
9
- import { Tc, Pt, Pc } from '../constants.js';
9
+ import { Tc, Pc, P_MIN } from '../constants.js';
10
10
  import { OutOfRangeError } from '../types.js';
11
+ import { normalizeRegion4Pressure, normalizeRegion4Temperature, } from '../saturation/region4-boundaries.js';
11
12
  // ─── Saturation Line Coefficients (Table 34, IAPWS-IF97) ───────────────────
12
13
  const n = [
13
14
  0, // n[0] unused (1-indexed)
@@ -38,25 +39,27 @@ export function saturationPressure(T) {
38
39
  const A = theta * theta + n[1] * theta + n[2];
39
40
  const B = n[3] * theta * theta + n[4] * theta + n[5];
40
41
  const C = n[6] * theta * theta + n[7] * theta + n[8];
41
- return Math.pow(2 * C / (-B + Math.sqrt(B * B - 4 * A * C)), 4);
42
+ return normalizeRegion4Pressure(Math.pow(2 * C / (-B + Math.sqrt(B * B - 4 * A * C)), 4));
42
43
  }
43
44
  /**
44
45
  * Saturation temperature for a given pressure.
45
46
  * Equation 31 (pp. 34) of IAPWS-IF97.
46
47
  *
47
- * @param p - Pressure [MPa], Pt ≤ P ≤ Pc
48
+ * @param p - Pressure [MPa], P_MIN ≤ P ≤ Pc
49
+ * (P_MIN = Psat(273.15 K), the lower pressure bound matching
50
+ * saturationPressure's lower temperature bound per IAPWS-IF97 §8)
48
51
  * @returns Saturation temperature [K]
49
52
  * @throws {OutOfRangeError} if P is outside valid range
50
53
  */
51
54
  export function saturationTemperature(p) {
52
- if (p < Pt || p > Pc) {
53
- throw new OutOfRangeError('Pressure', p, Pt, Pc);
55
+ if (p < P_MIN || p > Pc) {
56
+ throw new OutOfRangeError('Pressure', p, P_MIN, Pc);
54
57
  }
55
58
  const beta = Math.pow(p, 0.25);
56
59
  const E = beta * beta + n[3] * beta + n[6];
57
60
  const F = n[1] * beta * beta + n[4] * beta + n[7];
58
61
  const G = n[2] * beta * beta + n[5] * beta + n[8];
59
62
  const D = 2 * G / (-F - Math.sqrt(F * F - 4 * E * G));
60
- return (n[10] + D - Math.sqrt(Math.pow(n[10] + D, 2) - 4 * (n[9] + n[10] * D))) / 2;
63
+ return normalizeRegion4Temperature((n[10] + D - Math.sqrt(Math.pow(n[10] + D, 2) - 4 * (n[9] + n[10] * D))) / 2);
61
64
  }
62
65
  //# sourceMappingURL=region4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"region4.js","sourceRoot":"","sources":["../../src/regions/region4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"region4.js","sourceRoot":"","sources":["../../src/regions/region4.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export interface SaturationEndpoints {
13
13
  liquid: BasicProperties;
14
14
  vapor: BasicProperties;
15
15
  }
16
+ export declare function rawQualityFromSaturationProperty(liquidValue: number, vaporValue: number, mixtureValue: number): number;
16
17
  /**
17
18
  * Compute saturated liquid and vapour properties at a given pressure.
18
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/saturation/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAUnD,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;CACxB;AA6BD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAuB5E;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAE/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,MAAM,GACnB,eAAe,CA2BjB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/saturation/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAcnD,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;CACxB;AA2CD,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAWR;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAwB5E;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAc/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,MAAM,GACnB,eAAe,CA8BjB"}