[3] diagram (fields)

### 2-D diagrams: predominance diagrams ### these use the maximum affinity method ## Fe-S-O at 200 deg C, after Helgeson, 1970 basis(c("Fe", "O2", "S2"))
Fe O S ispecies logact state Fe 1 0 0 2054 0 cr O2 0 2 0 65 0 aq S2 0 0 2 3318 0 gas
species(c("iron", "ferrous-oxide", "magnetite", "hematite", "pyrite", "pyrrhotite"))
Fe O2 S2 ispecies logact state name 1 1 0.0 0.0 2054 0 cr iron 2 1 0.5 0.0 2025 0 cr ferrous-oxide 3 3 2.0 0.0 2081 0 cr magnetite 4 2 1.5 0.0 2047 0 cr hematite 5 1 0.0 1.0 2113 0 cr pyrite 6 1 0.0 0.5 2117 0 cr pyrrhotite
# the calculations include the phase transitions of # pyrrhotite; no additional step is needed a <- affinity(S2=c(-50, 0), O2=c(-90, -10), T=200)
energy.args: temperature is 200 C energy.args: pressure is Psat energy.args: variable 1 is log_f(S2) at 128 values from -50 to 0 energy.args: variable 2 is log_a(O2) at 128 values from -90 to -10 subcrt: 9 species at 473.15 K and 15.54 bar (wet) info.numeric: H of magnetite(cr2) is NA; set to -265601.09 info.numeric: H of magnetite(cr2) is NA; set to -265601.09 subcrt: 4 phases for iron ... phase 1 is stable subcrt: 4 phases for iron ... phase 1 is stable subcrt: 2 phases for magnetite ... phase 1 is stable subcrt: 3 phases for hematite ... phase 1 is stable subcrt: 3 phases for pyrrhotite ... phase 2 is stable
diagram(a, fill="heat")
balance: from moles of Fe in formation reactions diagram: plotting A/(2.303RT) / n.balance (maximum affinity method for 2-D diagrams)
title(main=paste("Fe-S-O, 200 degrees C, 1 bar", "After Helgeson, 1970", sep="\n"))

Image diagram4

 

## pe-pH diagram for hydrated iron sulfides, ## goethite and pyrite, after Majzlan et al., 2006 basis(c("Fe+2", "SO4-2", "H2O", "H+", "e-"), c(0, log10(3), log10(0.75), 999, 999))
Fe H O S Z ispecies logact state Fe+2 1 0 0 0 2 554 0.0000000 aq SO4-2 0 0 4 1 -2 24 0.4771213 aq H2O 0 2 1 0 0 1 -0.1249387 liq H+ 0 1 0 0 1 3 999.0000000 aq e- 0 0 0 0 -1 2 999.0000000 aq
species(c("rhomboclase", "ferricopiapite", "hydronium jarosite", "goethite", "melanterite", "pyrite"))
Fe+2 SO4-2 H2O H+ e- ispecies logact state name 1 1.00 2.17 4.40 1.34 -1.00 2192 0 cr rhomboclase 2 4.78 6.00 23.05 -2.34 -4.78 2191 0 cr ferricopiapite 3 3.00 2.00 7.00 -5.00 -3.00 2189 0 cr hydronium jarosite 4 1.00 0.00 2.00 -3.00 -1.00 2193 0 cr goethite 5 1.00 1.00 7.00 0.00 0.00 2206 0 cr melanterite 6 1.00 2.00 -8.00 16.00 14.00 2113 0 cr pyrite
a <- affinity(pH=c(-1, 4, 256), pe=c(-5, 23, 256))
energy.args: temperature is 25 C energy.args: pressure is Psat energy.args: variable 1 is pH at 256 values from -1 to 4 energy.args: variable 2 is pe at 256 values from -5 to 23 subcrt: 11 species at 298.15 K and 1 bar (wet)
d <- diagram(a, main="Fe-S-O-H, after Majzlan et al., 2006")
balance: from moles of Fe+2 in formation reactions diagram: plotting A/(2.303RT) / n.balance (maximum affinity method for 2-D diagrams) subcrt: 3 species at 298.15 K and 1 bar (wet) info.character: found H2O(liq), also available in cr subcrt: 4 species at 298.15 K and 1 bar (wet) subcrt: 2 species at 298.15 K and 1 bar info.character: found H2O(liq), also available in cr subcrt: 4 species at 298.15 K and 1 bar (wet)
# the first four species show up in order near pe=15 stopifnot(all.equal(unique(d$predominant[, 183]), 1:4)) water.lines(d, lwd=2)
subcrt: 3 species at 298.15 K and 1 bar (wet) info.character: found H2O(liq), also available in cr subcrt: 4 species at 298.15 K and 1 bar (wet) subcrt: 2 species at 298.15 K and 1 bar info.character: found H2O(liq), also available in cr subcrt: 4 species at 298.15 K and 1 bar (wet)
text(3, 22, describe.basis(thermo$basis[2:3,], digits=2, oneline=TRUE)) text(3, 21, describe.property(c("T", "P"), c(25, 1), oneline=TRUE))

Image diagram5

 

## Temperature-Pressure: kayanite-sillimanite-andalusite # cf. Fig. 49 of Helgeson et al., 1978 # this is a system of one component (Al2SiO5), however: # - number of basis species must be the same as of elements # - avoid using H2O or other aqueous species because of # T/P limits of the water() calculations; # - because it triggers calculations for phase transitions, # (takes more time), don't use quartz unless it's needed basis(c("corundum", "chalcedony", "oxygen"))
Al O Si ispecies logact state Al2O3 2 3 0 1986 0 cr SiO2 0 2 1 1967 0 cr O2 0 2 0 3316 0 gas
species(c("kyanite", "sillimanite", "andalusite"))
Al2O3 SiO2 O2 ispecies logact state name 1 1 1 0 2065 0 cr kyanite 2 1 1 0 2132 0 cr sillimanite 3 1 1 0 1935 0 cr andalusite
# database has transition temperatures of kyanite and andalusite # at 1 bar only, so we permit calculation at higher temperatures a <- affinity(T=c(200, 900, 99), P=c(0, 9000, 101), exceed.Ttr=TRUE)
energy.args: variable 1 is T at 99 values from 473.15 to 1173.15 K energy.args: variable 2 is P at 101 values from 0 to 9000 bar subcrt: 6 species at 9999 values of T and P subcrt: some points above temperature limit for andalusite cr (extrapolating G)
d <- diagram(a, fill=NULL)
balance: from moles of Al2O3 in formation reactions diagram: plotting A/(2.303RT) / n.balance (maximum affinity method for 2-D diagrams)
bexpr <- sapply(c("Al2O3", "SiO2", "H2O"), expr.species, simplify=FALSE) btext <- substitute(Al2O3 - SiO2 - H2O, unlist(bexpr)) mtitle(c(as.expression(btext), "after Helgeson et al., 1978")) # find the approximate position of the triple point tp <- find.tp(d$predominant) Ttp <- a$vals[[1]][tp[1, 2]] Ptp <- rev(a$vals[[2]])[tp[1, 1]] points(Ttp, Ptp, pch=10, cex=5) # some testing of the overall geometry stopifnot(species()$name[d$predominant[1, 1]]=="andalusite") stopifnot(species()$name[d$predominant[1, 101]]=="kyanite") stopifnot(species()$name[d$predominant[99, 101]]=="sillimanite")

Image diagram6