This sensor from TPF collection
| Article | |
|---|---|
| Collibration | |
| Precision | |
| Ranges | |
| Renew sensors |
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(){
#
#}