Это старая версия документа!
Opx-Cpx termometer Fonarev-Graphchikov, 1991
Two-pyroxene thermometry: a critical evaluation.
Details
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:
- IS NOT TO BE USED FOR (AL2O3+TIO2+MNO+NA2O) IN CPX >5 W
- IS NOT TO BE USED FOR FE/(FE+MG+CA) IN CPX < 0.1
- IS NOT TO BE USED FOR T<900 C
- IS NOT TO BE USED FOR T>1250 C
Number 2:
- IS NOT TO BE USED FOR T>900 C
- IS NOT TO BE USED FOR (AL2O3+MNO+TIO2+NA2O) IN CPX >5 W
- IS NOT TO BE USED FOR FE/(FE+MG+CA) IN CPX < 0.1
Number 3:
- FOR MNO IN OPX >4 W.P.
- IS NOT TO BE USED FOR T>900 C
- IS NOT TO BE USED FOR MNO IN OPX <4 W.
- IS NOT TO BE USED FOR FE/(FE+MG+CA) IN CPX < 0.1
Number 4:
- ONLY CPX COMPOSITION IS INVOLVED IN CALCULATIONS
- IS NOT TO BE USED FOR FE/(FE+MG+CA) IN CPX < 0.1
- IS NOT TO BE USED FOR (AL2O3+MNO+TIO2+NA2O) IN CPX >5 W
- IS NOT TO BE USED FOR T>1250 C
- IS NOT TO BE USED FOR T<890 C
Code
- 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,
- ifelse(N<850, N, (M+N)/2)
- );
- return (data.frame(Name=paste0(Opx$Name,'-',Cpx$Name),P = P,
- T_calc_OpxCpx_FonarevGraphchikov1 = T_1,
- T_calc_OpxCpx_FonarevGraphchikov2 = T_2));
- }
- sensors.t.opx_cpx_fonarev_graphchikov.args <- function() {
- ars <- list();
- ars$minerals = c('Opx','Cpx');
- ars$ranges = c('P');
- return(ars);
- }