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 | 
| a selection of variables that uniquely defines the thermodynamic state | |
| Base properties of medium | |
| set the thermodynamic state record from p and T (X not needed) | |
| set the thermodynamic state record from p and h (X not needed) | |
| set the thermodynamic state record from p and s (X not needed) | |
| set the thermodynamic state record from d and T (X not needed) | |
| Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b | |
| Return the pressure from the thermodynamic state | |
| Return the temperature from the thermodynamic state | |
| Return the density from the thermodynamic state | |
| Return the specific enthalpy from the thermodynamic state | |
| Return the specific entropy from the thermodynamic state | |
| Return the specific internal energy from the thermodynamic state | |
| Return specific Gibbs energy from the thermodynamic state | |
| Return specific Helmholtz energy from the thermodynamic state | |
| Return velocity of sound from the thermodynamic state | |
| Return isentropic exponent from the thermodynamic state | |
| Return isentropic enthalpy | |
| Return specific heat capacity at constant volume | |
| Return specific heat capacity at constant volume from the thermodynamic state | |
| Return the iso-thermal compressibility kappa | |
| Return the iso-baric expansion coefficient | |
| Return density derivative w.r.t. pressure at const specific enthalpy | |
| Return density derivative w.r.t. specific enthalpy at constant pressure | |
| Return density derivative w.r.t. pressure at const temperature | |
| Return density derivative w.r.t. temperature at constant pressure | |
| Returns the partial derivative of density with respect to mass fractions at constant pressure and temperature | |
| Return molar mass | |
| Return temperature from pressure and specific enthalpy | |
| Return temperature from pressure and specific entropy | |
| Inherited | |
| Return thermodynamic state from p and T | |
| Return thermodynamic state from p and h | |
| Return thermodynamic state from p and s | |
| Return thermodynamic state from d and T | |
| Return density from p and h | |
| Return temperature from p and h | |
| Return pressure from d and T | |
| Return specific enthalpy from d and T | |
| Return specific enthalpy from p and s | |
| Return temperature from p and s | |
| Return density from p and s | |
| Return specific enthalpy from p and T | |
| 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 | 
| C_nominal=1.0e-6*ones(nC) | Default for the nominal values for the extra properties | 
| critical, triple, molecular and other standard data of fluid | |
| Return dynamic viscosity | |
| Return thermal conductivity | |
| Return the Prandtl number | |
| alias for deprecated name | |
| alias for deprecated name | |
| alias for isobaricExpansionCoefficient for user convenience | |
| alias of isothermalCompressibility for user convenience | |
| Return specific enthalpy from p, T, and X or Xi | |
| Return specific enthalpy from p, T, and X or Xi | |
| Return density from p, T, and X or Xi | |
| Return temperature from p, h, and X or Xi | |
| Return density from p, h, and X or Xi | |
| Return temperature from p,s, and X or Xi | |
| Return density from p, s, and X or Xi | |
| 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 | 
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.BaseProperties
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.setState_pTX
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.setState_phX
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.setState_psX
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.setState_dTX
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.setSmoothState
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.pressure
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.temperature
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.density
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificEnthalpy
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificEntropy
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificInternalEnergy
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificGibbsEnergy
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificHelmholtzEnergy
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.velocityOfSound
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.isentropicExponent
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.isentropicEnthalpy
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 wrong equation:
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;
 
Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCp
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCv
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.isothermalCompressibility
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.isobaricExpansionCoefficient
| 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;
Modelica.Media.Interfaces.PartialLinearFluid.density_derp_h
| Type | Name | Default | Description | 
|---|---|---|---|
| ThermodynamicState | state | thermodynamic state record | 
| Type | Name | Description | 
|---|---|---|
| DerDensityByPressure | ddph | Density derivative w.r.t. pressure [s2/m2] | 
redeclare function extends density_derp_h 
  "Return density derivative w.r.t. 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;
Modelica.Media.Interfaces.PartialLinearFluid.density_derh_p
| Type | Name | Default | Description | 
|---|---|---|---|
| ThermodynamicState | state | thermodynamic state record | 
| Type | Name | Description | 
|---|---|---|
| DerDensityByEnthalpy | ddhp | Density derivative w.r.t. specific enthalpy [kg.s2/m5] | 
redeclare function extends density_derh_p 
  "Return density derivative w.r.t. 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;
Modelica.Media.Interfaces.PartialLinearFluid.density_derp_T
| Type | Name | Default | Description | 
|---|---|---|---|
| ThermodynamicState | state | thermodynamic state record | 
| Type | Name | Description | 
|---|---|---|
| DerDensityByPressure | ddpT | Density derivative w.r.t. pressure [s2/m2] | 
redeclare function extends density_derp_T 
  "Return density derivative w.r.t. pressure at const temperature"
algorithm 
  ddpT := if constantJacobian then kappa_const*reference_d else 
        kappa_const*density(state);
end density_derp_T;
Modelica.Media.Interfaces.PartialLinearFluid.density_derT_p
| Type | Name | Default | Description | 
|---|---|---|---|
| ThermodynamicState | state | thermodynamic state record | 
| Type | Name | Description | 
|---|---|---|
| DerDensityByTemperature | ddTp | Density derivative w.r.t. temperature [kg/(m3.K)] | 
redeclare function extends density_derT_p 
  "Return density derivative w.r.t. temperature at constant pressure"
algorithm 
  ddTp := if constantJacobian then -beta_const*reference_d else 
       -beta_const*density(state);
end density_derT_p;
Modelica.Media.Interfaces.PartialLinearFluid.density_derX
| Type | Name | Default | Description | 
|---|---|---|---|
| ThermodynamicState | state | thermodynamic state record | 
| Type | Name | Description | 
|---|---|---|
| Density | dddX[nX] | Derivative of density w.r.t. 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;
Modelica.Media.Interfaces.PartialLinearFluid.molarMass
| 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;