This linear compressibility fluid model is based on the assumptions that:
That means that the density is a linear function in temperature and in pressure. In order to define the complete model, a number of constant reference values are needed which are computed at the reference values of the states pressure p and temperature T. The model can be interprested as a linearization of a full non-linear fluid model (but it is not linear in all thermodynamic coordinates). Reference values are needed for
Apart from that, a user needs to define the molar mass, MM_const. Note that it is possible to define a fluid by computing the reference values from a full non-linear fluid model by computing the package constants using the standard functions defined in a fluid package (see example in liquids package).
In order to avoid numerical inversion of the temperature in the T_ph and T_ps functions, the density is always taken to be the reference density in the computation of h, s, u and cv. For liquids (and this model is intended only for liquids) the relative error of doing so is 1e-3 to 1e-4 at most. The model would be more "correct" based on the other assumptions, if occurences of reference_d in the computations of h,s,u and cv would be replaced by a call to density(state). That would require a numerical solution for T_ps, while T_ph can be solved symbolicallyfrom a quadratic function. Errors from this approximation are small because liquid density varies little.
One of the main reasons to use a simple, linear fluid model is to achieve high performance in simulations. There are a number of possible compromises and possibilities to improve performance. Some of them can be influenced by a flag. The following rules where used in this model:
Extends from Interfaces.PartialPureSubstance (base class for pure substances of one chemical substance).
Name | Description |
---|---|
cp_const | Specific heat capacity at constant pressure |
beta_const | Thermal expansion coefficient at constant pressure |
kappa_const | Isothermal compressibility |
MM_const | Molar mass |
reference_d | Density in reference conditions |
reference_h | Specific enthalpy in reference conditions |
reference_s | Specific enthalpy in reference conditions |
constantJacobian | if true, entries in thermodynamic Jacobian are constant, taken at reference conditions |
ThermodynamicState | a selection of variables that uniquely defines the thermodynamic state |
BaseProperties | Base properties of medium |
setState_pTX | set the thermodynamic state record from p and T (X not needed) |
setState_phX | set the thermodynamic state record from p and h (X not needed) |
setState_psX | set the thermodynamic state record from p and s (X not needed) |
setState_dTX | set the thermodynamic state record from d and T (X not needed) |
setSmoothState | Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b |
pressure | Return the pressure from the thermodynamic state |
temperature | Return the temperature from the thermodynamic state |
density | Return the density from the thermodynamic state |
specificEnthalpy | Return the specific enthalpy from the thermodynamic state |
specificEntropy | Return the specific entropy from the thermodynamic state |
specificInternalEnergy | Return the specific internal energy from the thermodynamic state |
specificGibbsEnergy | Return specific Gibbs energy from the thermodynamic state |
specificHelmholtzEnergy | Return specific Helmholtz energy from the thermodynamic state |
velocityOfSound | Return velocity of sound from the thermodynamic state |
isentropicExponent | Return isentropic exponent from the thermodynamic state |
isentropicEnthalpy | Return isentropic enthalpy |
specificHeatCapacityCp | Return specific heat capacity at constant volume |
specificHeatCapacityCv | Return specific heat capacity at constant volume from the thermodynamic state |
isothermalCompressibility | Return the iso-thermal compressibility kappa |
isobaricExpansionCoefficient | Return the iso-baric expansion coefficient |
density_derp_h | Return density derivative wrt pressure at const specific enthalpy |
density_derh_p | Return density derivative wrt specific enthalpy at constant pressure |
density_derp_T | Return density derivative wrt pressure at const temperature |
density_derT_p | Return density derivative wrt temperature at constant pressure |
density_derX | Returns the partial derivative of density with respect to mass fractions at constant pressure and temperature |
molarMass | Return molar mass |
T_ph | Return temperature from pressure and specific enthalpy |
T_ps | Return temperature from pressure and specific entropy |
Inherited | |
setState_pT | Return thermodynamic state from p and T |
setState_ph | Return thermodynamic state from p and h |
setState_ps | Return thermodynamic state from p and s |
setState_dT | Return thermodynamic state from d and T |
density_ph | Return density from p and h |
temperature_ph | Return temperature from p and h |
pressure_dT | Return pressure from d and T |
specificEnthalpy_dT | Return specific enthalpy from d and T |
specificEnthalpy_ps | Return specific enthalpy from p and s |
temperature_ps | Return temperature from p and s |
density_ps | Return density from p and s |
specificEnthalpy_pT | Return specific enthalpy from p and T |
density_pT | Return density from p and T |
ThermoStates | Enumeration type for independent variables |
mediumName="unusablePartialMedium" | Name of the medium |
substanceNames={mediumName} | Names of the mixture substances. Set substanceNames={mediumName} if only one substance. |
extraPropertiesNames=fill("", 0) | Names of the additional (extra) transported properties. Set extraPropertiesNames=fill("",0) if unused |
singleState | = true, if u and d are not a function of pressure |
reducedX=true | = true if medium contains the equation sum(X) = 1.0; set reducedX=true if only one substance (see docu for details) |
fixedX=false | = true if medium contains the equation X = reference_X |
reference_p=101325 | Reference pressure of Medium: default 1 atmosphere |
reference_T=298.15 | Reference temperature of Medium: default 25 deg Celsius |
reference_X=fill(1/nX, nX) | Default mass fractions of medium |
p_default=101325 | Default value for pressure of medium (for initialization) |
T_default=Modelica.SIunits.Conversions.from_degC(20) | Default value for temperature of medium (for initialization) |
h_default=specificEnthalpy_pTX(p_default, T_default, X_default) | Default value for specific enthalpy of medium (for initialization) |
X_default=reference_X | Default value for mass fractions of medium (for initialization) |
nS=size(substanceNames, 1) | Number of substances |
nX=nS | Number of mass fractions |
nXi=if fixedX then 0 else if reducedX then nS - 1 else nS | Number of structurally independent mass fractions (see docu for details) |
nC=size(extraPropertiesNames, 1) | Number of extra (outside of standard mass-balance) transported properties |
FluidConstants | critical, triple, molecular and other standard data of fluid |
dynamicViscosity | Return dynamic viscosity |
thermalConductivity | Return thermal conductivity |
prandtlNumber | Return the Prandtl number |
heatCapacity_cp | alias for deprecated name |
heatCapacity_cv | alias for deprecated name |
beta | alias for isobaricExpansionCoefficient for user convenience |
kappa | alias of isothermalCompressibility for user convenience |
specificEnthalpy_pTX | Return specific enthalpy from p, T, and X or Xi |
density_pTX | Return density from p, T, and X or Xi |
temperature_phX | Return temperature from p, h, and X or Xi |
density_phX | Return density from p, h, and X or Xi |
temperature_psX | Return temperature from p,s, and X or Xi |
density_psX | Return density from p, s, and X or Xi |
specificEnthalpy_psX | Return specific enthalpy from p, s, and X or Xi |
AbsolutePressure | Type for absolute pressure with medium specific attributes |
Density | Type for density with medium specific attributes |
DynamicViscosity | Type for dynamic viscosity with medium specific attributes |
EnthalpyFlowRate | Type for enthalpy flow rate with medium specific attributes |
MassFlowRate | Type for mass flow rate with medium specific attributes |
MassFraction | Type for mass fraction with medium specific attributes |
MoleFraction | Type for mole fraction with medium specific attributes |
MolarMass | Type for molar mass with medium specific attributes |
MolarVolume | Type for molar volume with medium specific attributes |
IsentropicExponent | Type for isentropic exponent with medium specific attributes |
SpecificEnergy | Type for specific energy with medium specific attributes |
SpecificInternalEnergy | Type for specific internal energy with medium specific attributes |
SpecificEnthalpy | Type for specific enthalpy with medium specific attributes |
SpecificEntropy | Type for specific entropy with medium specific attributes |
SpecificHeatCapacity | Type for specific heat capacity with medium specific attributes |
SurfaceTension | Type for surface tension with medium specific attributes |
Temperature | Type for temperature with medium specific attributes |
ThermalConductivity | Type for thermal conductivity with medium specific attributes |
PrandtlNumber | Type for Prandtl number with medium specific attributes |
VelocityOfSound | Type for velocity of sound with medium specific attributes |
ExtraProperty | Type for unspecified, mass-specific property transported by flow |
CumulativeExtraProperty | Type for conserved integral of unspecified, mass specific property |
ExtraPropertyFlowRate | Type for flow rate of unspecified, mass-specific property |
IsobaricExpansionCoefficient | Type for isobaric expansion coefficient with medium specific attributes |
DipoleMoment | Type for dipole moment with medium specific attributes |
DerDensityByPressure | Type for partial derivative of density with resect to pressure with medium specific attributes |
DerDensityByEnthalpy | Type for partial derivative of density with resect to enthalpy with medium specific attributes |
DerEnthalpyByPressure | Type for partial derivative of enthalpy with resect to pressure with medium specific attributes |
DerDensityByTemperature | Type for partial derivative of density with resect to temperature with medium specific attributes |
Choices | Types, constants to define menu choices |
constant SpecificHeatCapacity cp_const "Specific heat capacity at constant pressure";
constant IsobaricExpansionCoefficient beta_const "Thermal expansion coefficient at constant pressure";
constant SI.IsothermalCompressibility kappa_const "Isothermal compressibility";
constant MolarMass MM_const "Molar mass";
constant Density reference_d "Density in reference conditions";
constant SpecificEnthalpy reference_h "Specific enthalpy in reference conditions";
constant SpecificEntropy reference_s "Specific enthalpy in reference conditions";
constant Boolean constantJacobian "if true, entries in thermodynamic Jacobian are constant, taken at reference conditions";
redeclare record ThermodynamicState "a selection of variables that uniquely defines the thermodynamic state" AbsolutePressure p "Absolute pressure of medium"; Temperature T "Temperature of medium"; end ThermodynamicState;
Type | Name | Default | Description |
---|---|---|---|
Advanced | |||
Boolean | preferredMediumStates | false | = true if StateSelect.prefer shall be used for the independent property variables of the medium |
redeclare model extends BaseProperties( T(stateSelect=if preferredMediumStates then StateSelect.prefer else StateSelect.default), p(stateSelect=if preferredMediumStates then StateSelect.prefer else StateSelect.default)) "Base properties of medium" equation d = (1 + (p-reference_p)*kappa_const - (T-reference_T)*beta_const)*reference_d; h = reference_h + (T-reference_T)*cp_const + (p-reference_p)*(1-beta_const*reference_T)/reference_d; u = h - p/d; p = state.p; T = state.T; MM = MM_const; R = 8.3144/MM; end BaseProperties;
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | p | Pressure [Pa] | |
Temperature | T | Temperature [K] | |
MassFraction | X[:] | reference_X | Mass fractions [kg/kg] |
Type | Name | Description |
---|---|---|
ThermodynamicState | state | thermodynamic state record |
redeclare function extends setState_pTX "set the thermodynamic state record from p and T (X not needed)" algorithm state := ThermodynamicState(p=p,T=T); end setState_pTX;
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | p | Pressure [Pa] | |
SpecificEnthalpy | h | Specific enthalpy [J/kg] | |
MassFraction | X[:] | reference_X | Mass fractions [kg/kg] |
Type | Name | Description |
---|---|---|
ThermodynamicState | state | thermodynamic state record |
redeclare function extends setState_phX "set the thermodynamic state record from p and h (X not needed)" algorithm state := ThermodynamicState(p=p, T=(h - reference_h - (p - reference_p)*((1 - beta_const*reference_T) /reference_d))/cp_const + reference_T); end setState_phX;
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | p | Pressure [Pa] | |
SpecificEntropy | s | Specific entropy [J/(kg.K)] | |
MassFraction | X[:] | reference_X | Mass fractions [kg/kg] |
Type | Name | Description |
---|---|---|
ThermodynamicState | state | thermodynamic state record |
redeclare function extends setState_psX "set the thermodynamic state record from p and s (X not needed)" algorithm state := ThermodynamicState(p=p, T=reference_T*cp_const/(cp_const - s+reference_s +(p-reference_p)* (-beta_const/reference_d))); end setState_psX;
Type | Name | Default | Description |
---|---|---|---|
Density | d | density [kg/m3] | |
Temperature | T | Temperature [K] | |
MassFraction | X[:] | reference_X | Mass fractions [kg/kg] |
Type | Name | Description |
---|---|---|
ThermodynamicState | state | thermodynamic state record |
redeclare function extends setState_dTX "set the thermodynamic state record from d and T (X not needed)" algorithm state := ThermodynamicState(p=((d-reference_d) + (state.T-reference_T)*beta_const*reference_d) /(reference_d*kappa_const) + reference_p, T=T); end setState_dTX;
Type | Name | Default | Description |
---|---|---|---|
Real | x | m_flow or dp | |
ThermodynamicState | state_a | Thermodynamic state if x > 0 | |
ThermodynamicState | state_b | Thermodynamic state if x < 0 | |
Real | x_small | Smooth transition in the region -x_small < x < x_small |
Type | Name | Description |
---|---|---|
ThermodynamicState | state | Smooth thermodynamic state for all x (continuous and differentiable) |
redeclare function extends setSmoothState "Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b" algorithm state := ThermodynamicState(p= Media.Common.smoothStep(x, state_a.p, state_b.p, x_small), T= Media.Common.smoothStep(x, state_a.T, state_b.T, x_small)); end setSmoothState;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
AbsolutePressure | p | Pressure [Pa] |
redeclare function extends pressure "Return the pressure from the thermodynamic state" algorithm p :=state.p; end pressure;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
Temperature | T | Temperature [K] |
redeclare function extends temperature "Return the temperature from the thermodynamic state" algorithm T :=state.T; end temperature;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
Density | d | Density [kg/m3] |
redeclare function extends density "Return the density from the thermodynamic state" algorithm d := (1 + (state.p-reference_p)*kappa_const - (state.T-reference_T)*beta_const)*reference_d; end density;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificEnthalpy | h | Specific enthalpy [J/kg] |
redeclare function extends specificEnthalpy "Return the specific enthalpy from the thermodynamic state" algorithm h := reference_h + (state.T-reference_T)*cp_const + (state.p-reference_p)*(1-beta_const*reference_T)/reference_d; end specificEnthalpy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificEntropy | s | Specific entropy [J/(kg.K)] |
redeclare function extends specificEntropy "Return the specific entropy from the thermodynamic state" algorithm s := reference_s + (state.T-reference_T)*cp_const/state.T + (state.p-reference_p)*(-beta_const/reference_d); end specificEntropy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificEnergy | u | Specific internal energy [J/kg] |
redeclare function extends specificInternalEnergy "Return the specific internal energy from the thermodynamic state" algorithm u := specificEnthalpy(state)-state.p/reference_d; end specificInternalEnergy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificEnergy | g | Specific Gibbs energy [J/kg] |
redeclare function extends specificGibbsEnergy "Return specific Gibbs energy from the thermodynamic state" extends Modelica.Icons.Function; algorithm g := specificEnthalpy(state) - state.T*specificEntropy(state); end specificGibbsEnergy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificEnergy | f | Specific Helmholtz energy [J/kg] |
redeclare function extends specificHelmholtzEnergy "Return specific Helmholtz energy from the thermodynamic state" extends Modelica.Icons.Function; algorithm f := specificInternalEnergy(state) - state.T*specificEntropy(state); end specificHelmholtzEnergy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
VelocityOfSound | a | Velocity of sound [m/s] |
redeclare function extends velocityOfSound "Return velocity of sound from the thermodynamic state" extends Modelica.Icons.Function; algorithm a := sqrt(max(0,1/(kappa_const*density(state) -beta_const*beta_const*state.T/cp_const))); end velocityOfSound;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
IsentropicExponent | gamma | Isentropic exponent [1] |
redeclare function extends isentropicExponent "Return isentropic exponent from the thermodynamic state" extends Modelica.Icons.Function; algorithm gamma := 1/(state.p*kappa_const)*cp_const/specificHeatCapacityCv(state); end isentropicExponent;
A minor approximation is used: the reference density is used instead of the real one, which would require a numeric solution.
Extends from (Return isentropic enthalpy).
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | p_downstream | downstream pressure [Pa] | |
ThermodynamicState | refState | reference state for entropy |
Type | Name | Description |
---|---|---|
SpecificEnthalpy | h_is | Isentropic enthalpy [J/kg] |
redeclare function extends isentropicEnthalpy "Return isentropic enthalpy" /* previous equation was wrong: protected SpecificEntropy s_upstream = specificEntropy(refState) "specific entropy at component inlet"; ThermodynamicState downstreamState "state at downstream location"; algorithm downstreamState.p := p_downstream; downstreamState.T := reference_T*cp_const/ (s_upstream -reference_s -(p_downstream-reference_p)*(-beta_const/reference_d) - cp_const); h_is := specificEnthalpy(downstreamState); */ algorithm /* s := reference_s + (refState.T-reference_T)*cp_const/refState.T + (refState.p-reference_p)*(-beta_const/reference_d) = reference_s + (state.T-reference_T)*cp_const/state.T + (p_downstream-reference_p)*(-beta_const/reference_d); (state.T-reference_T)*cp_const/state.T = (refState.T-reference_T)*cp_const/refState.T + (refState.p-reference_p)*(-beta_const/reference_d) - (p_downstream-reference_p)*(-beta_const/reference_d) = (refState.T-reference_T)*cp_const/refState.T + (refState.p-p_downstream)*(-beta_const/reference_d) (x - reference_T)/x = k x - reference_T = k*x (1-k)*x = reference_T x = reference_T/(1-k); state.T = reference_T/(1 - ((refState.T-reference_T)*cp_const/refState.T + (refState.p-p_downstream)*(-beta_const/reference_d))/cp_const) */ h_is :=specificEnthalpy(setState_pTX( p_downstream, reference_T/(1 - ( (refState.T - reference_T)/refState.T + (refState.p - p_downstream)*(-beta_const/(reference_d*cp_const)))), reference_X));end isentropicEnthalpy;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificHeatCapacity | cp | Specific heat capacity at constant pressure [J/(kg.K)] |
redeclare function extends specificHeatCapacityCp "Return specific heat capacity at constant volume" algorithm cp := cp_const; end specificHeatCapacityCp;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
SpecificHeatCapacity | cv | Specific heat capacity at constant volume [J/(kg.K)] |
redeclare function extends specificHeatCapacityCv "Return specific heat capacity at constant volume from the thermodynamic state" algorithm cv := if constantJacobian then cp_const - reference_T*beta_const*beta_const/(kappa_const*reference_d) else state.T*beta_const*beta_const/(kappa_const*reference_d); end specificHeatCapacityCv;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
IsothermalCompressibility | kappa | Isothermal compressibility [1/Pa] |
redeclare function extends isothermalCompressibility "Return the iso-thermal compressibility kappa" algorithm kappa := kappa_const; end isothermalCompressibility;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
IsobaricExpansionCoefficient | beta | Isobaric expansion coefficient [1/K] |
redeclare function extends isobaricExpansionCoefficient "Return the iso-baric expansion coefficient" algorithm beta := beta_const; end isobaricExpansionCoefficient;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
DerDensityByPressure | ddph | Density derivative wrt pressure [s2/m2] |
redeclare function extends density_derp_h "Return density derivative wrt pressure at const specific enthalpy" algorithm ddph := if constantJacobian then kappa_const*reference_d + (beta_const*(1-reference_T*beta_const))/cp_const else kappa_const*density(state) + (beta_const*(1-temperature(state)*beta_const))/cp_const; end density_derp_h;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
DerDensityByEnthalpy | ddhp | Density derivative wrt specific enthalpy [kg.s2/m5] |
redeclare function extends density_derh_p "Return density derivative wrt specific enthalpy at constant pressure" algorithm ddhp := if constantJacobian then -beta_const*reference_d/cp_const else -beta_const*density(state)/cp_const; end density_derh_p;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
DerDensityByPressure | ddpT | Density derivative wrt pressure [s2/m2] |
redeclare function extends density_derp_T "Return density derivative wrt pressure at const temperature" algorithm ddpT := if constantJacobian then kappa_const*reference_d else kappa_const*density(state); end density_derp_T;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
DerDensityByTemperature | ddTp | Density derivative wrt temperature [kg/(m3.K)] |
redeclare function extends density_derT_p "Return density derivative wrt temperature at constant pressure" algorithm ddTp := if constantJacobian then -beta_const*reference_d else -beta_const*density(state); end density_derT_p;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
Density | dddX[nX] | Derivative of density wrt mass fraction [kg/m3] |
redeclare function extends density_derX "Returns the partial derivative of density with respect to mass fractions at constant pressure and temperature" algorithm dddX := fill(0,nX); end density_derX;
Type | Name | Default | Description |
---|---|---|---|
ThermodynamicState | state | thermodynamic state record |
Type | Name | Description |
---|---|---|
MolarMass | MM | Mixture molar mass [kg/mol] |
redeclare function extends molarMass "Return molar mass" algorithm MM := MM_const; end molarMass;
Type | Name | Default | Description |
---|---|---|---|
SpecificEnthalpy | h | Specific enthalpy [J/kg] | |
AbsolutePressure | p | pressure [Pa] |
Type | Name | Description |
---|---|---|
Temperature | T | Temperature [K] |
function T_ph "Return temperature from pressure and specific enthalpy" input SpecificEnthalpy h "Specific enthalpy"; input AbsolutePressure p "pressure"; output Temperature T "Temperature"; algorithm T :=(h - reference_h - (p - reference_p)*((1 - beta_const*reference_T) /reference_d))/cp_const + reference_T; end T_ph;
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | p | Pressure [Pa] | |
SpecificEntropy | s | Specific entropy [J/(kg.K)] |
Type | Name | Description |
---|---|---|
Temperature | T | Temperature [K] |
function T_ps "Return temperature from pressure and specific entropy" input AbsolutePressure p "Pressure"; input SpecificEntropy s "Specific entropy"; output Temperature T "Temperature"; algorithm T := reference_T*cp_const/(s-reference_s -(p-reference_p)*(-beta_const/reference_d) - cp_const); end T_ps;