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
@@ -9,11 +9,15 @@ import { region1 } from '../regions/region1.js';
9
9
  import { region2 } from '../regions/region2.js';
10
10
  import { region3ByRhoT } from '../regions/region3.js';
11
11
  import { region5 } from '../regions/region5.js';
12
+ import { assertFiniteNumber } from '../core/input-validation.js';
12
13
  import { detectRegionPS } from '../core/region-detector.js';
13
14
  import { newtonRaphson } from '../solvers/newton-raphson.js';
14
15
  import { nelderMead } from '../solvers/nelder-mead.js';
15
16
  import { validateBackwardState } from './solution-validation.js';
17
+ import { backwardConstraintTolerance } from './tolerances.js';
18
+ import { sumNormalizedResiduals } from './objective-normalization.js';
16
19
  import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtPressure, } from '../saturation/common.js';
20
+ import { assertCriticalRegion4PSInput, assertRegion4StateAllowed, } from '../saturation/region4-boundaries.js';
17
21
  function evalPoly(table, piShift, sigShift, pi, sig) {
18
22
  let sum = 0;
19
23
  for (const [I, J, N] of table)
@@ -148,12 +152,15 @@ const R3B_PS_V_TABLE = [
148
152
  * @param s - Specific entropy [kJ/(kg·K)]
149
153
  */
150
154
  export function solvePS(p, s) {
155
+ assertFiniteNumber('Pressure', p);
156
+ assertFiniteNumber('Entropy', s);
151
157
  if (p < C.P_MIN || p > C.P_MAX) {
152
158
  throw new OutOfRangeError('Pressure', p, C.P_MIN, C.P_MAX);
153
159
  }
154
160
  if (s < C.S_MIN || s > C.S_MAX) {
155
161
  throw new OutOfRangeError('Entropy', s, C.S_MIN, C.S_MAX);
156
162
  }
163
+ assertCriticalRegion4PSInput(p, s, 'solvePS');
157
164
  const region = detectRegionPS(p, s);
158
165
  switch (region) {
159
166
  case Region.Region1: {
@@ -173,6 +180,8 @@ export function solvePS(p, s) {
173
180
  ], { solverName: 'solvePS', expectedRegion: Region.Region2 });
174
181
  }
175
182
  case Region.Region3: {
183
+ const pressureTolerance = 1e-5 * Math.max(1, Math.abs(p));
184
+ const entropyTolerance = backwardConstraintTolerance('entropy', s);
176
185
  let T0, v0;
177
186
  if (s <= C.R3_S_CRT) {
178
187
  T0 = 760 * evalPoly(R3A_PS_T_TABLE, -0.240, 0.703, p / 100, s / 4.4);
@@ -182,15 +191,21 @@ export function solvePS(p, s) {
182
191
  T0 = 860 * evalPoly(R3B_PS_T_TABLE, -0.760, 0.818, p / 100, s / 5.3);
183
192
  v0 = 0.0088 * evalPoly(R3B_PS_V_TABLE, -0.298, 0.816, p / 100, s / 5.3);
184
193
  }
185
- const sol = nelderMead((pair) => Math.abs(region3ByRhoT(1 / pair[0], pair[1]).entropy - s) +
186
- Math.abs(region3ByRhoT(1 / pair[0], pair[1]).pressure - p), [v0, T0]);
194
+ const sol = nelderMead((pair) => {
195
+ const state = region3ByRhoT(1 / pair[0], pair[1]);
196
+ return sumNormalizedResiduals([
197
+ { actual: state.entropy, expected: s, tolerance: entropyTolerance },
198
+ { actual: state.pressure, expected: p, tolerance: pressureTolerance },
199
+ ]);
200
+ }, [v0, T0], { maxIterations: 1000, minErrorDelta: 1e-8, minTolerance: 1e-9 });
187
201
  return validateBackwardState(region3ByRhoT(1 / sol.x[0], sol.x[1]), [
188
- { label: 'pressure', expected: p, tolerance: 1e-5 * Math.max(1, Math.abs(p)) },
202
+ { label: 'pressure', expected: p, tolerance: pressureTolerance },
189
203
  { label: 'entropy', expected: s },
190
204
  ], { solverName: 'solvePS', expectedRegion: Region.Region3 });
191
205
  }
192
206
  case Region.Region4: {
193
207
  const endpoints = saturationEndpointsAtPressure(p);
208
+ assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solvePS');
194
209
  const x = qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s);
195
210
  return validateBackwardState(mixSaturationState(endpoints, x), [
196
211
  { label: 'pressure', expected: p },
@@ -1 +1 @@
1
- {"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/backward/ps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ps.js","sourceRoot":"","sources":["../../src/backward/ps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solution-validation.d.ts","sourceRoot":"","sources":["../../src/backward/solution-validation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAa,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAyFD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,SAAS,kBAAkB,EAAE,EAC1C,OAAO,EAAE,yBAAyB,GACjC,eAAe,CAKjB"}
1
+ {"version":3,"file":"solution-validation.d.ts","sourceRoot":"","sources":["../../src/backward/solution-validation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAa,MAAM,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAqGD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,SAAS,kBAAkB,EAAE,EAC1C,OAAO,EAAE,yBAAyB,GACjC,eAAe,CAKjB"}
@@ -2,19 +2,7 @@ import * as C from '../constants.js';
2
2
  import { detectRegionPT } from '../core/region-detector.js';
3
3
  import { saturationPressure } from '../regions/region4.js';
4
4
  import { IF97Error, Region } from '../types.js';
5
- function defaultTolerance(label, expected) {
6
- switch (label) {
7
- case 'pressure':
8
- case 'temperature':
9
- return 1e-9 * Math.max(1, Math.abs(expected));
10
- case 'enthalpy':
11
- return 1e-4 * Math.max(1, Math.abs(expected));
12
- case 'entropy':
13
- return 1e-6 * Math.max(1, Math.abs(expected));
14
- default:
15
- return 1e-9;
16
- }
17
- }
5
+ import { backwardConstraintTolerance, region4SaturationPressureTolerance, } from './tolerances.js';
18
6
  function propertyValue(state, label) {
19
7
  switch (label) {
20
8
  case 'pressure':
@@ -48,7 +36,7 @@ function validateRegionConsistency(state, solverName, expectedRegion) {
48
36
  throw new IF97Error(`${solverName} produced an invalid Region 4 quality`);
49
37
  }
50
38
  const psat = saturationPressure(state.temperature);
51
- const pTolerance = 1e-8 * Math.max(1, Math.abs(state.pressure));
39
+ const pTolerance = region4SaturationPressureTolerance(state.pressure);
52
40
  if (Math.abs(psat - state.pressure) > pTolerance) {
53
41
  throw new IF97Error(`${solverName} produced a Region 4 state off the saturation curve`);
54
42
  }
@@ -62,16 +50,36 @@ function validateRegionConsistency(state, solverName, expectedRegion) {
62
50
  function validateConstraints(state, constraints, solverName) {
63
51
  for (const constraint of constraints) {
64
52
  const actual = propertyValue(state, constraint.label);
65
- const tolerance = constraint.tolerance ?? defaultTolerance(constraint.label, constraint.expected);
53
+ const tolerance = constraint.tolerance ?? backwardConstraintTolerance(constraint.label, constraint.expected);
66
54
  if (Math.abs(actual - constraint.expected) > tolerance) {
67
55
  throw new IF97Error(`${solverName} failed to match ${constraint.label}: expected ${constraint.expected}, got ${actual}`);
68
56
  }
69
57
  }
70
58
  }
59
+ function withExactConstraints(state, constraints) {
60
+ const normalized = { ...state };
61
+ for (const constraint of constraints) {
62
+ switch (constraint.label) {
63
+ case 'pressure':
64
+ normalized.pressure = Object.is(constraint.expected, -0) ? 0 : constraint.expected;
65
+ break;
66
+ case 'temperature':
67
+ normalized.temperature = Object.is(constraint.expected, -0) ? 0 : constraint.expected;
68
+ break;
69
+ case 'enthalpy':
70
+ normalized.enthalpy = Object.is(constraint.expected, -0) ? 0 : constraint.expected;
71
+ break;
72
+ case 'entropy':
73
+ normalized.entropy = Object.is(constraint.expected, -0) ? 0 : constraint.expected;
74
+ break;
75
+ }
76
+ }
77
+ return normalized;
78
+ }
71
79
  export function validateBackwardState(state, constraints, options) {
72
80
  validateBasicEnvelope(state, options.solverName);
73
81
  validateRegionConsistency(state, options.solverName, options.expectedRegion);
74
82
  validateConstraints(state, constraints, options.solverName);
75
- return state;
83
+ return withExactConstraints(state, constraints);
76
84
  }
77
85
  //# sourceMappingURL=solution-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solution-validation.js","sourceRoot":"","sources":["../../src/backward/solution-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solution-validation.js","sourceRoot":"","sources":["../../src/backward/solution-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"th.d.ts","sourceRoot":"","sources":["../../src/backward/th.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA6F7D"}
1
+ {"version":3,"file":"th.d.ts","sourceRoot":"","sources":["../../src/backward/th.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAiG7D"}
@@ -1,5 +1,6 @@
1
1
  import * as C from '../constants.js';
2
2
  import { IF97Error, OutOfRangeError, Region } from '../types.js';
3
+ import { assertFiniteNumber } from '../core/input-validation.js';
3
4
  import { detectRegionTH } from '../core/region-detector.js';
4
5
  import { solveRegion3PTBasic } from '../core/region3-pt.js';
5
6
  import { region1 } from '../regions/region1.js';
@@ -8,6 +9,7 @@ import { region5 } from '../regions/region5.js';
8
9
  import { boundary23_T_to_P } from '../regions/boundaries.js';
9
10
  import { saturationPressure } from '../regions/region4.js';
10
11
  import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtTemperature, } from '../saturation/common.js';
12
+ import { assertRegion4StateAllowed } from '../saturation/region4-boundaries.js';
11
13
  import { solveFixedTemperaturePressure } from './fixed-temperature-solver.js';
12
14
  import { validateBackwardState } from './solution-validation.js';
13
15
  const extractH = (s) => s.enthalpy;
@@ -27,6 +29,8 @@ const extractH = (s) => s.enthalpy;
27
29
  * @throws {IF97Error} if T is within the critical exclusion band
28
30
  */
29
31
  export function solveTH(T, h) {
32
+ assertFiniteNumber('Temperature', T);
33
+ assertFiniteNumber('Enthalpy', h);
30
34
  if (T < C.T_MIN || T > C.T_MAX) {
31
35
  throw new OutOfRangeError('Temperature', T, C.T_MIN, C.T_MAX);
32
36
  }
@@ -74,6 +78,7 @@ export function solveTH(T, h) {
74
78
  }
75
79
  case Region.Region4: {
76
80
  const endpoints = saturationEndpointsAtTemperature(T);
81
+ assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solveTH');
77
82
  const x = qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h);
78
83
  return validateBackwardState(mixSaturationState(endpoints, x), [
79
84
  { label: 'temperature', expected: T },
@@ -1 +1 @@
1
- {"version":3,"file":"th.js","sourceRoot":"","sources":["../../src/backward/th.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,yBAAyB,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CACjB,gDAAgD,CAAC,CAAC,yBAAyB,2CAA2C,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAClJ,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,qBAAqB,CAAC,6BAA6B,CACxD,OAAO,EAAE,CAAC,EAAE,CAAC,EACb,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAC9B,QAAQ,EAAE,SAAS,CACpB,EAAE;gBACD,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACrC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;aACnC,EAAE;gBACD,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,MAAM,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;gBACrB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS;oBAChB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACtB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACd,OAAO,qBAAqB,CAAC,6BAA6B,CACxD,OAAO,EAAE,CAAC,EAAE,CAAC,EACb,CAAC,CAAC,KAAK,EAAE,KAAK,EACd,QAAQ,EAAE,SAAS,CACpB,EAAE;gBACD,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACrC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;aACnC,EAAE;gBACD,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,MAAM,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;gBACrB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,qBAAqB,CAAC,6BAA6B,CACxD,mBAAmB,EAAE,CAAC,EAAE,CAAC,EACzB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,QAAQ,EAAE,SAAS,CACpB,EAAE;gBACD,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACrC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;aACnC,EAAE;gBACD,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,MAAM,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,SAAS,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,6BAA6B,CACrC,SAAS,CAAC,MAAM,CAAC,QAAQ,EACzB,SAAS,CAAC,KAAK,CAAC,QAAQ,EACxB,CAAC,CACF,CAAC;YACF,OAAO,qBAAqB,CAC1B,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC,EAChC;gBACE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACrC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;aACnC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,qBAAqB,CAAC,6BAA6B,CACxD,OAAO,EAAE,CAAC,EAAE,CAAC,EACb,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EACnB,QAAQ,EAAE,SAAS,CACpB,EAAE;gBACD,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACrC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;aACnC,EAAE;gBACD,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,MAAM,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL;YACE,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"th.js","sourceRoot":"","sources":["../../src/backward/th.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type BackwardToleranceLabel = 'pressure' | 'temperature' | 'enthalpy' | 'entropy';
2
+ export declare const BACKWARD_REGION4_QUALITY_TOLERANCE = 0.000001;
3
+ export declare function backwardConstraintTolerance(label: BackwardToleranceLabel, expected: number): number;
4
+ export declare function region4SaturationPressureTolerance(pressure: number): number;
5
+ export declare function backwardSpecificVolumeTolerance(expected: number): number;
6
+ //# sourceMappingURL=tolerances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tolerances.d.ts","sourceRoot":"","sources":["../../src/backward/tolerances.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEzF,eAAO,MAAM,kCAAkC,WAAO,CAAC;AAEvD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE"}
@@ -0,0 +1,21 @@
1
+ export const BACKWARD_REGION4_QUALITY_TOLERANCE = 1e-6;
2
+ export function backwardConstraintTolerance(label, expected) {
3
+ switch (label) {
4
+ case 'pressure':
5
+ case 'temperature':
6
+ return 1e-9 * Math.max(1, Math.abs(expected));
7
+ case 'enthalpy':
8
+ return 1e-6 * Math.max(1, Math.abs(expected));
9
+ case 'entropy':
10
+ return 1e-6 * Math.max(1, Math.abs(expected));
11
+ default:
12
+ return 1e-9;
13
+ }
14
+ }
15
+ export function region4SaturationPressureTolerance(pressure) {
16
+ return 1e-8 * Math.max(1, Math.abs(pressure));
17
+ }
18
+ export function backwardSpecificVolumeTolerance(expected) {
19
+ return 1e-6 * Math.max(1, Math.abs(expected));
20
+ }
21
+ //# sourceMappingURL=tolerances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tolerances.js","sourceRoot":"","sources":["../../src/backward/tolerances.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AAEvD,MAAM,UAAU,2BAA2B,CACzC,KAA6B,EAC7B,QAAgB;IAEhB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,KAAK,UAAU;YACb,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,KAAK,SAAS;YACZ,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAgB;IACjE,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,QAAgB;IAC9D,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ts.d.ts","sourceRoot":"","sources":["../../src/backward/ts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA6F7D"}
1
+ {"version":3,"file":"ts.d.ts","sourceRoot":"","sources":["../../src/backward/ts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAsBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAiG7D"}
@@ -1,5 +1,6 @@
1
1
  import * as C from '../constants.js';
2
2
  import { IF97Error, OutOfRangeError, Region } from '../types.js';
3
+ import { assertFiniteNumber } from '../core/input-validation.js';
3
4
  import { detectRegionTS } from '../core/region-detector.js';
4
5
  import { solveRegion3PTBasic } from '../core/region3-pt.js';
5
6
  import { region1 } from '../regions/region1.js';
@@ -8,6 +9,7 @@ import { region5 } from '../regions/region5.js';
8
9
  import { boundary23_T_to_P } from '../regions/boundaries.js';
9
10
  import { saturationPressure } from '../regions/region4.js';
10
11
  import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtTemperature, } from '../saturation/common.js';
12
+ import { assertRegion4StateAllowed } from '../saturation/region4-boundaries.js';
11
13
  import { solveFixedTemperaturePressure } from './fixed-temperature-solver.js';
12
14
  import { validateBackwardState } from './solution-validation.js';
13
15
  const extractS = (s) => s.entropy;
@@ -27,6 +29,8 @@ const extractS = (s) => s.entropy;
27
29
  * @throws {IF97Error} if T is within the critical exclusion band
28
30
  */
29
31
  export function solveTS(T, s) {
32
+ assertFiniteNumber('Temperature', T);
33
+ assertFiniteNumber('Entropy', s);
30
34
  if (T < C.T_MIN || T > C.T_MAX) {
31
35
  throw new OutOfRangeError('Temperature', T, C.T_MIN, C.T_MAX);
32
36
  }
@@ -74,6 +78,7 @@ export function solveTS(T, s) {
74
78
  }
75
79
  case Region.Region4: {
76
80
  const endpoints = saturationEndpointsAtTemperature(T);
81
+ assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solveTS');
77
82
  const x = qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s);
78
83
  return validateBackwardState(mixSaturationState(endpoints, x), [
79
84
  { label: 'temperature', expected: T },
@@ -1 +1 @@
1
- {"version":3,"file":"ts.js","sourceRoot":"","sources":["../../src/backward/ts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts.js","sourceRoot":"","sources":["../../src/backward/ts.ts"],"names":[],"mappings":"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"}
@@ -4,19 +4,41 @@
4
4
  * Physical constants, critical point properties, and range limits
5
5
  * for the IAPWS Industrial Formulation 1997.
6
6
  */
7
- /** Specific gas constant for water [kJ/(kg·K)] */
7
+ /** Specific gas constant for water [kJ/(kg·K)].
8
+ * IAPWS-IF97, §2 (Table 1). Fixed value for IF97 internal consistency.
9
+ * Do not replace transport correlations with this value; thermal conductivity
10
+ * critical enhancement intentionally uses `R_IAPWS_2011_THERMAL`. */
8
11
  export declare const R = 0.461526;
12
+ /** Specific gas constant used by the IAPWS 2011 thermal conductivity λ₂ correlation [kJ/(kg·K)].
13
+ * Intentionally differs from IF97's `R`; keep both constants distinct and named. */
14
+ export declare const R_IAPWS_2011_THERMAL = 0.46151805;
9
15
  /** Critical temperature [K] */
10
16
  export declare const Tc = 647.096;
11
17
  /** Temperature exclusion half-band around the critical point [K] */
12
18
  export declare const CRITICAL_T_EXCLUSION_BAND = 0.001;
19
+ /** Region 4 endpoint snap tolerance for temperatures [K] */
20
+ export declare const REGION4_TEMPERATURE_TOLERANCE = 1e-9;
21
+ /** Safety margin used when clamping Region 4 temperatures below Tc [K] */
22
+ export declare const REGION4_SUBCRITICAL_TEMPERATURE_MARGIN = 1e-8;
13
23
  /** Critical pressure [MPa] */
14
24
  export declare const Pc = 22.064;
25
+ /** Region 4 endpoint snap tolerance for pressures [MPa] */
26
+ export declare const REGION4_PRESSURE_TOLERANCE = 1e-9;
27
+ /** Tolerance for identifying the critical h-s endpoint in Region 4 */
28
+ export declare const REGION4_CRITICAL_HS_TOLERANCE = 0.000001;
29
+ /** Residual tolerance for Region 4 h-s temperature inversion */
30
+ export declare const REGION4_HS_RESIDUAL_TOLERANCE = 1e-10;
31
+ /** Scan resolution used when bracketing Region 4 h-s temperature roots */
32
+ export declare const REGION4_HS_BRACKET_SEGMENTS = 256;
15
33
  /** Critical density [kg/m³] */
16
34
  export declare const RHOc = 322;
17
35
  /** Triple point pressure [MPa] */
18
36
  export declare const Pt = 0.000611657;
19
- /** Minimum pressure [MPa] */
37
+ /** Triple point temperature [K] */
38
+ export declare const Tt = 273.16;
39
+ /** Minimum pressure [MPa].
40
+ * Derived: Psat(T_MIN) = Psat(273.15 K) via Eq. 30. Below the triple-point
41
+ * pressure Pt because T_MIN (0 °C) < Tt (0.01 °C). */
20
42
  export declare const P_MIN = 0.000611212677444;
21
43
  /** Maximum pressure [MPa] */
22
44
  export declare const P_MAX = 100;
@@ -36,9 +58,13 @@ export declare const H_MAX = 7376.980263598506;
36
58
  export declare const R2_T_MIN = 623.15;
37
59
  /** Region 2 maximum temperature for backward eqs [K] (1073.15 K = 800 °C) */
38
60
  export declare const R2_T_MAX = 1073.15;
39
- /** Region 2 critical entropy boundary [kJ/(kg·K)] */
61
+ /** Region 2 subregion boundary entropy [kJ/(kg·K)].
62
+ * Divides R2a from R2b/R2c in the h-s plane.
63
+ * Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
40
64
  export declare const R2_S_CRT = 5.85;
41
- /** Region 2 critical pressure boundary [MPa] */
65
+ /** Region 2 subregion boundary pressure [MPa].
66
+ * Divides R2a from R2b/R2c.
67
+ * Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
42
68
  export declare const R2_P_CRT = 4;
43
69
  /** B23 minimum pressure [MPa] */
44
70
  export declare const B23_P_MIN = 16.5291642526;
@@ -56,12 +82,12 @@ export declare const R5_T_MIN = 1073.15;
56
82
  export declare const R5_P_MAX = 50;
57
83
  /** Region 5 maximum temperature [K] */
58
84
  export declare const R5_T_MAX = 2273.15;
59
- /** B23 minimum entropy [kJ/(kg·K)] */
60
- export declare const B23_S_MIN = 5.048096828;
61
- /** B23 maximum entropy [kJ/(kg·K)] */
62
- export declare const B23_S_MAX = 5.260578707;
63
- /** B23 minimum enthalpy [kJ/kg] */
64
- export declare const B23_H_MIN = 2563.592004;
65
- /** B23 maximum enthalpy [kJ/kg] */
66
- export declare const B23_H_MAX = 2812.942061;
85
+ /** Minimum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 777 K */
86
+ export declare const B23_S_CURVE_MIN = 5.048096828;
87
+ /** Maximum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 644 K */
88
+ export declare const B23_S_CURVE_MAX = 5.260578707;
89
+ /** Minimum enthalpy along the B23 curve [kJ/kg], at T = 623.15 K (currently unused) */
90
+ export declare const B23_H_CURVE_MIN = 2563.592004;
91
+ /** Maximum enthalpy along the B23 curve [kJ/kg], at T = 863.15 K (currently unused) */
92
+ export declare const B23_H_CURVE_MAX = 2812.942061;
67
93
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +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,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,QAAO,CAAC;AAE9C,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,qBAAqB,CAAC;AAExC,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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;sEAGsE;AACtE,eAAO,MAAM,CAAC,WAAW,CAAC;AAE1B;qFACqF;AACrF,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAI/C,+BAA+B;AAC/B,eAAO,MAAM,EAAE,UAAU,CAAC;AAE1B,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,QAAO,CAAC;AAE9C,4DAA4D;AAC5D,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,0EAA0E;AAC1E,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAE3D,8BAA8B;AAC9B,eAAO,MAAM,EAAE,SAAS,CAAC;AAEzB,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,WAAO,CAAC;AAElD,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,0EAA0E;AAC1E,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,+BAA+B;AAC/B,eAAO,MAAM,IAAI,MAAM,CAAC;AAIxB,kCAAkC;AAClC,eAAO,MAAM,EAAE,cAAc,CAAC;AAE9B,mCAAmC;AACnC,eAAO,MAAM,EAAE,SAAS,CAAC;AAIzB;;uDAEuD;AACvD,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,qBAAqB,CAAC;AAExC,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;;gFAEgF;AAChF,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B;;gFAEgF;AAChF,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;AAYhC,oEAAoE;AACpE,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,oEAAoE;AACpE,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,uFAAuF;AACvF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,uFAAuF;AACvF,eAAO,MAAM,eAAe,cAAc,CAAC"}
package/dist/constants.js CHANGED
@@ -5,22 +5,44 @@
5
5
  * for the IAPWS Industrial Formulation 1997.
6
6
  */
7
7
  // ─── Fundamental Constants ──────────────────────────────────────────────────
8
- /** Specific gas constant for water [kJ/(kg·K)] */
8
+ /** Specific gas constant for water [kJ/(kg·K)].
9
+ * IAPWS-IF97, §2 (Table 1). Fixed value for IF97 internal consistency.
10
+ * Do not replace transport correlations with this value; thermal conductivity
11
+ * critical enhancement intentionally uses `R_IAPWS_2011_THERMAL`. */
9
12
  export const R = 0.461526;
13
+ /** Specific gas constant used by the IAPWS 2011 thermal conductivity λ₂ correlation [kJ/(kg·K)].
14
+ * Intentionally differs from IF97's `R`; keep both constants distinct and named. */
15
+ export const R_IAPWS_2011_THERMAL = 0.46151805;
10
16
  // ─── Critical Point ─────────────────────────────────────────────────────────
11
17
  /** Critical temperature [K] */
12
18
  export const Tc = 647.096;
13
19
  /** Temperature exclusion half-band around the critical point [K] */
14
20
  export const CRITICAL_T_EXCLUSION_BAND = 1e-3;
21
+ /** Region 4 endpoint snap tolerance for temperatures [K] */
22
+ export const REGION4_TEMPERATURE_TOLERANCE = 1e-9;
23
+ /** Safety margin used when clamping Region 4 temperatures below Tc [K] */
24
+ export const REGION4_SUBCRITICAL_TEMPERATURE_MARGIN = 1e-8;
15
25
  /** Critical pressure [MPa] */
16
26
  export const Pc = 22.064;
27
+ /** Region 4 endpoint snap tolerance for pressures [MPa] */
28
+ export const REGION4_PRESSURE_TOLERANCE = 1e-9;
29
+ /** Tolerance for identifying the critical h-s endpoint in Region 4 */
30
+ export const REGION4_CRITICAL_HS_TOLERANCE = 1e-6;
31
+ /** Residual tolerance for Region 4 h-s temperature inversion */
32
+ export const REGION4_HS_RESIDUAL_TOLERANCE = 1e-10;
33
+ /** Scan resolution used when bracketing Region 4 h-s temperature roots */
34
+ export const REGION4_HS_BRACKET_SEGMENTS = 256;
17
35
  /** Critical density [kg/m³] */
18
36
  export const RHOc = 322;
19
37
  // ─── Triple Point ───────────────────────────────────────────────────────────
20
38
  /** Triple point pressure [MPa] */
21
39
  export const Pt = 0.000611657;
40
+ /** Triple point temperature [K] */
41
+ export const Tt = 273.16;
22
42
  // ─── Overall Validity Ranges ────────────────────────────────────────────────
23
- /** Minimum pressure [MPa] */
43
+ /** Minimum pressure [MPa].
44
+ * Derived: Psat(T_MIN) = Psat(273.15 K) via Eq. 30. Below the triple-point
45
+ * pressure Pt because T_MIN (0 °C) < Tt (0.01 °C). */
24
46
  export const P_MIN = 0.000611212677444;
25
47
  /** Maximum pressure [MPa] */
26
48
  export const P_MAX = 100.0;
@@ -41,9 +63,13 @@ export const H_MAX = 7376.980263598506;
41
63
  export const R2_T_MIN = 623.15;
42
64
  /** Region 2 maximum temperature for backward eqs [K] (1073.15 K = 800 °C) */
43
65
  export const R2_T_MAX = 1073.15;
44
- /** Region 2 critical entropy boundary [kJ/(kg·K)] */
66
+ /** Region 2 subregion boundary entropy [kJ/(kg·K)].
67
+ * Divides R2a from R2b/R2c in the h-s plane.
68
+ * Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
45
69
  export const R2_S_CRT = 5.85;
46
- /** Region 2 critical pressure boundary [MPa] */
70
+ /** Region 2 subregion boundary pressure [MPa].
71
+ * Divides R2a from R2b/R2c.
72
+ * Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
47
73
  export const R2_P_CRT = 4.0;
48
74
  // ─── Region 2-3 Boundary ───────────────────────────────────────────────────
49
75
  /** B23 minimum pressure [MPa] */
@@ -64,13 +90,21 @@ export const R5_T_MIN = 1073.15;
64
90
  export const R5_P_MAX = 50;
65
91
  /** Region 5 maximum temperature [K] */
66
92
  export const R5_T_MAX = 2273.15;
67
- // ─── B23 Entropy/Enthalpy Boundaries ────────────────────────────────────────
68
- /** B23 minimum entropy [kJ/(kg·K)] */
69
- export const B23_S_MIN = 5.048096828;
70
- /** B23 maximum entropy [kJ/(kg·K)] */
71
- export const B23_S_MAX = 5.260578707;
72
- /** B23 minimum enthalpy [kJ/kg] */
73
- export const B23_H_MIN = 2563.592004;
74
- /** B23 maximum enthalpy [kJ/kg] */
75
- export const B23_H_MAX = 2812.942061;
93
+ // ─── B23 Curve Extrema (Entropy / Enthalpy) ────────────────────────────────
94
+ //
95
+ // These are the GLOBAL EXTREMA along the B23 boundary curve, NOT values at
96
+ // the curve endpoints. Entropy has a minimum at T ≈ 777 K and a maximum at
97
+ // T 644 K. Enthalpy is monotonic: min at the low-T endpoint (623.15 K),
98
+ // max at the high-T endpoint (863.15 K).
99
+ //
100
+ // Ref: Computed from Region 2 properties evaluated along B23(T) for
101
+ // T [623.15, 863.15] K.
102
+ /** Minimum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 777 K */
103
+ export const B23_S_CURVE_MIN = 5.048096828;
104
+ /** Maximum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 644 K */
105
+ export const B23_S_CURVE_MAX = 5.260578707;
106
+ /** Minimum enthalpy along the B23 curve [kJ/kg], at T = 623.15 K (currently unused) */
107
+ export const B23_H_CURVE_MIN = 2563.592004;
108
+ /** Maximum enthalpy along the B23 curve [kJ/kg], at T = 863.15 K (currently unused) */
109
+ export const B23_H_CURVE_MAX = 2812.942061;
76
110
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAE/E,kDAAkD;AAClD,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAE1B,+EAA+E;AAE/E,+BAA+B;AAC/B,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;AAE1B,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAE9C,8BAA8B;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;AAEzB,+BAA+B;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;AAExB,+EAA+E;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;AAE9B,+EAA+E;AAE/E,6BAA6B;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAEvC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC;AAE3B,gDAAgD;AAChD,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC;AAE5B,oDAAoD;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC;AAEvC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC;AAExC,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC;AAErC,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAEvC,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,qDAAqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,8EAA8E;AAE9E,iCAAiC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEvC,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,8EAA8E;AAE9E,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAEzC,yCAAyC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAE3C,8EAA8E;AAE9E,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAE3B,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,+EAA+E;AAE/E,sCAAsC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,sCAAsC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAE/E;;;sEAGsE;AACtE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAE1B;qFACqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C,+EAA+E;AAE/E,+BAA+B;AAC/B,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;AAE1B,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAE9C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAElD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sCAAsC,GAAG,IAAI,CAAC;AAE3D,8BAA8B;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;AAEzB,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAElD,gEAAgE;AAChE,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,+BAA+B;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;AAExB,+EAA+E;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;AAE9B,mCAAmC;AACnC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;AAEzB,+EAA+E;AAE/E;;uDAEuD;AACvD,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAEvC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC;AAE3B,gDAAgD;AAChD,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC;AAE5B,oDAAoD;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAE7B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC;AAEvC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC;AAExC,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC;AAErC,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAEvC,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC;;gFAEgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B;;gFAEgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,8EAA8E;AAE9E,iCAAiC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;AAEvC,kCAAkC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,8EAA8E;AAE9E,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAEzC,yCAAyC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAE3C,8EAA8E;AAE9E,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAE3B,uCAAuC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEhC,8EAA8E;AAC9E,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAyC;AACzC,EAAE;AACF,oEAAoE;AACpE,+BAA+B;AAE/B,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function assertFiniteNumber(parameter: string, value: unknown): asserts value is number;
2
+ //# sourceMappingURL=input-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validation.d.ts","sourceRoot":"","sources":["../../src/core/input-validation.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAI7F"}