====== Grt-Cpx: Nakamura, 2009 ====== Термометр с учетом неидеальности Fe-Mg обмена в гранате. === Подробнее === ^ Reference: | | ^ Collibration: | Экспериментальные данные. 333 пары в графитовых капсулах | ^ Accuracy: | ±74 ºС | ^ Ranges: | 800-1820 ºС 15-75 Kbar | ^ Renew: | [[sensors:t:grt_cpx_krogh_ravna|Krogh Ravna, 2000]] | Для улучшения этой статьи следует: * Добавить подробное описание === Код метода === source('recalc_grt_8cat_norm.r'); source('recalc_cpx_4cat_norm_jd.r'); sensors.t.grt_cpx_nakamura <- function(Grt, Cpx, P, usePFU = FALSE, ...){ if (!usePFU) Grt <- recalc.grt_8cat_norm(Grt); if (!usePFU) Cpx <- recalc.cpx_4cat_norm_jd(Cpx); X_Grt_Ca <- Grt$Ca_pfu / (Grt$Mg_pfu + Grt$Fe_pfu + Grt$Ca_pfu); X_Grt_Fe <- Grt$Fe_pfu / (Grt$Mg_pfu + Grt$Fe_pfu + Grt$Ca_pfu); X_Grt_Mg <- Grt$Mg_pfu / (Grt$Mg_pfu + Grt$Fe_pfu + Grt$Ca_pfu); X_Cpx_Fe <- Cpx$Fe_p2_pfu / (Cpx$Al_pfu + Cpx$Fe_p2_pfu + Cpx$Fe_p3_pfu + Cpx$Mg_pfu); X_Cpx_Mg <- Cpx$Mg_pfu / (Cpx$Al_pfu + Cpx$Fe_p2_pfu + Cpx$Fe_p3_pfu + Cpx$Mg_pfu); Kd <- (Grt$Fe_pfu / Grt$Mg_pfu) / (Cpx$Fe_p2_pfu / Cpx$Mg_pfu); X_Prp <- Grt$Mg_pfu / (Grt$Fe_pfu + Grt$Mn_pfu + Grt$Mg_pfu + Grt$Ca_pfu); X_Alm <- Grt$Fe_pfu / (Grt$Fe_pfu + Grt$Mn_pfu + Grt$Mg_pfu + Grt$Ca_pfu); X_Sps <- Grt$Mn_pfu / (Grt$Fe_pfu + Grt$Mn_pfu + Grt$Mg_pfu + Grt$Ca_pfu); X_Grs <- Grt$Ca_pfu / (Grt$Fe_pfu + Grt$Mn_pfu + Grt$Mg_pfu + Grt$Ca_pfu); A <- 0.5*X_Grs*(X_Prp - X_Alm - X_Sps); B <- 0.5*X_Grs*(X_Prp - X_Alm + X_Sps); C <- 0.5*(X_Grs + X_Sps)*(X_Prp - X_Alm); Tcalc <- ( 2784 + 14.52 * P + (2610 + 1.44*P)*(2*X_Grs*X_Prp - A) + (1183 + 6.98*P)*(X_Grs^2 - A) - 105*(2*X_Grs*X_Alm + B) + (814.6 + 3.61*P)*(X_Grs^2 + B) - (254.6 + 8.42*P)*(2*X_Prp*X_Alm - X_Alm^2 + C) - 83.6*(X_Prp^2 - 2*X_Prp*X_Alm + C) + 1388*X_Sps - 462*(X_Cpx_Mg - X_Cpx_Fe) ) / ( log(Kd) + 1.431 + 0.695*(2*X_Grs*X_Prp + X_Grs^2 - 2*A) + 0.203 * (X_Grs^2 - 2*X_Grs*X_Alm) + 0.922 * X_Sps ) - 273; return (data.frame(Name=paste0(Grt$Name,'-',Cpx$Name),P = P, T_calc_GrtCpx_Nakamura = Tcalc)); } sensors.t.grt_cpx_nakamura.args <- function() { ars <- list(); ars$minerals = c('Grt','Cpx'); ars$ranges = c('P'); return(ars); } sensors.t.grt_cpx_nakamura.test <- function () { Grt <- data.frame(Name='Grt',SiO2_wtp=40.23,TiO2_wtp=0.55, Al2O3_wtp=21.87, FeO_wtp=19.03, MnO_wtp=0.40, MgO_wtp=10.07, CaO_wtp=7.27); Cpx <- data.frame(Name='Cpx',SiO2_wtp=52.86,TiO2_wtp=1.11, Al2O3_wtp=10.24, FeO_wtp=6.31, MgO_wtp=9.92, CaO_wtp=14.49, Na2O=4.65); result <- sensors.t.grt_cpx_nakamura (Grt, Cpx, 25); expect_equal(result$T_calc_GrtCpx_Nakamura, 1036, tolerance = 1); }