====== Cpx-Opx: Sen, Jones, 1989 ====== Pyroxenes in the spinel peridotite field. === Details === This sensor from [[:about_tpf|TPF]] collection ^ Article | | ^ Callibration | 8 experiments | ^ Precision | T = ±50° | ^ Ranges | P = 10 - 15 kBar, T = 925 - 1150 | ^ Renew sensors | Wells, Nikel et al., Bertrand-Mercier | * заголовок * краткое описание * статья * ссылка * карточка * подробное описание * код * тест === Source === source("utilities_tpf.r"); sensors.t.cpx_opx_sen_jones_1989 <- function(Cpx, Opx, usePFU=FALSE, ...){ row_names = paste0(Cpx$Name,"-", Opx$Name); if(!usePFU) { Cpx <- tpf.recalc_minaral("CPX",Cpx); Opx <- tpf.recalc_minaral("OPX",Opx); } A1 <- (1 - (Cpx$Al_c4_pfu + Cpx$Al_c6_pfu) / 2 - Cpx$Ti_pfu - Cpx$Cr_pfu - Cpx$Fe_p3_pfu) * Cpx$Mg_pfu; A2 <- (1 - (Cpx$Al_c4_pfu + Cpx$Al_c6_pfu) / 2 - Cpx$Ti_pfu - Cpx$Cr_pfu - Cpx$Fe_p3_pfu + 1 - Cpx$Mn_pfu - Cpx$Ca_pfu - Cpx$Na_pfu); A3 <- (1 - Cpx$Mn_pfu - Cpx$Ca_pfu - Cpx$Na_pfu) * Cpx$Mg_pfu; A4 <- (1 - (Cpx$Al_c4_pfu + Cpx$Al_c6_pfu) / 2 - Cpx$Ti_pfu - Cpx$Cr_pfu - Cpx$Fe_p3_pfu + 1 - Cpx$Mn_pfu - Cpx$Ca_pfu - Cpx$Na_pfu); B1 <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu) * Opx$Mg_pfu; B2 <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu + 1 - Opx$Mn_pfu - Opx$Ca_pfu - Opx$Na_pfu); B3 <- (1 - Opx$Mn_pfu - Opx$Ca_pfu - Opx$Na_pfu) * Opx$Mg_pfu; B4 <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu + 1 - Opx$Mn_pfu - Opx$Ca_pfu - Opx$Na_pfu); A <- A1 / A2 * A3 / A4; B <- B1 / B2 * B3 / B4; T_eq3 <- 4900 / (1.807 - log(A / B)) - 273; A <- (1 - (Cpx$Al_c6_pfu) - Cpx$Ti_pfu - Cpx$Cr_pfu - Cpx$Fe_p3_pfu) * Cpx$Mg_pfu / (Cpx$Mg_pfu + Cpx$Fe_p2_pfu) * Cpx$Ca_pfu; B <- (1 - (Opx$Al_c6_pfu) - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu) * Opx$Mg_pfu / (Opx$Mg_pfu + Opx$Fe_p2_pfu) * Opx$Ca_pfu; T_eq4 <- 7045 / (2.47 - log(B / A)) - 273; return(data.frame(Name=row_names,T_calc_eq3=T_eq3,T_calc_eq4=T_eq4)); } sensors.t.cpx_opx_sen_jones_1989.args <- function(){ ars <- list(); ars$minerals <- c("Cpx", "Opx"); ars$ranges <- c(); return(ars); } sensors.t.cpx_opx_sen_jones_1989.test <- function(){ cpx <- data.frame(Name=c('Cpx'), SiO2_wtp=c(55.65), TiO2_wtp=c(0.06), Al2O3_wtp=c(0.59), Cr2O3_wtp=c(0.08), FeO_wtp=c(1.53), MgO_wtp=c(19.85), CaO_wtp=c(22.27), MnO_wtp=c(0.00), Na2O_wtp=c(0.26)); opx <- data.frame(Name=c('Opx'), SiO2_wtp=c(55.16), TiO2_wtp=c(0.08), Al2O3_wtp=c(4.16), Cr2O3_wtp=c(0.38), FeO_wtp=c(5.00), MgO_wtp=c(34.87), CaO_wtp=c(1.21), MnO_wtp=c(0.11), Na2O_wtp=c(0.09)); res <- sensors.t.cpx_opx_sen_jones_1989(cpx,opx); expect_equal(object = res[1,]$T_calc_eq3, 1040, tolerance = 1); expect_equal(object = res[1,]$T_calc_eq4, 1006, tolerance = 1); } {{tag> tpf Cpx Opx AP_igroup fixed}}