====== Grt-Opx-Cpx-Pl-Qtz: Paria, 1988 ====== === Details === This sensor from [[:about_tpf|TPF]] collection ^ Article | | ^ Collibration | | ^ Precision | | ^ Ranges | | ^ Renew sensors | | * заголовок * краткое описание * статья * ссылка * карточка * подробное описание * код * тест === Source === source("utilities_tpf.r"); sensors.p.grt_opx_cpx_pl_qtz_paria_1988_b <- 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$Fe_p2_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$Fe_p2_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$Fe_p2_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; AAL <- (AL * exp(GR^2 * (1.52 - 5.165 * AL) + PY * GR * ( - 0.259 - 2.583 * AL - 1.498 * PY + 1.498 * GR))) ^3; P <- (32.097 * TT - 26385 - 22.79 * (TT - 848 - TT * log(TT / 848)) - (3.655 + 0.0138 * TT) * (TT - 848)^2 / TT - 3.123 * TT * log(AC * B^2 / AAL / A)) / 1000; warning(" THERE IS FORMULATIONS FOR THE FE- 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_b.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_b.test <- function(){ # #} {{tag> tpf Pl Cpx Grt Opx }}