CHNOSZ (version 1.3.2)

util.data: Functions for Checking Thermodynamic Data

Description

Show table of references in a web browser or get individual references for species. Check internal consistency of individual entries in database.

Usage

thermo.refs(key=NULL, keep.duplicates=FALSE)
  checkEOS(eos, state, prop, ret.diff = FALSE)
  checkGHS(ghs, ret.diff = FALSE)
  check.obigt()
  dumpdata(file)
  RH2obigt(compound = NULL, state = "cr", 
    file = system.file("extdata/adds/RH98_Table15.csv", package = "CHNOSZ"))

Arguments

key

character, numeric, or list; bibliographic reference key(s)

keep.duplicates

logical, keep duplicated references?

eos

dataframe, equations-of-state parameters in the format of thermo()$obigt

state

character, physical state of species

prop

character, property of interest (Cp or V)

ret.diff

logical, return the difference between calculated and tabulated values?

ghs

dataframe, containing G, H and S, in the format of thermo()$obigt

file

character, path to a file

compound

character, name of compound(s) in group additivity calculation

Value

The values returned (invisible-y) by mod.obigt are the rownumbers of the affected species.

Details

thermo.refs with default arguments uses browseURL to display the sources of thermodynamic data in thermo()$refs, with the URLs in that table showing as hyperlinks in the browser. Otherwise, if key is character, the citation information for those reference keys (including URLs) are returned. If key is numeric, the values refer to the species in those rows of thermo()$obigt, and the citation information for each listed reference (thermo()$obigt$ref1, thermo()$obigt$ref2) is returned. If key is a list, it is interpreted as the result of a call to subcrt, and the citation information for each species involved in the calculation is returned. Only unique references are returned, unless keep.duplicates is TRUE. In that case, a single reference for each species is returned, ignoring anything in thermo()$obigt$ref2.

checkEOS compares heat capacity and volume calculated from equation-of-state parameters with reference (tabulated) values at 25 C and 1 bar and prints a message and returns the calculated value if tolerance is exceeded. The Helgeson-Kirkham-Flowers equations of state parameters are in eos, which is a data frame with columns (and column names) in the same format as thermo$obigt. The property can be one of Cp or V. The code only distinguishes between states of aq and all others. The default tolerances, given in thermo()$opt$Cp.tol and thermo()$opt$V.tol, are 1 cal/K.mol for Cp and 1 cm3/mol for V. If ret.diff is TRUE, the differences are returned irrespective of their values, and no messages are printed.

checkGHS compares G (standard molal Gibbs energy of formation from the elements) calculated from H (standard molal enthalpy of formation) and S (standard molal entropy) with reference (tabulated) values of G at 25 C and 1 bar. A message is printed and the calculated difference is returned if it exceeds the value given in thermo()$opt$G.tol, which has a default value of 100 cal/mol. The calculation requires that G, H and S, and the chemical formula of the species all be present.

check.obigt is a function to check self-consistency of each entry in the thermodynamic database, using checkEOS and checkGHS. The output is a table listing only species that exceed at least one of the tolerance limits, giving the species index (rownumber in `thermo()$obigt`), species name and state, and DCp, DV and DG, for the calculated differences (only those above the tolerances are given). This function is used to generate the file found at extdata/thermo/obigt_check.csv.

dumpdata returns all of the available data, from both the default and optional data files, or writes it to a file if file is not NULL. The format is the same as thermo$obigt, except for a single prepended column named source, giving the source of the data (OBIGT refers to the default database, and DEW, SLOP98, and SUPCRT92 are the optional data files).

RH2obigt implements a group additivity algorithm for standard molal thermodynamic properties and equations of state parameters of crystalline and liquid organic molecules from Richard and Helgeson, 1998. The names of the compounds and their physical state are searched for in the indicated file, that also contains chemical formulas and group stoichiometries; the names of the groups are stored in the column names of this file, and must be present in thermo$obigt. The default file (extdata/thermo/RH98_Table15.csv) includes data taken from Table 15 of Richard and Helgeson, 1998 for high molecular weight compounds in crystalline and liquid states. An error is produced if any of the compound-state combinations is not found in the file, if any of the group names for a given compound-state combination is not found in thermo()$obigt, or if the chemical formula calculated from group additivity (with the aid of i2A and as.chemical.formula) is not identical to that listed in the file.

References

Richard, L. and Helgeson, H. C. (1998) Calculation of the thermodynamic properties at elevated temperatures and pressures of saturated and aromatic high molecular weight solid and liquid hydrocarbons in kerogen, bitumen, petroleum, and other organic matter of biogeochemical interest. Geochim. Cosmochim. Acta 62, 3591--3636. https://doi.org/10.1016/S0016-7037(97)00345-1

See Also

thermo, add.obigt, mod.buffer

Examples

Run this code
# NOT RUN {
# citation information for Helgeson et al., 1998
thermo.refs("HOK+98")
# two references for alanine
thermo.refs(info("alanine"))
# three references for species in the reaction
s <- subcrt(c("O2","O2"),c("gas","aq"),c(-1,1))
thermo.refs(s) 
# }
# NOT RUN {
## marked dontrun because it opens a browser
# show the contents of thermo()$refs
thermo.refs()
# }
# NOT RUN {
## calculate thermodynamic properties of organic compounds
## using group additivity, after Richard and Helgeson, 1998
RH2obigt()
# }

Run the code above in your browser using DataLab