redeclare replaceable record extends FluidConstants "extended fluid constants" Temperature criticalTemperature "critical temperature"; AbsolutePressure criticalPressure "critical pressure"; MolarVolume criticalMolarVolume "critical molar Volume"; Real acentricFactor "Pitzer acentric factor"; Temperature triplePointTemperature "triple point temperature"; AbsolutePressure triplePointPressure "triple point pressure"; Temperature meltingPoint "melting point at 101325 Pa"; Temperature normalBoilingPoint "normal boiling point (at 101325 Pa)"; DipoleMoment dipoleMoment "dipole moment of molecule in Debye (1 debye = 3.33564e10-30 C.m)"; Boolean hasIdealGasHeatCapacity=false "true if ideal gas heat capacity is available"; Boolean hasCriticalData=false "true if critical data are known"; Boolean hasDipoleMoment=false "true if a dipole moment known"; Boolean hasFundamentalEquation=false "true if a fundamental equation"; Boolean hasLiquidHeatCapacity=false "true if liquid heat capacity is available"; Boolean hasSolidHeatCapacity=false "true if solid heat capacity is available"; Boolean hasAccurateViscosityData=false "true if accurate data for a viscosity function is available"; Boolean hasAccurateConductivityData=false "true if accurate data for thermal conductivity is available"; Boolean hasVapourPressureCurve=false "true if vapour pressure data, e.g., Antoine coefficents are known"; Boolean hasAcentricFactor=false "true if Pitzer accentric factor is known"; SpecificEnthalpy HCRIT0=0.0 "Critical specific enthalpy of the fundamental equation"; SpecificEntropy SCRIT0=0.0 "Critical specific entropy of the fundamental equation"; SpecificEnthalpy deltah=0.0 "Difference between specific enthalpy model (h_m) and f.eq. (h_f) (h_m - h_f)"; SpecificEntropy deltas=0.0 "Difference between specific enthalpy model (s_m) and f.eq. (s_f) (s_m - s_f)"; end FluidConstants;
Type | Name | Default | Description |
---|---|---|---|
MoleFraction | moleFractions[:] | Mole fractions of mixture [1] | |
MolarMass | MMX[:] | molar masses of components [kg/mol] |
Type | Name | Description |
---|---|---|
MassFraction | X[size(moleFractions, 1)] | Mass fractions of gas mixture [1] |
function moleToMassFractions "Return mass fractions X from mole fractions" extends Modelica.Icons.Function; input SI.MoleFraction moleFractions[:] "Mole fractions of mixture"; input MolarMass[:] MMX "molar masses of components"; output SI.MassFraction X[size(moleFractions, 1)] "Mass fractions of gas mixture"; protected MolarMass Mmix = moleFractions*MMX "molar mass of mixture"; algorithm for i in 1:size(moleFractions, 1) loop X[i] := moleFractions[i]*MMX[i] /Mmix; end for;end moleToMassFractions;
Type | Name | Default | Description |
---|---|---|---|
MassFraction | X[:] | Mass fractions of mixture [1] | |
MolarMass | MMX[:] | molar masses of components [kg/mol] |
Type | Name | Description |
---|---|---|
MoleFraction | moleFractions[size(X, 1)] | Mole fractions of gas mixture [1] |
function massToMoleFractions "Return mole fractions from mass fractions X" extends Modelica.Icons.Function; input SI.MassFraction X[:] "Mass fractions of mixture"; input SI.MolarMass[:] MMX "molar masses of components"; output SI.MoleFraction moleFractions[size(X, 1)] "Mole fractions of gas mixture"; protected Real invMMX[size(X, 1)] "inverses of molar weights"; SI.MolarMass Mmix "molar mass of mixture"; algorithm for i in 1:size(X, 1) loop invMMX[i] := 1/MMX[i]; end for; Mmix := 1/(X*invMMX); for i in 1:size(X, 1) loop moleFractions[i] := Mmix*X[i]/MMX[i]; end for;end massToMoleFractions;