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
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 2.1.2
6
+
7
+ - fix some issues
8
+
9
+ ## 2.1.1
10
+
11
+ - fix some issues: enhance end-points process
12
+
5
13
  ## 2.1.0
6
14
 
7
15
  - fix some issues
package/README.md CHANGED
@@ -2,15 +2,13 @@
2
2
 
3
3
  Calculate industrial water and steam properties in Node.js and TypeScript, based on the [IAPWS-IF97](https://www.iapws.org/) standard (International Association for the Properties of Water and Steam — Industrial Formulation 1997).
4
4
 
5
- The library provides forward and backward state solvers, saturation solvers, and transport-property helpers for engineering calculations involving water and steam.
5
+ This library provides forward and backward state solvers, saturation solvers, and transport-property helpers for engineering calculations involving water and steam.
6
6
 
7
7
  ## Features
8
8
 
9
9
  - Covers IF97 Regions 1–5, including high-temperature Region 5
10
10
  - Forward, backward, and saturation solvers behind a consistent API
11
11
  - Transport properties: viscosity, thermal conductivity, surface tension, dielectric constant, and ionization constant
12
- - Typed ESM package with bundled TypeScript declarations
13
- - Clean export split in `2.0`: root import for main solvers, subpaths for advanced helpers
14
12
  - Verified against official IAPWS tables and published engineering references
15
13
 
16
14
  ## Project Origin
@@ -110,13 +108,14 @@ type SteamState = {
110
108
  };
111
109
  ```
112
110
 
113
- `SteamState` always uses canonical property names. Input aliases like `p`/`pressure` do not create duplicate fields.
111
+ `SteamState` always uses canonical property names.
114
112
 
115
113
  **Notes:**
116
114
 
117
115
  - `quality` is `null` for single-phase states — it is only defined on the saturation line.
118
116
  - In two-phase mixtures (`0 < x < 1`), `cp`, `cv`, `speedOfSound`, `isobaricExpansion`, `isothermalCompressibility`, `viscosity`, `thermalConductivity`, `dielectricConstant`, and `ionizationConstant` are `null`.
119
117
  - Saturation endpoints (`x = 0` or `x = 1`) still expose single-phase transport properties even though they carry Region 4 metadata.
118
+ - `solvePT(p, T)` is a single-phase solver. On the subcritical saturation boundary it resolves to the liquid side.
120
119
  - `surfaceTension` is only available for Region 4 saturation states below the critical point; otherwise `null`.
121
120
  - `density` is provided directly — no need to invert `specificVolume`.
122
121
  - `ionizationConstant` is `null` outside the IAPWS validity range for that correlation.
@@ -141,47 +140,17 @@ type SteamState = {
141
140
 
142
141
  Any field typed as `number | null` returns `null` when the property is undefined for the given state.
143
142
 
144
- ## Advanced Imports
143
+ ## Saturation Endpoint
145
144
 
146
- The package root exports only the main solver API, core types, and error classes.
147
- Lower-level helpers are available through dedicated subpaths:
148
-
149
- - `iapws-if97/transport`: `viscosity`, `thermalConductivity`, `surfaceTension`, `dielectricConstant`, `ionizationConstant`
150
- - `iapws-if97/regions`: `region1`, `region2`, `region3ByRhoT`, `region5`
151
- - `iapws-if97/saturation`: `saturationPressure`, `saturationTemperature`
152
- - `iapws-if97/boundaries`: `boundary23_T_to_P`, `boundary23_P_to_T`, `region3Volume`, `region3SatVolume`
153
- - `iapws-if97/detect`: `detectRegionPT`, `detectRegionPH`, `detectRegionPS`, `detectRegionHS`, `detectRegionTH`, `detectRegionTS`
154
-
155
- Examples:
156
-
157
- ```ts
158
- import { viscosity } from 'iapws-if97/transport';
159
- import { region1 } from 'iapws-if97/regions';
160
- import { saturationTemperature } from 'iapws-if97/saturation';
161
- import { detectRegionPT } from 'iapws-if97/detect';
162
- ```
163
-
164
- ## Migration to 2.0
165
-
166
- Version `2.0` limits the root export to the main solver API.
167
- If you imported lower-level helpers from the package root in `1.x`, update them to use subpath imports:
168
-
169
- - `import { viscosity } from 'iapws-if97'` → `import { viscosity } from 'iapws-if97/transport'`
170
- - `import { region1 } from 'iapws-if97'` → `import { region1 } from 'iapws-if97/regions'`
171
- - `import { saturationTemperature } from 'iapws-if97'` → `import { saturationTemperature } from 'iapws-if97/saturation'`
172
- - `import { detectRegionPT } from 'iapws-if97'` → `import { detectRegionPT } from 'iapws-if97/detect'`
173
-
174
- ## Advanced Usage Notes
175
-
176
- - `region1`, `region2`, `region3ByRhoT`, and `region5` return core thermodynamic properties **without** transport-property enrichment.
177
- - `detectRegion*` helpers return a `Region` enum value, or `-1` if the input falls outside IF97 validity.
178
- - `viscosity(T, rho)` and `dielectricConstant(T, rho)` take temperature and density directly — not a `SteamState`.
179
- - `ionizationConstant(T, rho)` also takes temperature and density; returns `null` outside its validity range.
180
- - `thermalConductivity(T, rho, cp?, cv?, drhodP_T?, mu?)` supports two calling levels:
181
- - **Minimal:** pass `T` and `rho` for base conductivity.
182
- - **Full:** additionally pass `cp`, `cv`, `drhodP_T`, and `mu` to include the IAPWS 2011 critical-enhancement term.
183
- - `surfaceTension(T)` returns `null` outside its valid temperature range. It applies only along the saturation line.
184
- - `solveTH(T, h)` prefers the compressed-liquid branch when both a subcritical liquid state and a two-phase state are possible at the same `T` and `h`. Exact saturation endpoints still return Region 4 metadata.
145
+ - Low-level Region 4 helpers stay mathematically permissive and high-level saturation state solvers are stricter:
146
+ - `solvePx(p, x)` accepts `Pt p < Pc`
147
+ - `solveTx(T, x)` accepts `Tt = 273.16 K ≤ T < Tc`
148
+ - The true triple point is supported as a saturation-state boundary:
149
+ - `solvePx(Pt, x)` is valid
150
+ - `solveTx(Tt, x)` is valid
151
+ - `273.15 K` is treated as a low-level extrapolation boundary only.
152
+ - The exact critical point is never returned as a Region 4 state.
153
+ - `solveTH(T, h)` and `solveTS(T, s)` keep a small exclusion band around `Tc` and reject inputs within `0.001 K` of the critical temperature.
185
154
 
186
155
  ## Errors and Limits
187
156
 
@@ -193,16 +162,6 @@ The library throws typed errors:
193
162
  | `ConvergenceError` | An internal iterative solve failed to converge |
194
163
  | `IF97Error` | Base class for all library-specific errors |
195
164
 
196
- **Boundary rules:**
197
-
198
- - `solvePT(p, T)` covers the IF97 industrial range up to `100 MPa` / `2273.15 K`. Region 5 is limited to `50 MPa`.
199
- - The exact critical point (`22.064 MPa`, `647.096 K`) is rejected because derivative properties are singular there.
200
- - `solvePx(p, x)` requires the saturation line: `Pt ≤ p ≤ Pc`.
201
- - `solveTx(T, x)` requires the saturation line: `273.15 K ≤ T ≤ Tc`.
202
- - `solveTH(T, h)` and `solveTS(T, s)` support Regions 1–5. Inputs within `0.001 K` of the critical temperature are rejected.
203
- - `x` must be in `[0, 1]` for two-phase calculations.
204
- - Undefined properties are returned as `null`, never `NaN`.
205
-
206
165
  ## Validity Notes
207
166
 
208
167
  - Thermodynamic properties follow IF97 validity ranges: up to `100 MPa` and `2273.15 K` (including Region 5).
@@ -241,16 +200,17 @@ This Mollier `h-s` diagram was generated with `iapws-if97` as a practical end-to
241
200
 
242
201
  Compares saturation states against *ASME International Steam Tables for Industrial Use*, 3rd ed., Table S-2 ("Properties of Saturated Water and Steam — Pressure").
243
202
  Each case checks 7 values: saturation temperature, liquid/vapor specific volume, enthalpy, and entropy.
203
+ The snapshot below reflects the current `tests/standards-asme` regression run.
244
204
 
245
205
  | ASME case | Pressure (MPa) | Points checked | Max relative error |
246
206
  | --- | ---: | ---: | ---: |
247
- | Table S-2 @ 0.01 MPa | 0.01 | 7 | 0.02580% |
248
- | Table S-2 @ 0.10 MPa | 0.10 | 7 | 0.01417% |
249
- | Table S-2 @ 1.00 MPa | 1.00 | 7 | 0.02074% |
250
- | Table S-2 @ 5.0 MPa | 5.0 | 7 | 0.03154% |
251
- | Table S-2 @ 10.0 MPa | 10.0 | 7 | 0.02616% |
252
- | Table S-2 @ 20.0 MPa | 20.0 | 7 | 0.01730% |
253
- | Overall worst case | - | 42 | 0.03154% |
207
+ | Table S-2 @ 0.01 MPa | 0.01 | 7 | 0.0257993% |
208
+ | Table S-2 @ 0.10 MPa | 0.10 | 7 | 0.0141744% |
209
+ | Table S-2 @ 1.00 MPa | 1.00 | 7 | 0.0207405% |
210
+ | Table S-2 @ 5.0 MPa | 5.0 | 7 | 0.0315405% |
211
+ | Table S-2 @ 10.0 MPa | 10.0 | 7 | 0.0261599% |
212
+ | Table S-2 @ 20.0 MPa | 20.0 | 7 | 0.0173004% |
213
+ | Overall worst case | - | 42 | 0.0315405% |
254
214
 
255
215
  The current ASME regression threshold is `maxRelativeError < 5e-4` (less than `0.05%`).
256
216
 
@@ -258,6 +218,7 @@ The current ASME regression threshold is `maxRelativeError < 5e-4` (less than `0
258
218
 
259
219
  Compares superheated-steam states against *GB/T 34060-2017*, Table A.3(续), page 55.
260
220
  Each case checks 4 values at `10 MPa`: specific volume, enthalpy, entropy, and speed of sound.
221
+ The snapshot below reflects the current `tests/standards-cn` regression run.
261
222
 
262
223
  | GB/T case | Pressure (MPa) | Temperature (°C) | Points checked | Max relative error |
263
224
  | --- | ---: | ---: | ---: | ---: |
@@ -1 +1 @@
1
- {"version":3,"file":"hs.d.ts","sourceRoot":"","sources":["../../src/backward/hs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAoMrE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAwI7D"}
1
+ {"version":3,"file":"hs.d.ts","sourceRoot":"","sources":["../../src/backward/hs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAsMrE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAqG7D"}
@@ -12,12 +12,16 @@ import { region1 } from '../regions/region1.js';
12
12
  import { region2 } from '../regions/region2.js';
13
13
  import { region3ByRhoT } from '../regions/region3.js';
14
14
  import { region5 } from '../regions/region5.js';
15
+ import { assertFiniteNumber } from '../core/input-validation.js';
15
16
  import { detectRegionHS } from '../core/region-detector.js';
16
17
  import { newtonRaphson } from '../solvers/newton-raphson.js';
17
18
  import { nelderMead } from '../solvers/nelder-mead.js';
18
19
  import { solvePH } from './ph.js';
19
20
  import { validateBackwardState } from './solution-validation.js';
20
- import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtPressure, saturationEndpointsAtTemperature, } from '../saturation/common.js';
21
+ import { sumNormalizedResiduals } from './objective-normalization.js';
22
+ import { backwardConstraintTolerance } from './tolerances.js';
23
+ import { tryRegion4HSState, } from '../saturation/region4-hs.js';
24
+ import { assertCriticalRegion4HSInput, } from '../saturation/region4-boundaries.js';
21
25
  // ─── Backward Polynomial Evaluator ─────────────────────────────────────────
22
26
  function evalPoly(table, aShift, bShift, a, b) {
23
27
  let sum = 0;
@@ -104,9 +108,11 @@ function r2cPhs(h, s) {
104
108
  }
105
109
  function r2Phs(h, s) {
106
110
  const hBound = b2abBoundary(s);
111
+ // Region 2 h-s subregion selection: 2a below the h(s) boundary,
112
+ // otherwise split 2b/2c at the published entropy crossover.
107
113
  if (h <= hBound)
108
114
  return r2aPhs(h, s);
109
- if (s >= 5.85)
115
+ if (s >= C.R2_S_CRT)
110
116
  return r2bPhs(h, s);
111
117
  return r2cPhs(h, s);
112
118
  }
@@ -153,25 +159,21 @@ function r3Phs(h, s) {
153
159
  return r3aPhs(h, s);
154
160
  return r3bPhs(h, s);
155
161
  }
156
- // ─── Region 4 Tsat(h,s) — Eq. 9 ────────────────────────────────────────────
157
- const R4_THS = [
158
- [0, 0, 0.179882673606601], [0, 3, -0.267507455199603], [0, 12, 1.1627672261266],
159
- [1, 0, 0.147545428713616], [1, 1, -0.512871635973248], [1, 2, 0.421333567697984],
160
- [1, 5, 0.56374952218987], [2, 0, 0.429274443819153], [2, 5, -3.3570455214214],
161
- [2, 8, 10.8890916499278], [3, 0, -0.248483390456012], [3, 2, 0.30415322190639],
162
- [3, 3, -0.494819763939905], [3, 4, 1.07551674933261], [4, 0, 0.0733888415457688],
163
- [4, 1, 0.0140170545411085], [5, 1, -0.106110975998808], [5, 2, 0.0168324361811875],
164
- [5, 4, 1.25028363714877], [5, 16, 1013.16840309509], [6, 6, -1.51791558000712],
165
- [6, 8, 52.4277865990866], [6, 22, 23049.5545563912], [8, 1, 0.0249459806365456],
166
- [10, 20, 2107964.67412137], [10, 36, 3.66836848613065e8], [12, 24, -1.44814105365163e8],
167
- [14, 1, -1.7927637300359e-3], [14, 28, 4.89955602100459e9], [16, 12, 471.262212070518],
168
- [16, 32, -8.29294390198652e10], [18, 14, -1715.45662263191], [18, 22, 3557776.82973575],
169
- [18, 36, 5.86062760258436e11], [20, 24, -1.29887635078195e7], [28, 36, 3.17247449371057e10],
170
- ];
171
- function r4Ths(h, s) {
172
- const mu = h / 2800;
173
- const sig = s / 9.2;
174
- return 550 * evalPoly(R4_THS, 0.119, 1.07, mu, sig);
162
+ const REGION5_HS_OUT_OF_DOMAIN_PENALTY = 1e18;
163
+ function normalizedRegion5HsObjective(h, s) {
164
+ const enthalpyTolerance = backwardConstraintTolerance('enthalpy', h);
165
+ const entropyTolerance = backwardConstraintTolerance('entropy', s);
166
+ return (pair) => {
167
+ const [p, T] = pair;
168
+ if (p <= 0 || p > C.R5_P_MAX || T <= C.R5_T_MIN || T > C.R5_T_MAX) {
169
+ return REGION5_HS_OUT_OF_DOMAIN_PENALTY;
170
+ }
171
+ const state = region5(p, T);
172
+ return sumNormalizedResiduals([
173
+ { actual: state.enthalpy, expected: h, tolerance: enthalpyTolerance },
174
+ { actual: state.entropy, expected: s, tolerance: entropyTolerance },
175
+ ]);
176
+ };
175
177
  }
176
178
  // ─── Main HS Solver ─────────────────────────────────────────────────────────
177
179
  /**
@@ -180,12 +182,22 @@ function r4Ths(h, s) {
180
182
  * @param s - Specific entropy [kJ/(kg·K)]
181
183
  */
182
184
  export function solveHS(h, s) {
185
+ assertFiniteNumber('Enthalpy', h);
186
+ assertFiniteNumber('Entropy', s);
183
187
  if (h < C.H_MIN || h > C.H_MAX) {
184
188
  throw new OutOfRangeError('Enthalpy', h, C.H_MIN, C.H_MAX);
185
189
  }
186
190
  if (s < C.S_MIN || s > C.S_MAX) {
187
191
  throw new OutOfRangeError('Entropy', s, C.S_MIN, C.S_MAX);
188
192
  }
193
+ assertCriticalRegion4HSInput(h, s, 'solveHS');
194
+ const region4State = tryRegion4HSState(h, s);
195
+ if (region4State !== null) {
196
+ return validateBackwardState(region4State, [
197
+ { label: 'enthalpy', expected: h },
198
+ { label: 'entropy', expected: s },
199
+ ], { solverName: 'solveHS', expectedRegion: Region.Region4 });
200
+ }
189
201
  const region = detectRegionHS(h, s);
190
202
  switch (region) {
191
203
  case Region.Region1: {
@@ -220,30 +232,11 @@ export function solveHS(h, s) {
220
232
  ], { solverName: 'solveHS', expectedRegion: Region.Region3 });
221
233
  }
222
234
  case Region.Region4: {
223
- // Critical point check
224
- if (Math.abs(s - C.R3_S_CRT) < 1e-6 && Math.abs(h - C.R3_H_CRT) < 1e-6) {
225
- return region3ByRhoT(C.RHOc, C.Tc);
226
- }
227
- let T = r4Ths(h, s);
228
- T = Math.max(273.15, Math.min(T, C.Tc - 0.001));
229
- const temperature = newtonRaphson((temperatureGuess) => {
230
- const endpoints = saturationEndpointsAtTemperature(Math.max(273.15, Math.min(temperatureGuess, C.Tc - 0.001)));
231
- const xh = qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h);
232
- const xs = qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s);
233
- return xh - xs;
234
- }, T);
235
- const finalTemperature = Math.max(273.15, Math.min(temperature, C.Tc - 0.001));
236
- const endpoints = saturationEndpointsAtTemperature(finalTemperature);
237
- const quality = (qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h) +
238
- qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s)) / 2;
239
- return validateBackwardState(mixSaturationState(saturationEndpointsAtPressure(endpoints.pressure), quality), [
240
- { label: 'enthalpy', expected: h },
241
- { label: 'entropy', expected: s },
242
- ], { solverName: 'solveHS', expectedRegion: Region.Region4 });
235
+ throw new IF97Error('solveHS identified Region 4 but failed to construct a valid saturation state');
243
236
  }
244
237
  case Region.Region5: {
245
- const sol = nelderMead((pair) => Math.abs(region5(pair[0], pair[1]).enthalpy - h) +
246
- Math.abs(region5(pair[0], pair[1]).entropy - s), [1, 1400]);
238
+ const objective = normalizedRegion5HsObjective(h, s);
239
+ const sol = nelderMead(objective, [1, 1400], { maxIterations: 1000, minErrorDelta: 1e-8, minTolerance: 1e-9 });
247
240
  return validateBackwardState(region5(sol.x[0], sol.x[1]), [
248
241
  { label: 'enthalpy', expected: h },
249
242
  { label: 'entropy', expected: s },
@@ -1 +1 @@
1
- {"version":3,"file":"hs.js","sourceRoot":"","sources":["../../src/backward/hs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AAEjC,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,KAAuB,EAAE,MAAc,EAAE,MAAc,EAAE,CAAS,EAAE,CAAS;IAC7F,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;QAC9B,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAE9E,MAAM,MAAM,GAAqB;IAC/B,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,cAAc,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,eAAe,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;CACf,CAAC;AAEX,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,OAAO,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,6EAA6E;AAE7E,6DAA6D;AAC7D,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,OAAO,GAAqB;IAChC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IAC1E,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC;IACxE,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACxE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,EAAE,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,eAAe,CAAC;IACvE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACxE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC;CACvC,CAAC;AAEX,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,OAAO,GAAqB;IAChC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACzE,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC;IACvE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,eAAe,CAAC;CAClE,CAAC;AAEX,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,OAAO,GAAqB;IAChC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,cAAc,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC;IACxE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC;IACxE,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IAC7E,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,mBAAmB,CAAC;CACpB,CAAC;AAEX,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,8EAA8E;AAE9E,MAAM,OAAO,GAAqB;IAChC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACpE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,mBAAmB,CAAC;IACxE,CAAC,CAAC,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IAC7E,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC;IACpF,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC;IACpF,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC;IACnF,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,kBAAkB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC;CAC1E,CAAC;AAEX,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,OAAO,GAAqB;IAChC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,oBAAoB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC;IACnF,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,oBAAoB,CAAC;IAClF,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC;IAC9E,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,mBAAmB,CAAC;IAC9E,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACxE,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IAC1E,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IAC5E,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,mBAAmB,CAAC;IAC1E,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC;IAC3E,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAC,gBAAgB,CAAC;CACxC,CAAC;AAEX,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,OAAO,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,8EAA8E;AAE9E,MAAM,MAAM,GAAqB;IAC/B,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,eAAe,CAAC;IACvE,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC;IACxE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,eAAe,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC;IACxE,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC;IAC1E,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,gBAAgB,CAAC;IACtE,CAAC,CAAC,EAAC,CAAC,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,kBAAkB,CAAC;IACvE,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,kBAAkB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,kBAAkB,CAAC;IAC/E,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,kBAAkB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,kBAAkB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC;IAC9E,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,gBAAgB,CAAC;IAC/E,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,CAAC,kBAAkB,CAAC,EAAC,CAAC,EAAE,EAAC,EAAE,EAAC,mBAAmB,CAAC;CAC3E,CAAC;AAEX,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,OAAO,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,+EAA+E;AAE/E;;;;GAIG;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,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EACzD,CAAC,EAAE,EAAE,GAAG,CAAC,CACV,CAAC;YACF,OAAO,qBAAqB,CAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B;gBACE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAClC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EACzD,CAAC,EAAE,EAAE,EAAE,CAAC,CACT,CAAC;YACF,OAAO,qBAAqB,CAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B;gBACE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAClC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAC/D,CAAC,IAAI,EAAE,EAAE,CAAC,CACX,CAAC;YACF,OAAO,qBAAqB,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC;gBACE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAClC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,uBAAuB;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC;gBACvE,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,aAAa,CAC/B,CAAC,gBAAgB,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,gCAAgC,CAChD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAC3D,CAAC;gBACF,MAAM,EAAE,GAAG,6BAA6B,CACtC,SAAS,CAAC,MAAM,CAAC,QAAQ,EACzB,SAAS,CAAC,KAAK,CAAC,QAAQ,EACxB,CAAC,CACF,CAAC;gBACF,MAAM,EAAE,GAAG,6BAA6B,CACtC,SAAS,CAAC,MAAM,CAAC,OAAO,EACxB,SAAS,CAAC,KAAK,CAAC,OAAO,EACvB,CAAC,CACF,CAAC;gBACF,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC,EACD,CAAC,CACF,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,CACd,6BAA6B,CAC3B,SAAS,CAAC,MAAM,CAAC,QAAQ,EACzB,SAAS,CAAC,KAAK,CAAC,QAAQ,EACxB,CAAC,CACF;gBACD,6BAA6B,CAC3B,SAAS,CAAC,MAAM,CAAC,OAAO,EACxB,SAAS,CAAC,KAAK,CAAC,OAAO,EACvB,CAAC,CACF,CACF,GAAG,CAAC,CAAC;YAEN,OAAO,qBAAqB,CAC1B,kBAAkB,CAChB,6BAA6B,CAAC,SAAS,CAAC,QAAQ,CAAC,EACjD,OAAO,CACR,EACD;gBACE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAClC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EACzD,CAAC,CAAC,EAAE,IAAI,CAAC,CACV,CAAC;YACF,OAAO,qBAAqB,CAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B;gBACE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAClC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD;YACE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"hs.js","sourceRoot":"","sources":["../../src/backward/hs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface NormalizedResidual {
2
+ actual: number;
3
+ expected: number;
4
+ tolerance: number;
5
+ }
6
+ export declare function sumNormalizedResiduals(terms: readonly NormalizedResidual[]): number;
7
+ //# sourceMappingURL=objective-normalization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objective-normalization.d.ts","sourceRoot":"","sources":["../../src/backward/objective-normalization.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAQnF"}
@@ -0,0 +1,8 @@
1
+ export function sumNormalizedResiduals(terms) {
2
+ let sum = 0;
3
+ for (const term of terms) {
4
+ sum += Math.abs(term.actual - term.expected) / term.tolerance;
5
+ }
6
+ return sum;
7
+ }
8
+ //# sourceMappingURL=objective-normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objective-normalization.js","sourceRoot":"","sources":["../../src/backward/objective-normalization.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,sBAAsB,CAAC,KAAoC;IACzE,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAChE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ph.d.ts","sourceRoot":"","sources":["../../src/backward/ph.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AA8CrE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AA0ED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAkED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAOlD;AAID;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAyF7D"}
1
+ {"version":3,"file":"ph.d.ts","sourceRoot":"","sources":["../../src/backward/ph.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AA0DrE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;AA0ED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAkED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAOlD;AAID;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAsG7D"}
@@ -13,11 +13,15 @@ import { region2 } from '../regions/region2.js';
13
13
  import { region3ByRhoT } from '../regions/region3.js';
14
14
  import { region5 } from '../regions/region5.js';
15
15
  import { saturationTemperature } from '../regions/region4.js';
16
+ import { assertFiniteNumber } from '../core/input-validation.js';
16
17
  import { detectRegionPH } from '../core/region-detector.js';
17
18
  import { newtonRaphson } from '../solvers/newton-raphson.js';
18
19
  import { nelderMead } from '../solvers/nelder-mead.js';
19
20
  import { validateBackwardState } from './solution-validation.js';
21
+ import { backwardConstraintTolerance } from './tolerances.js';
22
+ import { sumNormalizedResiduals } from './objective-normalization.js';
20
23
  import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtPressure, } from '../saturation/common.js';
24
+ import { assertCriticalRegion4PHInput, assertRegion4StateAllowed, } from '../saturation/region4-boundaries.js';
21
25
  // ─── Backward Polynomial Evaluator ─────────────────────────────────────────
22
26
  function evalPoly(table, piShift, etaShift, pi, eta) {
23
27
  let sum = 0;
@@ -39,6 +43,10 @@ function r1BackwardT(p, h) {
39
43
  return evalPoly(R1_PH, 0, -1, p, h / 2500);
40
44
  }
41
45
  // ─── Region 2 Backward T(P,H) ─────────────────────────────────────────────
46
+ // Lowest pressure where Region 2c can appear in the P-H backward formulation.
47
+ // For 4 < p <= 6.546699678 MPa the supplementary release selects subregion 2b
48
+ // directly; above this threshold use the B2bc(h) boundary to discriminate 2b/2c.
49
+ const R2_PH_B2BC_P_MIN = 6.546699678;
42
50
  // B2bc boundary (exported for future use)
43
51
  export function b2bc_H_P(h) {
44
52
  return 0.90584278514723e-3 - 0.67955786399241 * h + 0.12809002730136e-3 * h * h;
@@ -93,11 +101,11 @@ function r2BackwardT(p, h) {
93
101
  if (p <= C.R2_P_CRT) {
94
102
  T = r2aBackwardT(p, h);
95
103
  }
96
- else if (p <= 6.546699678) {
104
+ else if (p <= R2_PH_B2BC_P_MIN) {
97
105
  T = r2bBackwardT(p, h);
98
106
  }
99
107
  else {
100
- if (p < 905.84278514723 - 0.67955786399241 * h + 1.2809002730136e-4 * h * h) {
108
+ if (p < b2bc_H_P(h)) {
101
109
  T = r2bBackwardT(p, h);
102
110
  }
103
111
  else {
@@ -189,12 +197,15 @@ export function r4EnthalpyToPsat(h) {
189
197
  * @param h - Specific enthalpy [kJ/kg]
190
198
  */
191
199
  export function solvePH(p, h) {
200
+ assertFiniteNumber('Pressure', p);
201
+ assertFiniteNumber('Enthalpy', h);
192
202
  if (p < C.P_MIN || p > C.P_MAX) {
193
203
  throw new OutOfRangeError('Pressure', p, C.P_MIN, C.P_MAX);
194
204
  }
195
205
  if (h < C.H_MIN || h > C.H_MAX) {
196
206
  throw new OutOfRangeError('Enthalpy', h, C.H_MIN, C.H_MAX);
197
207
  }
208
+ assertCriticalRegion4PHInput(p, h, 'solvePH');
198
209
  const region = detectRegionPH(p, h);
199
210
  switch (region) {
200
211
  case Region.Region1: {
@@ -215,6 +226,8 @@ export function solvePH(p, h) {
215
226
  }
216
227
  case Region.Region3: {
217
228
  const hBound = b3ab_P_to_H(p);
229
+ const pressureTolerance = 1e-5 * Math.max(1, Math.abs(p));
230
+ const enthalpyTolerance = backwardConstraintTolerance('enthalpy', h);
218
231
  let T0, v0;
219
232
  if (h < hBound) {
220
233
  T0 = 760 * evalPoly(R3A_PH_T, -0.240, 0.615, p / 100, h / 2300);
@@ -224,15 +237,21 @@ export function solvePH(p, h) {
224
237
  T0 = 860 * evalPoly(R3B_PH_T, -0.298, 0.720, p / 100, h / 2800);
225
238
  v0 = 0.0088 * evalPoly(R3B_PH_V, -0.0661, 0.720, p / 100, h / 2800);
226
239
  }
227
- const sol = nelderMead((pair) => Math.abs(region3ByRhoT(1 / pair[0], pair[1]).enthalpy - h) +
228
- Math.abs(region3ByRhoT(1 / pair[0], pair[1]).pressure - p), [v0, T0]);
240
+ const sol = nelderMead((pair) => {
241
+ const state = region3ByRhoT(1 / pair[0], pair[1]);
242
+ return sumNormalizedResiduals([
243
+ { actual: state.enthalpy, expected: h, tolerance: enthalpyTolerance },
244
+ { actual: state.pressure, expected: p, tolerance: pressureTolerance },
245
+ ]);
246
+ }, [v0, T0], { maxIterations: 1000, minErrorDelta: 1e-8, minTolerance: 1e-9 });
229
247
  return validateBackwardState(region3ByRhoT(1 / sol.x[0], sol.x[1]), [
230
- { label: 'pressure', expected: p, tolerance: 1e-5 * Math.max(1, Math.abs(p)) },
248
+ { label: 'pressure', expected: p, tolerance: pressureTolerance },
231
249
  { label: 'enthalpy', expected: h },
232
250
  ], { solverName: 'solvePH', expectedRegion: Region.Region3 });
233
251
  }
234
252
  case Region.Region4: {
235
253
  const endpoints = saturationEndpointsAtPressure(p);
254
+ assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solvePH');
236
255
  const x = qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h);
237
256
  return validateBackwardState(mixSaturationState(endpoints, x), [
238
257
  { label: 'pressure', expected: p },
@@ -1 +1 @@
1
- {"version":3,"file":"ph.js","sourceRoot":"","sources":["../../src/backward/ph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ph.js","sourceRoot":"","sources":["../../src/backward/ph.ts"],"names":[],"mappings":"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"}
@@ -1 +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;AA+JrE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAwF7D"}
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;AAsKrE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAqG7D"}