felib.aga8x92dc class

The aga8x92dc performs the calculation of mole average, molar density, density and compression in accordance with:

AGA-8: Compressibility Factors for Natural Gas and Other Hydrocarbon Gases", American Gas Association (AGA) Transmission Measurement Committee Report No. 8, American Petroleum Institute (API).

Table 1: Description of the aga8x92dc class interface: properties (variables), methods (functions) and error flags.

 PROPERTIES

 Natural gas component

Set property value

Get property value

I

 X(I) mole fraction for

0

Methane

 

void SetComponentMolarFraction(short I, double X(I))

 double GetComponentMolarFraction(short I)

1

Nitrogen

2

Carbon dioxide

3

Ethane

4

Propane

5

Water

6

Hydrogen sylfide

7

Hydrogen

8

Carbon monoxide

9

Oxygen

10

iso-Butane

11

n-Butane

12

iso-Pentane

13

n-Pentane

14

n-Hexane

15

n-Heptane

16

n-Octane

17

n-Nonane

18

n-Decane

19

Helium

20

Argon

Pressure [MPa]

void SetPressureMPa(double newP) double GetPressureMPa()

Temperature [K]

void SetTemperatureK(double newT) double GetTemperatureK()

Error status

-

long int GetErrorFlag()

Mole average

-

double GetMoleAverage()

Molar density [kg-mole/m3]

-

double GetMolarDensity()

Density [kg/m3]

-

double GetDensity()

Compression

-

double GetCompression()

Relative density at T2=273.15[K], p2=0.101325[MPa]

-

double GetRelativeDensity()

Superior calorific value on a volumetric basis at T1=298.15[K], T2=273.15[K], p1=p2=0.101325[MPa]

-

double GetSuperiorCalorificValue()

METHODS

Calculation of AGA8/1992 virial-type equation long int CalculateAga8x92dc(); calculates mole average, molar density, density, compression, relative density, superior calorific value and returns long int error status

ERROR STATUS

Error status bits are cleared or set upon the completion of long int CalculateAga8x92dc() method as follows
Bit 0 =1 (000001H) There exist at least one mole fraction < 0 or > 1.
Bit 1 =1 (000002H) The total sum of mole fractions <0.98 or >1.02
Bit 2 =1 (000004H) The total sum of mole fractions is not exactly equal to 1. This bit denotes only the warning that the fractions have been normalized to give the total sum of mole fractions equal to 1. If only bit 2 was set during the calculation the results are valid.
Bit 3 =1 (000008H) The mole fraction of Methane >1.0.
Bit 4 =1 (000010H) The mole fraction of Nitrogen >1.0.
Bit 5 =1 (000020H) The mole fraction of Carbon Dioxide >1.0.
Bit 6 =1 (000040H) The mole fraction of Ethane >1.0.
Bit 7 =1 (000080H) The mole fraction of Propane >0.12.
Bit 8 =1 (000100H) The mole fraction of Water >0.1.
Bit 9 =1 (000200H) The mole fraction of Hydrogen sulfide > 1.0.
Bit 10 =1 (000400H) The mole fraction of Hydrogen >1.0.
Bit 11 =1 (000800H) The mole fraction of Carbon monoxide > 0.03.
Bit 12 =1 (001000H) The mole fraction of Oxygen >0.21.
Bit 13=1 (002000H) The mole fraction of Butanes (n-Butane + i-Butane) >0.06.
Bit 14 =1 (004000H) The mole fraction of Pentanes (n-pentane + i-Pentane) >0.04.
Bit 15 =1 (008000H) The mole fraction of Hexanes plus (n-Hexane + n-Heptane + n-Octane + n-Nonane, n-Decane) >0.1.
Bit 16 =1 (010000H) The mole fraction of Helium >0.03.
Bit 17 =1 (020000H) The mole fraction of Argon >0.01
Bit 18 =1 (040000H) The pressure <0.1 Pa or >275.8 MPa.
Bit 19 =1 (080000H) The temperature temperature <144 K or >678 K.
Bit 20 =1 (100000H) The relative density <0.07 or >1.52.
Bit 21 =1 (200000H) The superior calorific value <0 MJ/m^3 or >67.066 MJ/m^3.
Bit 22 =1 (400000H) No convergence.
Bit 23 (800000H) Unused.
Bit 24 =1 (1000000H) Incorrect keycode entered.
Bit 25,... All higher bits are unused.