fix: resolve CLI solver state dimension mismatch

Removed mathematical singularity in HeatExchanger models (q_hot - q_cold = 0 was redundant) causing them to incorrectly request 3 equations without internal variables. Fixed ScrewEconomizerCompressor internal_state_len to perfectly align with the solver dimensions.
This commit is contained in:
Sepehr
2026-02-28 22:45:51 +01:00
parent c5a51d82dc
commit fdd124eefd
35 changed files with 10969 additions and 123 deletions

View File

@@ -91,6 +91,11 @@ pub enum FluidKind {
}
/// A set of known incompressible fluid identifiers (case-insensitive prefix match).
///
/// Recognises the fluid names used by CoolProp's incompressible backend, including:
/// - Plain names: `Water`, `Glycol`, `Brine`, `MEG`, `PEG`
/// - CoolProp mixture prefix: `INCOMP::*`
/// - Systematic glycol names: `EthyleneGlycol`, `PropyleneGlycol`
pub(crate) fn is_incompressible(fluid: &str) -> bool {
let f = fluid.to_lowercase();
f.starts_with("water")
@@ -100,6 +105,9 @@ pub(crate) fn is_incompressible(fluid: &str) -> bool {
|| f.starts_with("ethyleneglycol")
|| f.starts_with("propyleneglycol")
|| f.starts_with("incompressible")
|| f.starts_with("meg")
|| f.starts_with("peg")
|| f.starts_with("incomp::")
}
// ─────────────────────────────────────────────────────────────────────────────