Cpx-Opx: Sen, Jones, 1989

Pyroxenes in the spinel peridotite field.

Details

This sensor from TPF collection

Article Sen G., Jones R. Experimental equilibration of multicomponent pyroxenes in the spinel peridotite field: implications for practical thermometers and a possible barometer, 1989 [ref]
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);
}