Two-pyroxene thermometry: a critical evaluation.
Source | {Fonarev V.I., Graphchikov A.A.} «Two-pyroxene thermometry: a critical evaluation».In:«Progress in metamorphic and magmatic petrology. A memorial volume in honor of D.S.Korzhinskiy.» Edt. L.L.Perchuk Cambridge University Press, Cambridge, p.65-92, 1991. |
---|---|
Link | |
Calibration | |
Accuracy | |
Ranges | 600-1250 °C |
Renew sensors |
Multiple sensors with different constrains:
Number 1:
Number 2:
Number 3:
Number 4:
source('recalc_cpx_tpf_realc0.r'); source('recalc_opx_tpf_realc0.r'); sensors.t.opx_cpx_fonarev_graphchikov <- function(Opx, Cpx, P, ...){ OpxP <- recalc.opx_tpf_realc0(Opx); CpxP <- recalc.cpx_tpf_realc0(Cpx); X = CpxP$Fe_pfu / (CpxP$Mg_pfu+CpxP$Fe_pfu+CpxP$Ca_pfu+CpxP$Mn_pfu+CpxP$Al_c6_pfu+CpxP$Ti_pfu+CpxP$K_pfu+CpxP$Na_pfu); Y = OpxP$Fe_pfu / (OpxP$Mg_pfu+OpxP$Fe_pfu+OpxP$Ca_pfu+OpxP$Mn_pfu+OpxP$Al_c6_pfu+OpxP$Ti_pfu+OpxP$K_pfu+OpxP$Na_pfu); Z = Cpx$Al2O3_wtp + Cpx$TiO2_wtp + Cpx$MnO_wtp + Cpx$Na2O_wtp; X2 = CpxP$Fe_pfu / (CpxP$Mg_pfu+CpxP$Fe_pfu+CpxP$Ca_pfu); Y2 = OpxP$Fe_pfu / (OpxP$Mg_pfu+OpxP$Fe_pfu+OpxP$Ca_pfu); OZ = Opx$Al2O3_wtp + Opx$TiO2_wtp + Opx$MnO_wtp + Opx$Na2O_wtp; X = ifelse(Z<OZ, X2, X); Y = ifelse(Z<OZ, Y2, Y); #Method1 T in 900-1250 A = -15.9135*X+112.8452*X^2-232.7006*X^3+156.3120*X^4-Y*(1-(0.5-X)*0.01*P); B = 44.2986*X-313.6564*X^2+660.4657*X^3-446.5655*X^4; G = -27.1202*X+212.7500*X^2-462.5763*X^3+316.4015*X^4; M = (2*G*1000/(-B+sqrt(B**2-4*A*G)))-273.15; T_1 = ifelse( Z>5.0 | X<0.1 | M<900.001 | M>1250.001, NA, M); #Method2 T in 600-900 A = 5.6066*X+13.6767*X^2-23.6366*X^3-60.7866*X^4-Y*(1-(0.35-X)*0.01*P); B = -9.9203*X-25.1949*X^2+30.5070*X^3+148.9344*X^4; G = 6.9830*X+10.0505*X^2-9.1097*X^3-85.1719*X^4; N = (2*G*1000/(-B+sqrt(B^2-4*A*G)))-273.15; N = ifelse(N > 850 & M < 900.001,(M+N)/2,N); T_2 = ifelse( Z>5.0 | X<0.1 | N<600 | N>900, NA, N); #Method3 T in 600-900 X = CpxP$Fe_pfu/(CpxP$Mg_pfu+CpxP$Fe_pfu+CpxP$Ca_pfu); Y = OpxP$Fe_pfu/(OpxP$Mg_pfu+OpxP$Fe_pfu+OpxP$Ca_pfu); Z = Opx$MnO_wtp; C = CpxP$Fe_pfu/CpxP$Mn_pfu; O = OpxP$Fe_pfu/OpxP$Mn_pfu; LK = log(C/O); K = 1.0221-0.2816*LK; A = 5.6066*X+13.6767*X^2-23.6366*X^3-60.7866*X^4-Y*(1-(0.35-X)*0.01*P); B = (-9.9203*X-25.1949*X^2+30.5070*X^3+148.9344*X^4)*K; G = (6.9830*X+10.0505*X^2-9.1097*X^3-85.1719*X^4)*K^2; N = (2*G*1000/(-B+sqrt(B^2-4*A*G)))-273.15; A = -15.9135*X+112.8452*X^2-232.7006*X^3+156.3120*X^4-Y*(1-(0.5-X)*0.01*P); B = (44.2986*X-313.6564*X^2+660.4657*X^3-446.5655*X^4)*K; G = (-27.1202*X+212.7500*X^2-462.5763*X^3+316.4015*X^4)*K^2; M = (2*G*1000/(-B+sqrt(B**2-4*A*G)))-273.15; T_3 = ifelse( Z<4.0 | X<0.10 | N<600.001 | M>900.001, NA, N); T_3 = ifelse(T_3<850, N, (M+N)/2); #Method 4 X = CpxP$Fe_pfu/(CpxP$Mg_pfu+CpxP$Fe_pfu+CpxP$Ca_pfu); Y = CpxP$Ca_pfu/(CpxP$Mg_pfu+CpxP$Fe_pfu+CpxP$Ca_pfu); Z = Cpx$Al2O3_wtp+Cpx$TiO2_wtp+Cpx$MnO_wtp+Cpx$Na2O_wtp; A = 0.0435-2.0422*X+14.2661*X^2-38.4323*X^3+34.4206*X^4-Y*(1-(0.5-X)*0.012*P); B = 0.6859+1.2269*X-37.7330*X^2+119.7173*X^3-109.3990*X^4; G = -0.2832+0.9887*X+27.5921*X^2-97.3991*X^3+88.8668*X^4; Q = (2*G*1000/(-B+sqrt(B^2-4*G*A)))-273.15; T_4 = ifelse( Z>5.0 | X<0.10 | Q<890 | Q>1250, NA, N); return (data.frame(Name=paste0(Opx$Name,'-',Cpx$Name),P = P, T_calc_OpxCpx_FonarevGraphchikov1 = T_1, T_calc_OpxCpx_FonarevGraphchikov2 = T_2, T_calc_OpxCpx_FonarevGraphchikov4 = T_4)); } sensors.t.opx_cpx_fonarev_graphchikov.args <- function() { ars <- list(); ars$minerals = c('Opx','Cpx'); ars$ranges = c('P'); return(ars); }