iapws-if97 2.0.2 → 2.1.1
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.
- package/CHANGELOG.md +8 -0
- package/README.md +33 -65
- package/dist/backward/hs.d.ts.map +1 -1
- package/dist/backward/hs.js +28 -42
- package/dist/backward/hs.js.map +1 -1
- package/dist/backward/ph.d.ts.map +1 -1
- package/dist/backward/ph.js +24 -5
- package/dist/backward/ph.js.map +1 -1
- package/dist/backward/ps.d.ts.map +1 -1
- package/dist/backward/ps.js +24 -5
- package/dist/backward/ps.js.map +1 -1
- package/dist/backward/solution-validation.d.ts +13 -0
- package/dist/backward/solution-validation.d.ts.map +1 -0
- package/dist/backward/solution-validation.js +85 -0
- package/dist/backward/solution-validation.js.map +1 -0
- package/dist/backward/th.d.ts.map +1 -1
- package/dist/backward/th.js +35 -5
- package/dist/backward/th.js.map +1 -1
- package/dist/backward/tolerances.d.ts +6 -0
- package/dist/backward/tolerances.d.ts.map +1 -0
- package/dist/backward/tolerances.js +21 -0
- package/dist/backward/tolerances.js.map +1 -0
- package/dist/backward/ts.d.ts.map +1 -1
- package/dist/backward/ts.js +35 -5
- package/dist/backward/ts.js.map +1 -1
- package/dist/constants.d.ts +34 -12
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +43 -13
- package/dist/constants.js.map +1 -1
- package/dist/core/region-detector.d.ts.map +1 -1
- package/dist/core/region-detector.js +56 -12
- package/dist/core/region-detector.js.map +1 -1
- package/dist/core/solver.d.ts.map +1 -1
- package/dist/core/solver.js +10 -4
- package/dist/core/solver.js.map +1 -1
- package/dist/regions/region3-subregions.d.ts +6 -2
- package/dist/regions/region3-subregions.d.ts.map +1 -1
- package/dist/regions/region3-subregions.js +15 -10
- package/dist/regions/region3-subregions.js.map +1 -1
- package/dist/regions/region3.d.ts.map +1 -1
- package/dist/regions/region3.js +3 -0
- package/dist/regions/region3.js.map +1 -1
- package/dist/regions/region4.d.ts +3 -1
- package/dist/regions/region4.d.ts.map +1 -1
- package/dist/regions/region4.js +9 -6
- package/dist/regions/region4.js.map +1 -1
- package/dist/saturation/common.d.ts.map +1 -1
- package/dist/saturation/common.js +23 -11
- package/dist/saturation/common.js.map +1 -1
- package/dist/saturation/region4-boundaries.d.ts +14 -0
- package/dist/saturation/region4-boundaries.d.ts.map +1 -0
- package/dist/saturation/region4-boundaries.js +79 -0
- package/dist/saturation/region4-boundaries.js.map +1 -0
- package/dist/saturation/region4-hs.d.ts +3 -0
- package/dist/saturation/region4-hs.d.ts.map +1 -0
- package/dist/saturation/region4-hs.js +82 -0
- package/dist/saturation/region4-hs.js.map +1 -0
- package/dist/saturation/two-phase.d.ts.map +1 -1
- package/dist/saturation/two-phase.js +4 -9
- package/dist/saturation/two-phase.js.map +1 -1
- package/dist/saturation.d.ts +6 -1
- package/dist/saturation.d.ts.map +1 -1
- package/dist/saturation.js +6 -1
- package/dist/saturation.js.map +1 -1
- package/dist/types.d.ts +8 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/backward/ps.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BasicProperties } from '../types.js';
|
|
2
|
+
import { Region } from '../types.js';
|
|
3
|
+
export interface BackwardConstraint {
|
|
4
|
+
label: 'pressure' | 'temperature' | 'enthalpy' | 'entropy';
|
|
5
|
+
expected: number;
|
|
6
|
+
tolerance?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface BackwardValidationOptions {
|
|
9
|
+
solverName: string;
|
|
10
|
+
expectedRegion?: Region;
|
|
11
|
+
}
|
|
12
|
+
export declare function validateBackwardState(state: BasicProperties, constraints: readonly BackwardConstraint[], options: BackwardValidationOptions): BasicProperties;
|
|
13
|
+
//# sourceMappingURL=solution-validation.d.ts.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as C from '../constants.js';
|
|
2
|
+
import { detectRegionPT } from '../core/region-detector.js';
|
|
3
|
+
import { saturationPressure } from '../regions/region4.js';
|
|
4
|
+
import { IF97Error, Region } from '../types.js';
|
|
5
|
+
import { backwardConstraintTolerance, region4SaturationPressureTolerance, } from './tolerances.js';
|
|
6
|
+
function propertyValue(state, label) {
|
|
7
|
+
switch (label) {
|
|
8
|
+
case 'pressure':
|
|
9
|
+
return state.pressure;
|
|
10
|
+
case 'temperature':
|
|
11
|
+
return state.temperature;
|
|
12
|
+
case 'enthalpy':
|
|
13
|
+
return state.enthalpy;
|
|
14
|
+
case 'entropy':
|
|
15
|
+
return state.entropy;
|
|
16
|
+
default:
|
|
17
|
+
return Number.NaN;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function validateBasicEnvelope(state, solverName) {
|
|
21
|
+
if (!Number.isFinite(state.pressure) || !Number.isFinite(state.temperature) ||
|
|
22
|
+
!Number.isFinite(state.specificVolume) || state.specificVolume <= 0) {
|
|
23
|
+
throw new IF97Error(`${solverName} produced an invalid thermodynamic state`);
|
|
24
|
+
}
|
|
25
|
+
if (state.pressure < C.P_MIN || state.pressure > C.P_MAX ||
|
|
26
|
+
state.temperature < C.T_MIN || state.temperature > C.T_MAX) {
|
|
27
|
+
throw new IF97Error(`${solverName} produced a state outside the IF97 PT envelope`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function validateRegionConsistency(state, solverName, expectedRegion) {
|
|
31
|
+
if (expectedRegion !== undefined && state.region !== expectedRegion) {
|
|
32
|
+
throw new IF97Error(`${solverName} returned Region ${state.region}, expected Region ${expectedRegion}`);
|
|
33
|
+
}
|
|
34
|
+
if (state.region === Region.Region4) {
|
|
35
|
+
if (state.quality === null || !Number.isFinite(state.quality) || state.quality < 0 || state.quality > 1) {
|
|
36
|
+
throw new IF97Error(`${solverName} produced an invalid Region 4 quality`);
|
|
37
|
+
}
|
|
38
|
+
const psat = saturationPressure(state.temperature);
|
|
39
|
+
const pTolerance = region4SaturationPressureTolerance(state.pressure);
|
|
40
|
+
if (Math.abs(psat - state.pressure) > pTolerance) {
|
|
41
|
+
throw new IF97Error(`${solverName} produced a Region 4 state off the saturation curve`);
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const detectedRegion = detectRegionPT(state.pressure, state.temperature);
|
|
46
|
+
if (detectedRegion !== state.region) {
|
|
47
|
+
throw new IF97Error(`${solverName} produced a PT state in Region ${detectedRegion}, not Region ${state.region}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function validateConstraints(state, constraints, solverName) {
|
|
51
|
+
for (const constraint of constraints) {
|
|
52
|
+
const actual = propertyValue(state, constraint.label);
|
|
53
|
+
const tolerance = constraint.tolerance ?? backwardConstraintTolerance(constraint.label, constraint.expected);
|
|
54
|
+
if (Math.abs(actual - constraint.expected) > tolerance) {
|
|
55
|
+
throw new IF97Error(`${solverName} failed to match ${constraint.label}: expected ${constraint.expected}, got ${actual}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
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
|
+
}
|
|
79
|
+
export function validateBackwardState(state, constraints, options) {
|
|
80
|
+
validateBasicEnvelope(state, options.solverName);
|
|
81
|
+
validateRegionConsistency(state, options.solverName, options.expectedRegion);
|
|
82
|
+
validateConstraints(state, constraints, options.solverName);
|
|
83
|
+
return withExactConstraints(state, constraints);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=solution-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;
|
|
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;AAqBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA8F7D"}
|
package/dist/backward/th.js
CHANGED
|
@@ -8,7 +8,9 @@ import { region5 } from '../regions/region5.js';
|
|
|
8
8
|
import { boundary23_T_to_P } from '../regions/boundaries.js';
|
|
9
9
|
import { saturationPressure } from '../regions/region4.js';
|
|
10
10
|
import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtTemperature, } from '../saturation/common.js';
|
|
11
|
+
import { assertRegion4StateAllowed } from '../saturation/region4-boundaries.js';
|
|
11
12
|
import { solveFixedTemperaturePressure } from './fixed-temperature-solver.js';
|
|
13
|
+
import { validateBackwardState } from './solution-validation.js';
|
|
12
14
|
const extractH = (s) => s.enthalpy;
|
|
13
15
|
/**
|
|
14
16
|
* Solve for full basic thermodynamic state from temperature and enthalpy.
|
|
@@ -38,28 +40,56 @@ export function solveTH(T, h) {
|
|
|
38
40
|
const region = detectRegionTH(T, h);
|
|
39
41
|
switch (region) {
|
|
40
42
|
case Region.Region1:
|
|
41
|
-
return solveFixedTemperaturePressure(region1, T, h, saturationPressure(T), C.P_MAX, extractH, 'solveTH')
|
|
43
|
+
return validateBackwardState(solveFixedTemperaturePressure(region1, T, h, saturationPressure(T), C.P_MAX, extractH, 'solveTH'), [
|
|
44
|
+
{ label: 'temperature', expected: T },
|
|
45
|
+
{ label: 'enthalpy', expected: h },
|
|
46
|
+
], {
|
|
47
|
+
solverName: 'solveTH',
|
|
48
|
+
expectedRegion: Region.Region1,
|
|
49
|
+
});
|
|
42
50
|
case Region.Region2: {
|
|
43
51
|
const upper = T <= C.Tc
|
|
44
52
|
? saturationPressure(T)
|
|
45
53
|
: T <= C.B23_T_MAX
|
|
46
54
|
? boundary23_T_to_P(T)
|
|
47
55
|
: C.P_MAX;
|
|
48
|
-
return solveFixedTemperaturePressure(region2, T, h, C.P_MIN, upper, extractH, 'solveTH')
|
|
56
|
+
return validateBackwardState(solveFixedTemperaturePressure(region2, T, h, C.P_MIN, upper, extractH, 'solveTH'), [
|
|
57
|
+
{ label: 'temperature', expected: T },
|
|
58
|
+
{ label: 'enthalpy', expected: h },
|
|
59
|
+
], {
|
|
60
|
+
solverName: 'solveTH',
|
|
61
|
+
expectedRegion: Region.Region2,
|
|
62
|
+
});
|
|
49
63
|
}
|
|
50
64
|
case Region.Region3: {
|
|
51
65
|
const lower = T <= C.Tc
|
|
52
66
|
? saturationPressure(T)
|
|
53
67
|
: boundary23_T_to_P(T);
|
|
54
|
-
return solveFixedTemperaturePressure(solveRegion3PTBasic, T, h, lower, C.P_MAX, extractH, 'solveTH')
|
|
68
|
+
return validateBackwardState(solveFixedTemperaturePressure(solveRegion3PTBasic, T, h, lower, C.P_MAX, extractH, 'solveTH'), [
|
|
69
|
+
{ label: 'temperature', expected: T },
|
|
70
|
+
{ label: 'enthalpy', expected: h },
|
|
71
|
+
], {
|
|
72
|
+
solverName: 'solveTH',
|
|
73
|
+
expectedRegion: Region.Region3,
|
|
74
|
+
});
|
|
55
75
|
}
|
|
56
76
|
case Region.Region4: {
|
|
57
77
|
const endpoints = saturationEndpointsAtTemperature(T);
|
|
78
|
+
assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solveTH');
|
|
58
79
|
const x = qualityFromSaturationProperty(endpoints.liquid.enthalpy, endpoints.vapor.enthalpy, h);
|
|
59
|
-
return mixSaturationState(endpoints, x)
|
|
80
|
+
return validateBackwardState(mixSaturationState(endpoints, x), [
|
|
81
|
+
{ label: 'temperature', expected: T },
|
|
82
|
+
{ label: 'enthalpy', expected: h },
|
|
83
|
+
], { solverName: 'solveTH', expectedRegion: Region.Region4 });
|
|
60
84
|
}
|
|
61
85
|
case Region.Region5:
|
|
62
|
-
return solveFixedTemperaturePressure(region5, T, h, C.P_MIN, C.R5_P_MAX, extractH, 'solveTH')
|
|
86
|
+
return validateBackwardState(solveFixedTemperaturePressure(region5, T, h, C.P_MIN, C.R5_P_MAX, extractH, 'solveTH'), [
|
|
87
|
+
{ label: 'temperature', expected: T },
|
|
88
|
+
{ label: 'enthalpy', expected: h },
|
|
89
|
+
], {
|
|
90
|
+
solverName: 'solveTH',
|
|
91
|
+
expectedRegion: Region.Region5,
|
|
92
|
+
});
|
|
63
93
|
default:
|
|
64
94
|
throw new IF97Error(`solveTH cannot determine a valid IF97 state for T=${T} K, h=${h} kJ/kg`);
|
|
65
95
|
}
|
package/dist/backward/th.js.map
CHANGED
|
@@ -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;
|
|
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-4 * 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;
|
|
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;AAqBnD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CA8F7D"}
|
package/dist/backward/ts.js
CHANGED
|
@@ -8,7 +8,9 @@ import { region5 } from '../regions/region5.js';
|
|
|
8
8
|
import { boundary23_T_to_P } from '../regions/boundaries.js';
|
|
9
9
|
import { saturationPressure } from '../regions/region4.js';
|
|
10
10
|
import { mixSaturationState, qualityFromSaturationProperty, saturationEndpointsAtTemperature, } from '../saturation/common.js';
|
|
11
|
+
import { assertRegion4StateAllowed } from '../saturation/region4-boundaries.js';
|
|
11
12
|
import { solveFixedTemperaturePressure } from './fixed-temperature-solver.js';
|
|
13
|
+
import { validateBackwardState } from './solution-validation.js';
|
|
12
14
|
const extractS = (s) => s.entropy;
|
|
13
15
|
/**
|
|
14
16
|
* Solve for full basic thermodynamic state from temperature and entropy.
|
|
@@ -38,28 +40,56 @@ export function solveTS(T, s) {
|
|
|
38
40
|
const region = detectRegionTS(T, s);
|
|
39
41
|
switch (region) {
|
|
40
42
|
case Region.Region1:
|
|
41
|
-
return solveFixedTemperaturePressure(region1, T, s, saturationPressure(T), C.P_MAX, extractS, 'solveTS')
|
|
43
|
+
return validateBackwardState(solveFixedTemperaturePressure(region1, T, s, saturationPressure(T), C.P_MAX, extractS, 'solveTS'), [
|
|
44
|
+
{ label: 'temperature', expected: T },
|
|
45
|
+
{ label: 'entropy', expected: s },
|
|
46
|
+
], {
|
|
47
|
+
solverName: 'solveTS',
|
|
48
|
+
expectedRegion: Region.Region1,
|
|
49
|
+
});
|
|
42
50
|
case Region.Region2: {
|
|
43
51
|
const upper = T <= C.Tc
|
|
44
52
|
? saturationPressure(T)
|
|
45
53
|
: T <= C.B23_T_MAX
|
|
46
54
|
? boundary23_T_to_P(T)
|
|
47
55
|
: C.P_MAX;
|
|
48
|
-
return solveFixedTemperaturePressure(region2, T, s, C.P_MIN, upper, extractS, 'solveTS')
|
|
56
|
+
return validateBackwardState(solveFixedTemperaturePressure(region2, T, s, C.P_MIN, upper, extractS, 'solveTS'), [
|
|
57
|
+
{ label: 'temperature', expected: T },
|
|
58
|
+
{ label: 'entropy', expected: s },
|
|
59
|
+
], {
|
|
60
|
+
solverName: 'solveTS',
|
|
61
|
+
expectedRegion: Region.Region2,
|
|
62
|
+
});
|
|
49
63
|
}
|
|
50
64
|
case Region.Region3: {
|
|
51
65
|
const lower = T <= C.Tc
|
|
52
66
|
? saturationPressure(T)
|
|
53
67
|
: boundary23_T_to_P(T);
|
|
54
|
-
return solveFixedTemperaturePressure(solveRegion3PTBasic, T, s, lower, C.P_MAX, extractS, 'solveTS')
|
|
68
|
+
return validateBackwardState(solveFixedTemperaturePressure(solveRegion3PTBasic, T, s, lower, C.P_MAX, extractS, 'solveTS'), [
|
|
69
|
+
{ label: 'temperature', expected: T },
|
|
70
|
+
{ label: 'entropy', expected: s },
|
|
71
|
+
], {
|
|
72
|
+
solverName: 'solveTS',
|
|
73
|
+
expectedRegion: Region.Region3,
|
|
74
|
+
});
|
|
55
75
|
}
|
|
56
76
|
case Region.Region4: {
|
|
57
77
|
const endpoints = saturationEndpointsAtTemperature(T);
|
|
78
|
+
assertRegion4StateAllowed(endpoints.pressure, endpoints.temperature, 'solveTS');
|
|
58
79
|
const x = qualityFromSaturationProperty(endpoints.liquid.entropy, endpoints.vapor.entropy, s);
|
|
59
|
-
return mixSaturationState(endpoints, x)
|
|
80
|
+
return validateBackwardState(mixSaturationState(endpoints, x), [
|
|
81
|
+
{ label: 'temperature', expected: T },
|
|
82
|
+
{ label: 'entropy', expected: s },
|
|
83
|
+
], { solverName: 'solveTS', expectedRegion: Region.Region4 });
|
|
60
84
|
}
|
|
61
85
|
case Region.Region5:
|
|
62
|
-
return solveFixedTemperaturePressure(region5, T, s, C.P_MIN, C.R5_P_MAX, extractS, 'solveTS')
|
|
86
|
+
return validateBackwardState(solveFixedTemperaturePressure(region5, T, s, C.P_MIN, C.R5_P_MAX, extractS, 'solveTS'), [
|
|
87
|
+
{ label: 'temperature', expected: T },
|
|
88
|
+
{ label: 'entropy', expected: s },
|
|
89
|
+
], {
|
|
90
|
+
solverName: 'solveTS',
|
|
91
|
+
expectedRegion: Region.Region5,
|
|
92
|
+
});
|
|
63
93
|
default:
|
|
64
94
|
throw new IF97Error(`solveTS cannot determine a valid IF97 state for T=${T} K, s=${s} kJ/(kg·K)`);
|
|
65
95
|
}
|
package/dist/backward/ts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../src/backward/ts.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;
|
|
1
|
+
{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../src/backward/ts.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -4,19 +4,37 @@
|
|
|
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
|
+
* differs from the IAPWS-95 / CODATA value. */
|
|
8
10
|
export declare const R = 0.461526;
|
|
9
11
|
/** Critical temperature [K] */
|
|
10
12
|
export declare const Tc = 647.096;
|
|
11
13
|
/** Temperature exclusion half-band around the critical point [K] */
|
|
12
14
|
export declare const CRITICAL_T_EXCLUSION_BAND = 0.001;
|
|
15
|
+
/** Region 4 endpoint snap tolerance for temperatures [K] */
|
|
16
|
+
export declare const REGION4_TEMPERATURE_TOLERANCE = 1e-9;
|
|
17
|
+
/** Safety margin used when clamping Region 4 temperatures below Tc [K] */
|
|
18
|
+
export declare const REGION4_SUBCRITICAL_TEMPERATURE_MARGIN = 1e-8;
|
|
13
19
|
/** Critical pressure [MPa] */
|
|
14
20
|
export declare const Pc = 22.064;
|
|
21
|
+
/** Region 4 endpoint snap tolerance for pressures [MPa] */
|
|
22
|
+
export declare const REGION4_PRESSURE_TOLERANCE = 1e-9;
|
|
23
|
+
/** Tolerance for identifying the critical h-s endpoint in Region 4 */
|
|
24
|
+
export declare const REGION4_CRITICAL_HS_TOLERANCE = 0.000001;
|
|
25
|
+
/** Residual tolerance for Region 4 h-s temperature inversion */
|
|
26
|
+
export declare const REGION4_HS_RESIDUAL_TOLERANCE = 1e-10;
|
|
27
|
+
/** Scan resolution used when bracketing Region 4 h-s temperature roots */
|
|
28
|
+
export declare const REGION4_HS_BRACKET_SEGMENTS = 256;
|
|
15
29
|
/** Critical density [kg/m³] */
|
|
16
30
|
export declare const RHOc = 322;
|
|
17
31
|
/** Triple point pressure [MPa] */
|
|
18
32
|
export declare const Pt = 0.000611657;
|
|
19
|
-
/**
|
|
33
|
+
/** Triple point temperature [K] */
|
|
34
|
+
export declare const Tt = 273.16;
|
|
35
|
+
/** Minimum pressure [MPa].
|
|
36
|
+
* Derived: Psat(T_MIN) = Psat(273.15 K) via Eq. 30. Below the triple-point
|
|
37
|
+
* pressure Pt because T_MIN (0 °C) < Tt (0.01 °C). */
|
|
20
38
|
export declare const P_MIN = 0.000611212677444;
|
|
21
39
|
/** Maximum pressure [MPa] */
|
|
22
40
|
export declare const P_MAX = 100;
|
|
@@ -36,9 +54,13 @@ export declare const H_MAX = 7376.980263598506;
|
|
|
36
54
|
export declare const R2_T_MIN = 623.15;
|
|
37
55
|
/** Region 2 maximum temperature for backward eqs [K] (1073.15 K = 800 °C) */
|
|
38
56
|
export declare const R2_T_MAX = 1073.15;
|
|
39
|
-
/** Region 2
|
|
57
|
+
/** Region 2 subregion boundary entropy [kJ/(kg·K)].
|
|
58
|
+
* Divides R2a from R2b/R2c in the h-s plane.
|
|
59
|
+
* Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
|
|
40
60
|
export declare const R2_S_CRT = 5.85;
|
|
41
|
-
/** Region 2
|
|
61
|
+
/** Region 2 subregion boundary pressure [MPa].
|
|
62
|
+
* Divides R2a from R2b/R2c.
|
|
63
|
+
* Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
|
|
42
64
|
export declare const R2_P_CRT = 4;
|
|
43
65
|
/** B23 minimum pressure [MPa] */
|
|
44
66
|
export declare const B23_P_MIN = 16.5291642526;
|
|
@@ -56,12 +78,12 @@ export declare const R5_T_MIN = 1073.15;
|
|
|
56
78
|
export declare const R5_P_MAX = 50;
|
|
57
79
|
/** Region 5 maximum temperature [K] */
|
|
58
80
|
export declare const R5_T_MAX = 2273.15;
|
|
59
|
-
/** B23
|
|
60
|
-
export declare const
|
|
61
|
-
/** B23
|
|
62
|
-
export declare const
|
|
63
|
-
/** B23
|
|
64
|
-
export declare const
|
|
65
|
-
/** B23
|
|
66
|
-
export declare const
|
|
81
|
+
/** Minimum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 777 K */
|
|
82
|
+
export declare const B23_S_CURVE_MIN = 5.048096828;
|
|
83
|
+
/** Maximum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 644 K */
|
|
84
|
+
export declare const B23_S_CURVE_MAX = 5.260578707;
|
|
85
|
+
/** Minimum enthalpy along the B23 curve [kJ/kg], at T = 623.15 K (currently unused) */
|
|
86
|
+
export declare const B23_H_CURVE_MIN = 2563.592004;
|
|
87
|
+
/** Maximum enthalpy along the B23 curve [kJ/kg], at T = 863.15 K (currently unused) */
|
|
88
|
+
export declare const B23_H_CURVE_MAX = 2812.942061;
|
|
67
89
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;gDAEgD;AAChD,eAAO,MAAM,CAAC,WAAW,CAAC;AAI1B,+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,40 @@
|
|
|
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
|
+
* differs from the IAPWS-95 / CODATA value. */
|
|
9
11
|
export const R = 0.461526;
|
|
10
12
|
// ─── Critical Point ─────────────────────────────────────────────────────────
|
|
11
13
|
/** Critical temperature [K] */
|
|
12
14
|
export const Tc = 647.096;
|
|
13
15
|
/** Temperature exclusion half-band around the critical point [K] */
|
|
14
16
|
export const CRITICAL_T_EXCLUSION_BAND = 1e-3;
|
|
17
|
+
/** Region 4 endpoint snap tolerance for temperatures [K] */
|
|
18
|
+
export const REGION4_TEMPERATURE_TOLERANCE = 1e-9;
|
|
19
|
+
/** Safety margin used when clamping Region 4 temperatures below Tc [K] */
|
|
20
|
+
export const REGION4_SUBCRITICAL_TEMPERATURE_MARGIN = 1e-8;
|
|
15
21
|
/** Critical pressure [MPa] */
|
|
16
22
|
export const Pc = 22.064;
|
|
23
|
+
/** Region 4 endpoint snap tolerance for pressures [MPa] */
|
|
24
|
+
export const REGION4_PRESSURE_TOLERANCE = 1e-9;
|
|
25
|
+
/** Tolerance for identifying the critical h-s endpoint in Region 4 */
|
|
26
|
+
export const REGION4_CRITICAL_HS_TOLERANCE = 1e-6;
|
|
27
|
+
/** Residual tolerance for Region 4 h-s temperature inversion */
|
|
28
|
+
export const REGION4_HS_RESIDUAL_TOLERANCE = 1e-10;
|
|
29
|
+
/** Scan resolution used when bracketing Region 4 h-s temperature roots */
|
|
30
|
+
export const REGION4_HS_BRACKET_SEGMENTS = 256;
|
|
17
31
|
/** Critical density [kg/m³] */
|
|
18
32
|
export const RHOc = 322;
|
|
19
33
|
// ─── Triple Point ───────────────────────────────────────────────────────────
|
|
20
34
|
/** Triple point pressure [MPa] */
|
|
21
35
|
export const Pt = 0.000611657;
|
|
36
|
+
/** Triple point temperature [K] */
|
|
37
|
+
export const Tt = 273.16;
|
|
22
38
|
// ─── Overall Validity Ranges ────────────────────────────────────────────────
|
|
23
|
-
/** Minimum pressure [MPa]
|
|
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). */
|
|
24
42
|
export const P_MIN = 0.000611212677444;
|
|
25
43
|
/** Maximum pressure [MPa] */
|
|
26
44
|
export const P_MAX = 100.0;
|
|
@@ -41,9 +59,13 @@ export const H_MAX = 7376.980263598506;
|
|
|
41
59
|
export const R2_T_MIN = 623.15;
|
|
42
60
|
/** Region 2 maximum temperature for backward eqs [K] (1073.15 K = 800 °C) */
|
|
43
61
|
export const R2_T_MAX = 1073.15;
|
|
44
|
-
/** Region 2
|
|
62
|
+
/** Region 2 subregion boundary entropy [kJ/(kg·K)].
|
|
63
|
+
* Divides R2a from R2b/R2c in the h-s plane.
|
|
64
|
+
* Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
|
|
45
65
|
export const R2_S_CRT = 5.85;
|
|
46
|
-
/** Region 2
|
|
66
|
+
/** Region 2 subregion boundary pressure [MPa].
|
|
67
|
+
* Divides R2a from R2b/R2c.
|
|
68
|
+
* Ref: IAPWS Supplementary Release on Backward Equations for Region 2, §6.3 */
|
|
47
69
|
export const R2_P_CRT = 4.0;
|
|
48
70
|
// ─── Region 2-3 Boundary ───────────────────────────────────────────────────
|
|
49
71
|
/** B23 minimum pressure [MPa] */
|
|
@@ -64,13 +86,21 @@ export const R5_T_MIN = 1073.15;
|
|
|
64
86
|
export const R5_P_MAX = 50;
|
|
65
87
|
/** Region 5 maximum temperature [K] */
|
|
66
88
|
export const R5_T_MAX = 2273.15;
|
|
67
|
-
// ─── B23 Entropy/Enthalpy
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
89
|
+
// ─── B23 Curve Extrema (Entropy / Enthalpy) ────────────────────────────────
|
|
90
|
+
//
|
|
91
|
+
// These are the GLOBAL EXTREMA along the B23 boundary curve, NOT values at
|
|
92
|
+
// the curve endpoints. Entropy has a minimum at T ≈ 777 K and a maximum at
|
|
93
|
+
// T ≈ 644 K. Enthalpy is monotonic: min at the low-T endpoint (623.15 K),
|
|
94
|
+
// max at the high-T endpoint (863.15 K).
|
|
95
|
+
//
|
|
96
|
+
// Ref: Computed from Region 2 properties evaluated along B23(T) for
|
|
97
|
+
// T ∈ [623.15, 863.15] K.
|
|
98
|
+
/** Minimum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 777 K */
|
|
99
|
+
export const B23_S_CURVE_MIN = 5.048096828;
|
|
100
|
+
/** Maximum entropy along the B23 curve [kJ/(kg·K)], at T ≈ 644 K */
|
|
101
|
+
export const B23_S_CURVE_MAX = 5.260578707;
|
|
102
|
+
/** Minimum enthalpy along the B23 curve [kJ/kg], at T = 623.15 K (currently unused) */
|
|
103
|
+
export const B23_H_CURVE_MIN = 2563.592004;
|
|
104
|
+
/** Maximum enthalpy along the B23 curve [kJ/kg], at T = 863.15 K (currently unused) */
|
|
105
|
+
export const B23_H_CURVE_MAX = 2812.942061;
|
|
76
106
|
//# sourceMappingURL=constants.js.map
|