12#ifndef DUMUX_HEAVYOIL_HH
13#define DUMUX_HEAVYOIL_HH
17#include <dune/common/math.hh>
33template <
class Scalar>
46 {
return "heavyoil"; }
78 DUNE_THROW(Dune::NotImplemented,
"tripleTemperature for heavyoil");
86 DUNE_THROW(Dune::NotImplemented,
"triplePressure for heavyoil");
92 constexpr Scalar B = 89.9513;
93 constexpr Scalar C = 139.6612;
94 constexpr Scalar D = 3.2033;
95 constexpr Scalar E = 1.0564;
100 return A+(B/mW)-(C/pow((mW+D),E));
105 constexpr Scalar A = -7.4120e-2;
106 constexpr Scalar B = -7.5041e-3;
107 constexpr Scalar C = -2.6031;
108 constexpr Scalar D = 9.0180e-2;
109 constexpr Scalar E = -1.0482;
116 return A*power(deltaSpecificGravity,2) + B*deltaSpecificGravity + C*power(deltaMolecularWeight,2) + D*deltaMolecularWeight
117 + E*deltaSpecificGravity*deltaMolecularWeight;
122 constexpr Scalar A = -6.1294e-2;
123 constexpr Scalar B = -7.0862e-2;
124 constexpr Scalar C = 6.1976e-1;
125 constexpr Scalar D = -5.7090e-2;
126 constexpr Scalar E = -8.4583e-2;
133 return A*power(deltaSpecificGravity,2) + B*deltaSpecificGravity + C*power(deltaMolecularWeight,2) + D*deltaMolecularWeight
134 + E*deltaSpecificGravity*deltaMolecularWeight;
139 constexpr Scalar A = 1.8270e-1;
140 constexpr Scalar B = -2.4864e-1;
141 constexpr Scalar C = 8.3611;
142 constexpr Scalar D = -2.2389e-1;
143 constexpr Scalar E = 2.6984;
150 return A*power(deltaSpecificGravity,2) + B*deltaSpecificGravity + C*power(deltaMolecularWeight,2) + D*deltaMolecularWeight
151 + E*deltaSpecificGravity*deltaMolecularWeight;
156 constexpr Scalar A = 477.63;
157 constexpr Scalar B = 88.51;
158 constexpr Scalar C = 1007;
159 constexpr Scalar D = 1214.40;
167 constexpr Scalar A = 226.50;
168 constexpr Scalar B = 6.78;
169 constexpr Scalar C = 1.282e6;
170 constexpr Scalar D = 2668;
178 constexpr Scalar A = 141.20;
179 constexpr Scalar B = 45.66e-2;
180 constexpr Scalar C = 16.59e-3;
181 constexpr Scalar D = 2.19;
221 constexpr Scalar A = 8.25990;
222 constexpr Scalar B = 2830.065;
223 constexpr Scalar C = 42.95101;
228 return 100*1.334*pow(10.0, (A - (B/(T + C))));
233 constexpr Scalar A = 8.25990;
234 constexpr Scalar B = 2830.065;
235 constexpr Scalar C = 42.95101;
240 return Scalar ((B/(A-log10(P/100*1.334)))-C);
265 const Scalar sqrt1over3 = sqrt(1./3.);
295 * (3.978 * Tr1 - 3.958 + 1.555*log(p_crit * 1e-5 ) )
302 const Scalar DH_vap = DH_v_boil * pow(((1.0 - Tr2)/(1.0 - Tr1)), n);
353 constexpr Scalar rhoReference = 906.;
354 constexpr Scalar compressCoeff = 1.e-8;
355 constexpr Scalar expansCoeff = 1.e-7;
356 return rhoReference * (1. + (
pressure - 1.e5)*compressCoeff) * (1. - (
temperature - 293.)*expansCoeff);
403 constexpr Scalar Fp0 = 1.0;
404 constexpr Scalar xi = 0.00474;
406 Fp0*(0.807*pow(Tr,0.618)
407 - 0.357*exp(-0.449*Tr)
408 + 0.34*exp(-4.058*Tr)
411 return eta_xi/xi/1e7;
437 return ((pow(10,0.10231*power(API,2)-3.9464*API+46.5037))*(pow(temperatureFahrenheit,-0.04542*power(API,2)+1.70405*API-19.18)))*0.001;
Base class for all components Components provide the thermodynamic relations for the liquid,...
Definition: components/base.hh:47
Scalar Scalar
export the scalar type used by the component
Definition: components/base.hh:51
Interface for components that have a gas state.
Definition: gas.hh:29
Properties of the component heavyoil.
Definition: heavyoil.hh:38
static Scalar liquidViscosity(Scalar temperature, Scalar pressure)
The dynamic viscosity of pure heavyoil.
Definition: heavyoil.hh:422
static constexpr Scalar molarMass()
The molar mass in of heavyoil.
Definition: heavyoil.hh:51
static Scalar vaporPressure(Scalar temperature)
The saturation vapor pressure in of.
Definition: heavyoil.hh:219
static constexpr Scalar refComponentMolecularWeight()
The MolecularWeight in of refComponent.
Definition: heavyoil.hh:57
static Scalar perbutationFactorCriticalTemperature()
Definition: heavyoil.hh:120
static Scalar liquidHeatCapacity(const Scalar temperature, const Scalar pressure)
Specific heat cap of liquid heavyoil .
Definition: heavyoil.hh:449
static constexpr Scalar molecularWeight()
The molar mass in of heavyoil.
Definition: heavyoil.hh:64
static Scalar refComponentCriticalPressure()
Definition: heavyoil.hh:176
static constexpr bool gasIsIdeal()
Returns true if the gas phase is assumed to be ideal.
Definition: heavyoil.hh:378
static Scalar liquidMolarDensity(Scalar temperature, Scalar pressure)
The molar density of pure heavyoil in at a given pressure and temperature.
Definition: heavyoil.hh:366
static Scalar perbutationFactorBoilingTemperature()
Definition: heavyoil.hh:103
static Scalar tripleTemperature()
Returns the temperature at heavyoil's triple point.
Definition: heavyoil.hh:76
static Scalar criticalPressure()
Returns the critical pressure of heavyoil.
Definition: heavyoil.hh:208
static Scalar gasMolarDensity(Scalar temperature, Scalar pressure)
The molar density of pure heavyoil in , depending on pressure and temperature.
Definition: heavyoil.hh:339
static Scalar gasViscosity(Scalar temperature, Scalar pressure)
The dynamic viscosity of heavyoil vapor.
Definition: heavyoil.hh:393
static Scalar vaporTemperature(Scalar pressure)
Definition: heavyoil.hh:231
static constexpr bool gasIsCompressible()
Returns true if the gas phase is assumed to be compressible.
Definition: heavyoil.hh:372
static Scalar liquidThermalConductivity(Scalar temperature, Scalar pressure)
Thermal conductivity of heavy oil.
Definition: heavyoil.hh:463
static constexpr Scalar specificGravity()
The Specific Gravity of heavyoil.
Definition: heavyoil.hh:70
static Scalar criticalTemperature()
Returns the critical temperature of heavyoil.
Definition: heavyoil.hh:199
static Scalar gasDensity(Scalar temperature, Scalar pressure)
The (ideal) gas density of heavyoil vapor at a given temperature and pressure .
Definition: heavyoil.hh:328
static Scalar triplePressure()
Returns the pressure at heavyoil's triple point.
Definition: heavyoil.hh:84
static Scalar refComponentCriticalTemperature()
Definition: heavyoil.hh:165
static constexpr bool liquidIsCompressible()
Returns true if the liquid phase is assumed to be compressible.
Definition: heavyoil.hh:384
static Scalar liquidEnthalpy(const Scalar temperature, const Scalar pressure)
Specific enthalpy of liquid heavyoil .
Definition: heavyoil.hh:249
static Scalar refComponentBoilingTemperature()
Definition: heavyoil.hh:154
static std::string name()
A human readable name for heavyoil.
Definition: heavyoil.hh:45
static Scalar perbutationFactorCriticalPressure()
Definition: heavyoil.hh:137
static Scalar refComponentSpecificGravity()
Definition: heavyoil.hh:89
static Scalar heatVap(Scalar temperature, const Scalar pressure)
Latent heat of vaporization for heavyoil .
Definition: heavyoil.hh:282
static Scalar boilingTemperature()
Returns the temperature at heavyoil's boiling point (1 atm)
Definition: heavyoil.hh:190
static Scalar gasEnthalpy(Scalar temperature, Scalar pressure)
Specific enthalpy of heavyoil vapor .
Definition: heavyoil.hh:317
static Scalar liquidDensity(Scalar temperature, Scalar pressure)
The density of pure heavyoil at a given pressure and temperature .
Definition: heavyoil.hh:348
Interface for components that have a liquid state.
Definition: liquid.hh:29
A central place for various physical constants occurring in some equations.
Definition: constants.hh:27
static constexpr Scalar R
The ideal gas constant .
Definition: constants.hh:32
Relations valid for an ideal gas.
Definition: idealgas.hh:25
static constexpr Scalar density(Scalar avgMolarMass, Scalar temperature, Scalar pressure)
The density of the gas in , depending on pressure, temperature and average molar mass of the gas.
Definition: idealgas.hh:37
static constexpr Scalar molarDensity(Scalar temperature, Scalar pressure)
The molar density of the gas , depending on pressure and temperature.
Definition: idealgas.hh:58
Base class for all components Components provide the thermodynamic relations for the liquid,...
A central place for various physical constants occurring in some equations.
Interface for components that have a gas state.
Relations valid for an ideal gas.
Interface for components that have a liquid state.
std::string temperature() noexcept
I/O name of temperature for equilibrium models.
Definition: name.hh:39
std::string pressure(int phaseIdx) noexcept
I/O name of pressure for multiphase systems.
Definition: name.hh:22