Grt-Opx-Pl-Qtz: Wood, 1975

Details

This sensor from TPF collection

Article
Collibration
Precision
Ranges
Renew sensors

Использовать Проверить

  • заголовок
  • краткое описание
  • статья
  • ссылка
  • карточка
  • подробное описание
  • код
  • тест

Source

source("utilities_tpf.r");

sensors.p.grt_opx_pl_qtz_wood_1975 <- function(Grt, Opx, Pl, Qtz, Temp, ...){
T <- Temp;
    Opx <- tpf.recalc_minaral("OPX",Opx);
    Pl <- tpf.recalc_minaral("PL",Pl);
    Grt <- tpf.recalc_minaral("GRT",Grt);

    A <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu) * Opx$Mg_pfu;
    B <- (1 - Opx$Mn_pfu - Opx$Ca_pfu - Opx$Na_pfu) * Opx$Mg_pfu;
    C <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu) * Opx$Fe_p2_pfu;
    D <- 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;
    X <- Grt$Ca_pfu / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
    Y <- Grt$Mg_pfu / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
    MN <- Grt$Mn_pfu / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
    F <- (Grt$Fe_p3_pfu + Grt$Fe_p2_pfu) / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
    Z <- Pl$Ca_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
    TT <- T + 273.15;
    APL <- 1.276 * Z;
    L <- exp((800 * F^2 + (7460 - 4.3 * TT) * Y^2 + (800 - 2979 + 7460 - 4.3 * TT) * Y * F) / 1.9872 / TT);
    ACG <- (L * X);
    G <- exp((2979 * F^2 + (7460 - 4.3 * TT) * X^2 + (2979 - 800 + 7460 - 4.3      * TT) * F * X + 3200 * MN^2 + (7460 - 4.3 * TT + 3200) * MN * X + (2979 + 3200) * MN * F) / 1.9872 / TT);
    AMG <- G * Y;
    A <- A * B / D / D;
    P <- (1 + (TT * log(ACG * AMG^2 / A / APL) - 1193 + 5.531 * TT) / 0.2839) / 1000;
    return(data.frame(Name=paste0(Pl$Name,"-", Grt$Name,"-", Opx$Name),Temp=Temp,P_calc=P));
}

sensors.p.grt_opx_pl_qtz_wood_1975.args <- function(){
    ars <- list();
    ars$minerals <- c("Grt", "Opx", "Pl", "Qtz");
    ars$ranges <- c("Temp");
    return(ars);
}

#sensors.p.grt_opx_pl_qtz_wood_1975.test <- function(){
#
#}
, , ,
  • sensors/p/grt_opx_pl_qtz_wood_1975.txt
  • Последние изменения: 2018/11/12 15:08
  • (внешнее изменение)