nuts {CHNOSZ}R Documentation

Unit Conversions

Description

Set units preferences and convert values between units.

Usage

  nuts(units = NULL)
  convert(value, units, T = thermo$opt$Tr,
    P = thermo$opt$Pr, pH = 7, logaH2O = 0)
  envert(value,units)
  outvert(value,units)

Arguments

units character, name of units to set in global preferences (nuts), or name of units (see table) to convert to or from.
value numeric, value(s) to be converted.
T numeric, temperature (Kelvin), used in G-logK, pe-Eh and logfO2-E0 conversions.
P numeric, pressure (bar), used in logfO2-E0 conversions.
pH numeric, pH, used in logfO2-E0 conversions.
logaH2O numeric, logarithm of activity of water, used in logfO2-E0 conversions.

Details

The global units settings are used by subcrt, affinity, and diagram to accept input in or convert output to the units desired by the user. The settings, which can be queried or changed with nuts, refer to the units of temperature (K or C), energy (cal or J), and pressure (bar, MPa). (The first value in each of those pairs refers to the default units). If the units argument to nuts is NULL (the default) the current units settings are printed (with a NULL return); if it is one of T, P or E, the units for that property are printed and also returned.

The actual units conversions are handled by convert, through which values are transformed into destination units (names not case sensitive). The possible unit conversions are shown in the following table. Note that Eh and E0 both stand for the value of Eh (do not confuse E0 with the standard reduction potential, which is written similarly); they have different names so that one can choose to convert to pe or logfO2.

C K temperature
cal J energy
bar MPa pressure
E0 logfO2 oxidation state
G logK energy
cm3bar calories energy
pe Eh oxidation state

envert and outvert are wrappers for convert that handle the conditional conversion of values from or to the user's units. The name of the function nuts is such to avoid clashing with the name of units, which is present in the R base package.

Value

Numeric, except for nuts, which returns character or NULL.

Examples

  
  ## examples using convert
  # temperature (Kelvin) to degrees C
  convert(273.15,"C")
  # temperature (degrees C) to Kelvin
  convert(100,"K")
  # Gibbs energy (cal mol-1) to/from logK
  convert(1000,"logK")          
  convert(1000,"logK",T=373.15)
  convert(1,"G") 
  # Eh (volt) to pe 
  convert(-1,"pe")              
  convert(-1,"pe",T=373.15)
  # logfO2 to E0 (volt)
  convert(-80,"E0")             
  convert(-80,"E0",pH=5)
  convert(-80,"E0",pH=5,logaH2O=-5)
  # calorie to/from joule
  convert(10,"j")               
  convert(10,"cal")
  # cm3bar to calories          
  convert(10,"calories")

  ## examples showing user unit preference      
  nuts("K")  # set temperature units
  nuts("J")  # set energy units
  # return the name of the (E)nergy units
  nuts("E")     
  # print names of all units (NULL return)              
  nuts()        
  # defaults            
  nuts("K"); nuts("bar"); nuts("cal")   

[Package CHNOSZ version 0.9 Index]