Modelica.Media.Interfaces.PartialLinearFluid

Generic pure liquid model with constant cp, compressibility and thermal expansion coefficients

Information


Linear Compressibility Fluid Model

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

  1. the density (reference_d),
  2. the specific enthalpy (reference_h),
  3. the specific entropy (reference_s).

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.

Efficiency considerations

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:

Authors:
Francesco Casella
Dipartimento di Elettronica e Informazione
Politecnico di Milano
Via Ponzio 34/5
I-20133 Milano, Italy
email: casella@elet.polimi.it
and
Hubertus Tummescheit
Modelon AB
Ideon Science Park
SE-22730 Lund, Sweden
email: Hubertus.Tummescheit@Modelon.se

Extends from Interfaces.PartialPureSubstance (base class for pure substances of one chemical substance).

Package Content

NameDescription
cp_constSpecific heat capacity at constant pressure
beta_constThermal expansion coefficient at constant pressure
kappa_constIsothermal compressibility
MM_constMolar mass
reference_dDensity in reference conditions
reference_hSpecific enthalpy in reference conditions
reference_sSpecific enthalpy in reference conditions
constantJacobianif true, entries in thermodynamic Jacobian are constant, taken at reference conditions
Modelica.Media.Interfaces.PartialLinearFluid.ThermodynamicState ThermodynamicState a selection of variables that uniquely defines the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.BaseProperties BaseProperties Base properties of medium
Modelica.Media.Interfaces.PartialLinearFluid.setState_pTX setState_pTX set the thermodynamic state record from p and T (X not needed)
Modelica.Media.Interfaces.PartialLinearFluid.setState_phX setState_phX set the thermodynamic state record from p and h (X not needed)
Modelica.Media.Interfaces.PartialLinearFluid.setState_psX setState_psX set the thermodynamic state record from p and s (X not needed)
Modelica.Media.Interfaces.PartialLinearFluid.setState_dTX setState_dTX set the thermodynamic state record from d and T (X not needed)
Modelica.Media.Interfaces.PartialLinearFluid.setSmoothState setSmoothState Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b
Modelica.Media.Interfaces.PartialLinearFluid.pressure pressure Return the pressure from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.temperature temperature Return the temperature from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.density density Return the density from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.specificEnthalpy specificEnthalpy Return the specific enthalpy from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.specificEntropy specificEntropy Return the specific entropy from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.specificInternalEnergy specificInternalEnergy Return the specific internal energy from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.specificGibbsEnergy specificGibbsEnergy Return specific Gibbs energy from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.specificHelmholtzEnergy specificHelmholtzEnergy Return specific Helmholtz energy from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.velocityOfSound velocityOfSound Return velocity of sound from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.isentropicExponent isentropicExponent Return isentropic exponent from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.isentropicEnthalpy isentropicEnthalpy Return isentropic enthalpy
Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCp specificHeatCapacityCp Return specific heat capacity at constant volume
Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCv specificHeatCapacityCv Return specific heat capacity at constant volume from the thermodynamic state
Modelica.Media.Interfaces.PartialLinearFluid.isothermalCompressibility isothermalCompressibility Return the iso-thermal compressibility kappa
Modelica.Media.Interfaces.PartialLinearFluid.isobaricExpansionCoefficient isobaricExpansionCoefficient Return the iso-baric expansion coefficient
Modelica.Media.Interfaces.PartialLinearFluid.density_derp_h density_derp_h Return density derivative w.r.t. pressure at const specific enthalpy
Modelica.Media.Interfaces.PartialLinearFluid.density_derh_p density_derh_p Return density derivative w.r.t. specific enthalpy at constant pressure
Modelica.Media.Interfaces.PartialLinearFluid.density_derp_T density_derp_T Return density derivative w.r.t. pressure at const temperature
Modelica.Media.Interfaces.PartialLinearFluid.density_derT_p density_derT_p Return density derivative w.r.t. temperature at constant pressure
Modelica.Media.Interfaces.PartialLinearFluid.density_derX density_derX Returns the partial derivative of density with respect to mass fractions at constant pressure and temperature
Modelica.Media.Interfaces.PartialLinearFluid.molarMass molarMass Return molar mass
Modelica.Media.Interfaces.PartialLinearFluid.T_ph T_ph Return temperature from pressure and specific enthalpy
Modelica.Media.Interfaces.PartialLinearFluid.T_ps T_ps Return temperature from pressure and specific entropy
Inherited
Modelica.Media.Interfaces.PartialPureSubstance.setState_pT setState_pT Return thermodynamic state from p and T
Modelica.Media.Interfaces.PartialPureSubstance.setState_ph setState_ph Return thermodynamic state from p and h
Modelica.Media.Interfaces.PartialPureSubstance.setState_ps setState_ps Return thermodynamic state from p and s
Modelica.Media.Interfaces.PartialPureSubstance.setState_dT setState_dT Return thermodynamic state from d and T
Modelica.Media.Interfaces.PartialPureSubstance.density_ph density_ph Return density from p and h
Modelica.Media.Interfaces.PartialPureSubstance.temperature_ph temperature_ph Return temperature from p and h
Modelica.Media.Interfaces.PartialPureSubstance.pressure_dT pressure_dT Return pressure from d and T
Modelica.Media.Interfaces.PartialPureSubstance.specificEnthalpy_dT specificEnthalpy_dT Return specific enthalpy from d and T
Modelica.Media.Interfaces.PartialPureSubstance.specificEnthalpy_ps specificEnthalpy_ps Return specific enthalpy from p and s
Modelica.Media.Interfaces.PartialPureSubstance.temperature_ps temperature_ps Return temperature from p and s
Modelica.Media.Interfaces.PartialPureSubstance.density_ps density_ps Return density from p and s
Modelica.Media.Interfaces.PartialPureSubstance.specificEnthalpy_pT specificEnthalpy_pT Return specific enthalpy from p and T
Modelica.Media.Interfaces.PartialPureSubstance.density_pT density_pT Return density from p and T
ThermoStatesEnumeration 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=101325Reference pressure of Medium: default 1 atmosphere
reference_T=298.15Reference temperature of Medium: default 25 deg Celsius
reference_X=fill(1/nX, nX)Default mass fractions of medium
p_default=101325Default 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_XDefault value for mass fractions of medium (for initialization)
nS=size(substanceNames, 1)Number of substances
nX=nSNumber of mass fractions
nXi=if fixedX then 0 else if reducedX then nS - 1 else nSNumber 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
Modelica.Media.Interfaces.PartialMedium.FluidConstants FluidConstants critical, triple, molecular and other standard data of fluid
Modelica.Media.Interfaces.PartialMedium.dynamicViscosity dynamicViscosity Return dynamic viscosity
Modelica.Media.Interfaces.PartialMedium.thermalConductivity thermalConductivity Return thermal conductivity
Modelica.Media.Interfaces.PartialMedium.prandtlNumber prandtlNumber Return the Prandtl number
Modelica.Media.Interfaces.PartialMedium.heatCapacity_cp heatCapacity_cp alias for deprecated name
Modelica.Media.Interfaces.PartialMedium.heatCapacity_cv heatCapacity_cv alias for deprecated name
Modelica.Media.Interfaces.PartialMedium.beta beta alias for isobaricExpansionCoefficient for user convenience
Modelica.Media.Interfaces.PartialMedium.kappa kappa alias of isothermalCompressibility for user convenience
Modelica.Media.Interfaces.PartialMedium.specificEnthalpy_pTX specificEnthalpy_pTX Return specific enthalpy from p, T, and X or Xi
Modelica.Media.Interfaces.PartialMedium.specificEntropy_pTX specificEntropy_pTX Return specific enthalpy from p, T, and X or Xi
Modelica.Media.Interfaces.PartialMedium.density_pTX density_pTX Return density from p, T, and X or Xi
Modelica.Media.Interfaces.PartialMedium.temperature_phX temperature_phX Return temperature from p, h, and X or Xi
Modelica.Media.Interfaces.PartialMedium.density_phX density_phX Return density from p, h, and X or Xi
Modelica.Media.Interfaces.PartialMedium.temperature_psX temperature_psX Return temperature from p,s, and X or Xi
Modelica.Media.Interfaces.PartialMedium.density_psX density_psX Return density from p, s, and X or Xi
Modelica.Media.Interfaces.PartialMedium.specificEnthalpy_psX 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
Modelica.Media.Interfaces.PartialMedium.Choices Choices Types, constants to define menu choices

Types and constants

      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";


Modelica.Media.Interfaces.PartialLinearFluid.ThermodynamicState

a selection of variables that uniquely defines the thermodynamic state

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.BaseProperties

Base properties of medium

Information

Extends from .

Parameters

TypeNameDefaultDescription
Advanced
BooleanpreferredMediumStatesfalse= true if StateSelect.prefer shall be used for the independent property variables of the medium

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.setState_pTX

set the thermodynamic state record from p and T (X not needed)

Information

Extends from (Return thermodynamic state as function of p, T and composition X or Xi).

Inputs

TypeNameDefaultDescription
AbsolutePressurep Pressure [Pa]
TemperatureT Temperature [K]
MassFractionX[:]reference_XMass fractions [kg/kg]

Outputs

TypeNameDescription
ThermodynamicStatestatethermodynamic state record

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.setState_phX

set the thermodynamic state record from p and h (X not needed)

Information

Extends from (Return thermodynamic state as function of p, h and composition X or Xi).

Inputs

TypeNameDefaultDescription
AbsolutePressurep Pressure [Pa]
SpecificEnthalpyh Specific enthalpy [J/kg]
MassFractionX[:]reference_XMass fractions [kg/kg]

Outputs

TypeNameDescription
ThermodynamicStatestatethermodynamic state record

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.setState_psX

set the thermodynamic state record from p and s (X not needed)

Information

Extends from (Return thermodynamic state as function of p, s and composition X or Xi).

Inputs

TypeNameDefaultDescription
AbsolutePressurep Pressure [Pa]
SpecificEntropys Specific entropy [J/(kg.K)]
MassFractionX[:]reference_XMass fractions [kg/kg]

Outputs

TypeNameDescription
ThermodynamicStatestatethermodynamic state record

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.setState_dTX

set the thermodynamic state record from d and T (X not needed)

Information

Extends from (Return thermodynamic state as function of d, T and composition X or Xi).

Inputs

TypeNameDefaultDescription
Densityd density [kg/m3]
TemperatureT Temperature [K]
MassFractionX[:]reference_XMass fractions [kg/kg]

Outputs

TypeNameDescription
ThermodynamicStatestatethermodynamic state record

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.setSmoothState

Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b

Information

Extends from (Return thermodynamic state so that it smoothly approximates: if x > 0 then state_a else state_b).

Inputs

TypeNameDefaultDescription
Realx m_flow or dp
ThermodynamicStatestate_a Thermodynamic state if x > 0
ThermodynamicStatestate_b Thermodynamic state if x < 0
Realx_small Smooth transition in the region -x_small < x < x_small

Outputs

TypeNameDescription
ThermodynamicStatestateSmooth thermodynamic state for all x (continuous and differentiable)

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.pressure

Return the pressure from the thermodynamic state

Information

Extends from (Return pressure).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
AbsolutePressurepPressure [Pa]

Modelica definition

redeclare function extends pressure 
  "Return the pressure from the thermodynamic state"
algorithm 
  p :=state.p;
end pressure;

Modelica.Media.Interfaces.PartialLinearFluid.temperature Modelica.Media.Interfaces.PartialLinearFluid.temperature

Return the temperature from the thermodynamic state

Information

Extends from (Return temperature).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
TemperatureTTemperature [K]

Modelica definition

redeclare function extends temperature 
  "Return the temperature from the thermodynamic state"
algorithm 
  T :=state.T;
end temperature;

Modelica.Media.Interfaces.PartialLinearFluid.density Modelica.Media.Interfaces.PartialLinearFluid.density

Return the density from the thermodynamic state

Information

Extends from (Return density).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DensitydDensity [kg/m3]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificEnthalpy

Return the specific enthalpy from the thermodynamic state

Information

Extends from (Return specific enthalpy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificEnthalpyhSpecific enthalpy [J/kg]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificEntropy

Return the specific entropy from the thermodynamic state

Information

Extends from (Return specific entropy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificEntropysSpecific entropy [J/(kg.K)]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificInternalEnergy

Return the specific internal energy from the thermodynamic state

Information

Extends from (Return specific internal energy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificEnergyuSpecific internal energy [J/kg]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificGibbsEnergy

Return specific Gibbs energy from the thermodynamic state

Information

Extends from Modelica.Icons.Function (Icon for functions), (Return specific Gibbs energy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificEnergygSpecific Gibbs energy [J/kg]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificHelmholtzEnergy

Return specific Helmholtz energy from the thermodynamic state

Information

Extends from Modelica.Icons.Function (Icon for functions), (Return specific Helmholtz energy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificEnergyfSpecific Helmholtz energy [J/kg]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.velocityOfSound

Return velocity of sound from the thermodynamic state

Information

Extends from Modelica.Icons.Function (Icon for functions), (Return velocity of sound).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
VelocityOfSoundaVelocity of sound [m/s]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.isentropicExponent

Return isentropic exponent from the thermodynamic state

Information

Extends from Modelica.Icons.Function (Icon for functions), (Return isentropic exponent).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
IsentropicExponentgammaIsentropic exponent [1]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.isentropicEnthalpy

Return isentropic enthalpy

Information


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).

Inputs

TypeNameDefaultDescription
AbsolutePressurep_downstream downstream pressure [Pa]
ThermodynamicStaterefState reference state for entropy

Outputs

TypeNameDescription
SpecificEnthalpyh_isIsentropic enthalpy [J/kg]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCp

Return specific heat capacity at constant volume

Information

Extends from (Return specific heat capacity at constant pressure).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificHeatCapacitycpSpecific heat capacity at constant pressure [J/(kg.K)]

Modelica definition

redeclare function extends specificHeatCapacityCp 
  "Return specific heat capacity at constant volume"
algorithm 
  cp := cp_const;
end specificHeatCapacityCp;

Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCv Modelica.Media.Interfaces.PartialLinearFluid.specificHeatCapacityCv

Return specific heat capacity at constant volume from the thermodynamic state

Information

Extends from (Return specific heat capacity at constant volume).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
SpecificHeatCapacitycvSpecific heat capacity at constant volume [J/(kg.K)]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.isothermalCompressibility

Return the iso-thermal compressibility kappa

Information

Extends from (Return overall the isothermal compressibility factor).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
IsothermalCompressibilitykappaIsothermal compressibility [1/Pa]

Modelica definition

redeclare function extends isothermalCompressibility 
  "Return the iso-thermal compressibility kappa"
algorithm 
  kappa := kappa_const;
end isothermalCompressibility;

Modelica.Media.Interfaces.PartialLinearFluid.isobaricExpansionCoefficient Modelica.Media.Interfaces.PartialLinearFluid.isobaricExpansionCoefficient

Return the iso-baric expansion coefficient

Information

Extends from (Return overall the isobaric expansion coefficient beta).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
IsobaricExpansionCoefficientbetaIsobaric expansion coefficient [1/K]

Modelica definition

redeclare function extends isobaricExpansionCoefficient 
  "Return the iso-baric expansion coefficient"
algorithm 
  beta := beta_const;
end isobaricExpansionCoefficient;

Modelica.Media.Interfaces.PartialLinearFluid.density_derp_h Modelica.Media.Interfaces.PartialLinearFluid.density_derp_h

Return density derivative w.r.t. pressure at const specific enthalpy

Information

Extends from (Return density derivative w.r.t. pressure at const specific enthalpy).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DerDensityByPressureddphDensity derivative w.r.t. pressure [s2/m2]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.density_derh_p

Return density derivative w.r.t. specific enthalpy at constant pressure

Information

Extends from (Return density derivative w.r.t. specific enthalpy at constant pressure).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DerDensityByEnthalpyddhpDensity derivative w.r.t. specific enthalpy [kg.s2/m5]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.density_derp_T

Return density derivative w.r.t. pressure at const temperature

Information

Extends from (Return density derivative w.r.t. pressure at const temperature).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DerDensityByPressureddpTDensity derivative w.r.t. pressure [s2/m2]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.density_derT_p

Return density derivative w.r.t. temperature at constant pressure

Information

Extends from (Return density derivative w.r.t. temperature at constant pressure).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DerDensityByTemperatureddTpDensity derivative w.r.t. temperature [kg/(m3.K)]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.density_derX

Returns the partial derivative of density with respect to mass fractions at constant pressure and temperature

Information

Extends from (Return density derivative w.r.t. mass fraction).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
DensitydddX[nX]Derivative of density w.r.t. mass fraction [kg/m3]

Modelica definition

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 Modelica.Media.Interfaces.PartialLinearFluid.molarMass

Return molar mass

Information

Extends from (Return the molar mass of the medium).

Inputs

TypeNameDefaultDescription
ThermodynamicStatestate thermodynamic state record

Outputs

TypeNameDescription
MolarMassMMMixture molar mass [kg/mol]

Modelica definition

redeclare function extends molarMass "Return molar mass"
algorithm 
  MM  := MM_const;
end molarMass;

Modelica.Media.Interfaces.PartialLinearFluid.T_ph

Return temperature from pressure and specific enthalpy

Inputs

TypeNameDefaultDescription
SpecificEnthalpyh Specific enthalpy [J/kg]
AbsolutePressurep pressure [Pa]

Outputs

TypeNameDescription
TemperatureTTemperature [K]

Modelica definition

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;

Modelica.Media.Interfaces.PartialLinearFluid.T_ps

Return temperature from pressure and specific entropy

Inputs

TypeNameDefaultDescription
AbsolutePressurep Pressure [Pa]
SpecificEntropys Specific entropy [J/(kg.K)]

Outputs

TypeNameDescription
TemperatureTTemperature [K]

Modelica definition

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;

Automatically generated Fri Nov 12 16:31:29 2010.