Grt-Opx-Cpx-Pl-Qtz: Paria, 1988 <A>

Details

This sensor from TPF collection

Article
Collibration
Precision
Ranges
Renew sensors

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

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

Source

source("utilities_tpf.r");

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

    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 <- Cpx$Ca_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);
    C <- Pl$Ca_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
    AL <- (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu) / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Ca_pfu + Grt$Mn_pfu);
    PY <- Grt$Mg_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Ca_pfu + Grt$Mn_pfu);
    GR <- Grt$Ca_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Ca_pfu + Grt$Mn_pfu);
    A <- A1 / A2 * A3;
    B <- B1 / B2 * B3 / B4;
    TT <- T + 273;
    AC <- exp((1 - C)^2 * (1.009 + 4.62 * C)) * C * (1 + C)^2 / 4;
    APY <- (PY * exp(GR^2 * ( - 0.261 + 2.997 * PY) + AL * GR * (0.259 + 1.498 * PY + 2.583 * AL - 2.583 * GR)  ))^3;
    P <- (9.270 * TT + 4006 - 0.9305 * (TT - 848 - TT * log(TT / 848)) - (1.1963 - 6.0128 * TT / 1000) *   (TT - 848)^2 / TT - 3.489 * TT * log(AC * B^2 / APY / A)) / 1000;
    warning(" THERE IS FORMULATIONS FOR THE MG-  MEMBER EQUILIBRIA");
    return(data.frame(Name=paste0(Pl$Name,"-", Cpx$Name,"-", Grt$Name,"-", Opx$Name),Temp=Temp,P_calc=P));
}

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

#sensors.p.grt_opx_cpx_pl_qtz_paria_1988_a.test <- function(){
#
#}
, , , ,