From 360ea4eaeccbd1ea99cd65b712a5b2d6c9bb5fd9 Mon Sep 17 00:00:00 2001 From: Axel Matstoms Date: Thu, 19 Feb 2026 08:05:34 +0100 Subject: [PATCH 1/2] Add additional media properties to Incompressible Add density_derT_p, density_derh_p and isobaricExpansionCoefficient. These values are found using the polynomial fitting for density. --- .../Media/myMedia/Incompressible.mo | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ThermofluidStream/Media/myMedia/Incompressible.mo b/ThermofluidStream/Media/myMedia/Incompressible.mo index db785c26..18c5394d 100644 --- a/ThermofluidStream/Media/myMedia/Incompressible.mo +++ b/ThermofluidStream/Media/myMedia/Incompressible.mo @@ -392,6 +392,21 @@ which is only exactly true for a fluid with constant density d=d0. annotation(smoothOrder=2); end thermalConductivity; + redeclare function extends isobaricExpansionCoefficient + "Return isobaric expansion coefficient (beta) as a function of the thermodynamic state record" + algorithm + beta := -density_derT_p(state) / density(state); + annotation( + Documentation(info = "

The isobaric expansion coefficient beta is defined as

+
1/v * der(v,T)
+
+

with v = 1/d, at constant pressure p. +Using the chain rule:

+
1/v * der(v,T) = d * (-der(d, T) / d^2)
+= -der(d, T) / d

+")); + end isobaricExpansionCoefficient; + function s_T "Compute specific entropy" extends Modelica.Icons.Function; input Temperature T "Temperature"; @@ -498,6 +513,18 @@ which is only exactly true for a fluid with constant density d=d0. ddph :=0; //incompressable and h = cp*T; h=const; -> T=const end density_derp_h; + redeclare function extends density_derh_p + "Return density derivative w.r.t. specific enthalpy at constant pressure" + algorithm + ddhp := density_derT_p(state) / specificHeatCapacityCp(state); + end density_derh_p; + + redeclare function extends density_derT_p + "Return density derivative w.r.t. temperature at constant pressure" + algorithm + ddTp := Polynomials.derivativeValue(poly_rho, if TinK then state.T else Cv.to_degC(state.T)); + end density_derT_p; + redeclare function extends specificEnthalpy "Return specific enthalpy as a function of the thermodynamic state record" algorithm From df9c9749766194b153d4d78038fcbd77edc0fa74 Mon Sep 17 00:00:00 2001 From: CorentinLepais Date: Tue, 28 Apr 2026 17:43:21 +0200 Subject: [PATCH 2/2] update test model TestGlycol with isobaricExpansionCoefficient calculation. Correct type error for specificEnthalpy and Density --- ThermofluidStream/Media/myMedia/Incompressible.mo | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ThermofluidStream/Media/myMedia/Incompressible.mo b/ThermofluidStream/Media/myMedia/Incompressible.mo index 18c5394d..7678866f 100644 --- a/ThermofluidStream/Media/myMedia/Incompressible.mo +++ b/ThermofluidStream/Media/myMedia/Incompressible.mo @@ -66,8 +66,10 @@ package Incompressible Medium.SpecificEntropy s=Medium.specificEntropy(medium.state); Medium.SpecificHeatCapacity cv=Medium.specificHeatCapacityCv(medium.state); Medium.SpecificInternalEnergy u=Medium.specificInternalEnergy(medium.state); - Medium.SpecificInternalEnergy h=Medium.specificEnthalpy(medium.state); - Medium.SpecificInternalEnergy d=Medium.density(medium.state); + Medium.SpecificEnthalpy h=Medium.specificEnthalpy(medium.state); + Medium.Density d=Medium.density(medium.state); + Medium.IsobaricExpansionCoefficient beta = Medium.isobaricExpansionCoefficient(medium.state); + protected constant SI.Time timeUnit = 1; constant SI.Temperature Ta = 1;