TableBased

Incompressible medium properties based on tables

Package Contents

invertTemp

Function to invert temperatures

BaseProperties

Base properties of T dependent medium

setState_pTX

Returns state record, given pressure and temperature

setState_dTX

Returns state record, given pressure and temperature

setState_pT

Returns state record as function of p and T

setState_phX

Returns state record, given pressure and specific enthalpy

setState_ph

Returns state record as function of p and h

setState_psX

Returns state record, given pressure and specific entropy

setState_ps

Returns state record as function of p and s

setSmoothState

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

specificHeatCapacityCv

Specific heat capacity at constant volume (or pressure) of medium

specificHeatCapacityCp

Specific heat capacity at constant volume (or pressure) of medium

dynamicViscosity

Return dynamic viscosity as a function of the thermodynamic state record

thermalConductivity

Return thermal conductivity as a function of the thermodynamic state record

s_T

Compute specific entropy

specificEntropy

Return specific entropy as a function of the thermodynamic state record

h_T

Compute specific enthalpy from temperature

h_T_der

Compute specific enthalpy from temperature

h_pT

Compute specific enthalpy from pressure and temperature

density_T

Return density as function of temperature

temperature

Return temperature as a function of the thermodynamic state record

pressure

Return pressure as a function of the thermodynamic state record

density

Return density as a function of the thermodynamic state record

specificEnthalpy

Return specific enthalpy as a function of the thermodynamic state record

specificInternalEnergy

Return specific internal energy as a function of the thermodynamic state record

T_ph

Compute temperature from pressure and specific enthalpy

T_ps

Compute temperature from pressure and specific enthalpy

Polynomials_Temp

Temporary Functions operating on polynomials (including polynomial fitting); only to be used in Modelica.Media.Incompressible.TableBased

Package Constants (51)

ThermoStates

Value: if enthalpyOfT then Modelica.Media.Interfaces.Choices.IndependentVariables.T else Modelica.Media.Interfaces.Choices.IndependentVariables.pT

Type: IndependentVariables

Description: Enumeration type for independent variables

mediumName

Value: "tableMedium"

Type: String

Description: Name of the medium

substanceNames

Value: {mediumName}

Type: String[:]

Description: Names of the mixture substances. Set substanceNames={mediumName} if only one substance.

extraPropertiesNames

Value: fill("", 0)

Type: String[:]

Description: Names of the additional (extra) transported properties. Set extraPropertiesNames=fill("",0) if unused

singleState

Value: true

Type: Boolean

Description: = true, if u and d are not a function of pressure

reducedX

Value: true

Type: Boolean

Description: = true if medium contains the equation sum(X) = 1.0; set reducedX=true if only one substance (see docu for details)

fixedX

Value: true

Type: Boolean

Description: = true if medium contains the equation X = reference_X

reference_p

Value: 1.013e5

Type: AbsolutePressure (Pa)

Description: Reference pressure of Medium: default 1 atmosphere

reference_T

Value: 298.15

Type: Temperature (K)

Description: Reference temperature of Medium: default 25 deg Celsius

reference_X

Value: fill(1 / nX, nX)

Type: MassFraction[nX] (kg/kg)

Description: Default mass fractions of medium

p_default

Value: 101325

Type: AbsolutePressure (Pa)

Description: Default value for pressure of medium (for initialization)

T_default

Value: Modelica.SIunits.Conversions.from_degC(20)

Type: Temperature (K)

Description: Default value for temperature of medium (for initialization)

h_default

Value: specificEnthalpy_pTX(p_default, T_default, X_default)

Type: SpecificEnthalpy (J/kg)

Description: Default value for specific enthalpy of medium (for initialization)

X_default

Value: reference_X

Type: MassFraction[nX] (kg/kg)

Description: Default value for mass fractions of medium (for initialization)

C_default

Value: fill(0, nC)

Type: ExtraProperty[nC]

Description: Default value for trace substances of medium (for initialization)

nS

Value: size(substanceNames, 1)

Type: Integer

Description: Number of substances

nX

Value: nS

Type: Integer

Description: Number of mass fractions

nXi

Value: if fixedX then 0 else if reducedX then nS - 1 else nS

Type: Integer

Description: Number of structurally independent mass fractions (see docu for details)

nC

Value: size(extraPropertiesNames, 1)

Type: Integer

Description: Number of extra (outside of standard mass-balance) transported properties

C_nominal

Value: 1.0e-6 * ones(nC)

Type: Real[nC]

Description: Default for the nominal values for the extra properties

enthalpyOfT

Value: true

Type: Boolean

Description: True if enthalpy is approximated as a function of T only, (p-dependence neglected)

densityOfT

Value: size(tableDensity, 1) > 1

Type: Boolean

Description: True if density is a function of temperature

T_min

Value:

Type: Temperature (K)

Description: Minimum temperature valid for medium model

T_max

Value:

Type: Temperature (K)

Description: Maximum temperature valid for medium model

T0

Value: 273.15

Type: Temperature (K)

Description: Reference Temperature

h0

Value: 0

Type: SpecificEnthalpy (J/kg)

Description: Reference enthalpy at T0, reference_p

s0

Value: 0

Type: SpecificEntropy (J/(kg·K))

Description: Reference entropy at T0, reference_p

MM_const

Value: 0.1

Type: MolarMass (kg/mol)

Description: Molar mass

npol

Value: 2

Type: Integer

Description: Degree of polynomial used for fitting

npolDensity

Value: npol

Type: Integer

Description: Degree of polynomial used for fitting rho(T)

npolHeatCapacity

Value: npol

Type: Integer

Description: Degree of polynomial used for fitting Cp(T)

npolViscosity

Value: npol

Type: Integer

Description: Degree of polynomial used for fitting eta(T)

npolVaporPressure

Value: npol

Type: Integer

Description: Degree of polynomial used for fitting pVap(T)

npolConductivity

Value: npol

Type: Integer

Description: Degree of polynomial used for fitting lambda(T)

neta

Value: size(tableViscosity, 1)

Type: Integer

Description: Number of data points for viscosity

tableDensity

Value:

Type: Real[:,2]

Description: Table for rho(T)

tableHeatCapacity

Value:

Type: Real[:,2]

Description: Table for Cp(T)

tableViscosity

Value:

Type: Real[:,2]

Description: Table for eta(T)

tableVaporPressure

Value:

Type: Real[:,2]

Description: Table for pVap(T)

tableConductivity

Value:

Type: Real[:,2]

Description: Table for lambda(T)

TinK

Value:

Type: Boolean

Description: True if T[K],Kelvin used for table temperatures

hasDensity

Value: not size(tableDensity, 1) == 0

Type: Boolean

Description: True if table tableDensity is present

hasHeatCapacity

Value: not size(tableHeatCapacity, 1) == 0

Type: Boolean

Description: True if table tableHeatCapacity is present

hasViscosity

Value: not size(tableViscosity, 1) == 0

Type: Boolean

Description: True if table tableViscosity is present

hasVaporPressure

Value: not size(tableVaporPressure, 1) == 0

Type: Boolean

Description: True if table tableVaporPressure is present

invTK

Value: if size(tableViscosity, 1) > 0 then if TinK then 1 ./ tableViscosity[:, 1] else 1 ./ Cv.from_degC(tableViscosity[:, 1]) else fill(0, neta)

Type: Real[neta]

poly_rho

Value: if hasDensity then Poly.fitting(tableDensity[:, 1], tableDensity[:, 2], npolDensity) else zeros(npolDensity + 1)

Type: Real[:]

poly_Cp

Value: if hasHeatCapacity then Poly.fitting(tableHeatCapacity[:, 1], tableHeatCapacity[:, 2], npolHeatCapacity) else zeros(npolHeatCapacity + 1)

Type: Real[:]

poly_eta

Value: if hasViscosity then Poly.fitting(invTK, Math.log(tableViscosity[:, 2]), npolViscosity) else zeros(npolViscosity + 1)

Type: Real[:]

poly_pVap

Value: if hasVaporPressure then Poly.fitting(tableVaporPressure[:, 1], tableVaporPressure[:, 2], npolVaporPressure) else zeros(npolVaporPressure + 1)

Type: Real[:]

poly_lam

Value: if size(tableConductivity, 1) > 0 then Poly.fitting(tableConductivity[:, 1], tableConductivity[:, 2], npolConductivity) else zeros(npolConductivity + 1)

Type: Real[:]

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

This is the base package for medium models of incompressible fluids based on tables. The minimal data to provide for a useful medium description is tables of density and heat capacity as functions of temperature.

It should be noted that incompressible media only have 1 state per control volume (usually T), but have both T and p as inputs for fully correct properties. The error of using only T-dependent properties is small, therefore a Boolean flag enthalpyOfT exists. If it is true, the enumeration Choices.independentVariables is set to Choices.independentVariables.T otherwise it is set to Choices.independentVariables.pT.

Using the package TableBased

To implement a new medium model, create a package that extends TableBased and provides one or more of the constant tables:

tableDensity        = [T, d];
tableHeatCapacity   = [T, Cp];
tableConductivity   = [T, lam];
tableViscosity      = [T, eta];
tableVaporPressure  = [T, pVap];

The table data is used to fit constant polynomials of order npol, the temperature data points do not need to be same for different properties. Properties like enthalpy, inner energy and entropy are calculated consistently from integrals and derivatives of d(T) and Cp(T). The minimal data for a useful medium model is thus density and heat capacity. Transport properties and vapor pressure are optional, if the data tables are empty the corresponding function calls can not be used.

Extended by (2)

Essotherm650

Modelica.Media.Incompressible.Examples

Essotherm thermal oil

Glycol47

Modelica.Media.Incompressible.Examples

1,2-Propylene glycol, 47% mixture with water