Berman {CHNOSZ} | R Documentation |

Calculate thermodynamic properties of minerals using the equations of Berman (1988).

```
Berman(name, T = 298.15, P = 1, check.G = FALSE,
calc.transition = TRUE, calc.disorder = TRUE)
```

`name` |
character, name of mineral |

`T` |
numeric, temperature(s) at which to calculate properties (K) |

`P` |
numeric, pressure(s) at which to calculate properties (bar) |

`check.G` |
logical, check consistency of G, H, and S? |

`calc.transition` |
logical, include calculation of polymorphic transition properties? |

`calc.disorder` |
logical, include calculation of disordering properties? |

This function calculates the thermodynamic properties of minerals at high *P* and *T* using equations given by Berman (1988).
These minerals should be listed in `thermo()$OBIGT`

with the state ‘cr’ and chemical formula, and optionally an abbreviation and references, but all other properties set to NA.

The standard state thermodynamic properties and parameters for the calculations are stored in data files under `extdata/Berman`

, or can be read from a user-created file specified by `thermo()$opt$Berman`

.

The equation used for heat capacity is *C _{P}* = k0 + k1*

`GfPrTr`

, `HfPrTr`

, `SPrTr`

, `VPrTr`

), 3a (`k0`

to `k3`

), 4 (`v1`

to `v4`

), 3b (transition parameters: `Tlambda`

to `dTH`

), and 5 (disorder parameters: `Tmax`

, `Tmin`

, `d1`

to `d4`

and `Vad`

) of Berman (1988).
Following the winTWQ data format, multipliers are applied to the volume parameters only (see below).
Note that `VPrTr`

is tabulated in J barA value for `GfPrTr`

is not required and is only used for optional checks (see below).
Numeric values (possibly 0) should be assigned for all of `HfPrTr`

, `SPrTr`

, `VPrTr`

, `k0`

to `k6`

and `v1`

to `v4`

.
Missing (or NA) values are permitted for the transition and disorder parameters, for minerals where they are not used.
The data files have the following 30 columns:

`name` | mineral name (must match an entry with a formula but NA properties in `thermo()$OBIGT` ) |

`GfPrTr` | standard Gibbs energy at 298.15 K and 1 bar (J mol^{-1}) (Benson-Helgeson convention) |

`HfPrTr` | standard enthalpy at 298.15 K and 1 bar (J mol^{-1}) |

`SPrTr` | standard entropy at 298.15 K and 1 bar (J mol^{-1} K^{-1}) |

`VPrTr` | standard volume at 298.15 K and 1 bar (J bar^{-1}) [1 J bar^{-1} = 10 cm^{3}] |

`k0` ... `k6` | k0 (J mol^{-1} K^{-1}) to k6 |

`v1` | v1 (K^{-1}) * 10^{5} |

`v2` | v2 (K^{-2}) * 10^{5} |

`v3` | v3 (bar^{-1}) * 10^{5} |

`v4` | v4 (bar^{-2}) * 10^{8} |

`Tlambda` | T_{λ} (K) |

`Tref` | T (K) _{ref} |

`dTdP` | dT / dP (K bar^{-1}) |

`l1` | l1 ((J/mol)^{0.5} K^{-1}) |

`l2` | l2 ((J/mol)^{0.5} K^{-2}) |

`DtH` | ΔT_{t}H (J mol^{-1}) |

`Tmax` | temperature at which phase is fully disordered (T in Berman, 1988) (K) _{D} |

`Tmin` | reference temperature for onset of disordering (t in Berman, 1988) (K) |

`d0` ... `d4` | d0 (J mol^{-1} K^{-1}) to d4 |

`Vad` | constant that scales the disordering enthalpy to volume of disorder (d_{5} in Berman, 1988) |

The function outputs apparent Gibbs energies according to the Benson-Helgeson convention (Δ*G* = Δ*H* - *T*Δ*S*) using the entropies of the elements in the chemical formula of the mineral to calculate Δ*S* (cf. Anderson, 2005).
If `check.G`

is TRUE, the tabulated value of `GfTrPr`

(Benson-Helgeson) is compared with that calculated from `HfPrTr`

- 298.15*`DSPrTr`

(`DSPrTr`

is the difference between the entropies of the elements in the formula and `SPrTr`

in the table).
A warning is produced if the absolute value of the difference between tabulated and calculated `GfTrPr`

is greater than 1000 J/mol.

If the function is called with missing `name`

, the parameters for all available minerals are returned.

A data frame with `T`

(K), `P`

(bar), `G`

, `H`

, `S`

, and `Cp`

(energetic units in Joules), and `V`

(cm^{3} mol^{-1}).

Anderson, G. M. (2005) *Thermodynamics of Natural Systems*, 2nd ed., Cambridge University Press, 648 p. https://www.worldcat.org/oclc/474880901

Berman, R. G. (1988) Internally-consistent thermodynamic data for minerals in the system Na_{2}O-K_{2}O-CaO-MgO-FeO-Fe_{2}O_{3}-Al_{2}O_{3}-SiO_{2}-TiO_{2}-H_{2}O-CO_{2}. *J. Petrol.* **29**, 445-522. doi:10.1093/petrology/29.2.445

Berman, R. G. and Aranovich, L. Ya. (1996) Optimized standard state and solution properties of minerals. I. Model calibration for olivine, orthopyroxene, cordierite, garnet, and ilmenite in the system FeO-MgO-CaO-Al_{2}O_{3}-TiO_{2}-SiO_{2}. *Contrib. Mineral. Petrol.* **126**, 1-24. doi:10.1007/s004100050233

Berman, R. G. (2007) winTWQ (version 2.3): A software package for performing internally-consistent thermobarometric calculations. *Open File* **5462**, Geological Survey of Canada, 41 p. doi:10.4095/223425

Helgeson, H. C., Delany, J. M., Nesbitt, H. W. and Bird, D. K. (1978) Summary and critique of the thermodynamic properties of rock-forming minerals. *Am. J. Sci.* **278-A**, 1–229. https://www.worldcat.org/oclc/13594862

```
# Other than the formula, the parameters aren't stored in
# thermo()$OBIGT, so this shows NAs
info(info("quartz", "cr"))
# Properties of alpha-quartz (aQz) at 298.15 K and 1 bar
Berman("quartz")
# Gibbs energies of aQz and coesite at higher T and P
T <- seq(200, 1300, 100)
P <- seq(22870, 31900, length.out = length(T))
G_aQz <- Berman("quartz", T = T, P = P)$G
G_Cs <- Berman("coesite", T = T, P = P)$G
# That is close to the univariant curve (Ber88 Fig. 4),
# so the difference in G is close to 0
DGrxn <- G_Cs - G_aQz
all(abs(DGrxn) < 100) # TRUE
# Make a P-T diagram for SiO2 minerals (Ber88 Fig. 4)
basis(c("SiO2", "O2"), c("cr", "gas"))
species(c("quartz", "quartz,beta", "coesite"), "cr")
a <- affinity(T = c(200, 1700, 200), P = c(0, 50000, 200))
diagram(a)
## Getting data from a user-supplied file
## Ol-Opx exchange equilibrium, after Berman and Aranovich, 1996
species <- c("fayalite", "enstatite", "ferrosilite", "forsterite")
coeffs <- c(-1, -2, 2, 1)
T <- seq(600, 1500, 50)
Gex_Ber88 <- subcrt(species, coeffs, T = T, P = 1)$out$G
# Add data from BA96
datadir <- system.file("extdata/Berman/testing", package = "CHNOSZ")
add.OBIGT(file.path(datadir, "BA96_OBIGT.csv"))
thermo("opt$Berman" = file.path(datadir, "BA96_Berman.csv"))
Gex_BA96 <- subcrt(species, coeffs, T = seq(600, 1500, 50), P = 1)$out$G
# Ber88 is lower than BA96 at low T
(Gex_BA96 - Gex_Ber88)[1] > 0 # TRUE
# The curves cross at about 725 deg C (BA96 Fig. 8)
# (actually, in our calculation they cross closer to 800 deg C)
T[which.min(abs(Gex_BA96 - Gex_Ber88))] # 800
# Reset the database (thermo()$OBIGT, and thermo()$opt$Berman)
reset()
```

[Package *CHNOSZ* version 2.0.0 Index]