Grt-Opx-Pl-Qtz: Eckert, 1991

Details

This sensor from TPF collection

Article
Collibration
Precision
Ranges
Renew sensors

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

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

Source

  1. source("utilities_tpf.r");
  2.  
  3. sensors.p.grt_opx_pl_qtz_eckert_1991 <- function(Grt, Opx, Pl, Qtz, Temp, ...){
  4. T <- Temp;
  5. Opx <- tpf.recalc_minaral("OPX",Opx);
  6. Pl <- tpf.recalc_minaral("PL",Pl);
  7. Grt <- tpf.recalc_minaral("GRT",Grt);
  8.  
  9. A <- (1 - (Opx$Al_c4_pfu + Opx$Al_c6_pfu) / 2 - Opx$Ti_pfu - Opx$Cr_pfu - Opx$Fe_p3_pfu) * Opx$Mg_pfu;
  10. B <- (1 - Opx$Mn_pfu - Opx$Ca_pfu - Opx$Na_pfu) * Opx$Mg_pfu;
  11. 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;
  12. 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;
  13. X <- Grt$Ca_pfu / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
  14. Y <- Grt$Mg_pfu / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p3_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu);
  15. F <- (Grt$Fe_p3_pfu + Grt$Fe_p2_pfu) / (Grt$Ca_pfu + Grt$Mg_pfu + Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mn_pfu);
  16. Z <- Pl$Ca_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
  17. G <- Pl$Na_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
  18. TT <- T + 273.15;
  19. K <- exp((3300 - 1.5 * TT) * (Y^2 + Y * F) / (1.9872 * TT));
  20. L <- exp((3300 - 1.5 * TT) * (X^2 + X * F) / (1.9872 * TT));
  21. K <- X * K;
  22. L <- Y * L;
  23. A <- A * B / D / D;
  24. M <- exp(G^2 * (2025 + 2 * Z * (6746 - 2025)) / (1.9872 * TT));
  25. M <- M * Z * (1 + Z)^2 / 4;
  26. P <- 3.47 + 0.01307 * TT + 0.003504 * TT * log(K * L^2 / A / M);
  27. warning(" ACCURACY +-1.55 KBAR");
  28. return(data.frame(Name=paste0(Pl$Name,"-", Grt$Name,"-", Opx$Name),Temp=Temp,P_calc=P));
  29. }
  30.  
  31. sensors.p.grt_opx_pl_qtz_eckert_1991.args <- function(){
  32. ars <- list();
  33. ars$minerals <- c("Grt", "Opx", "Pl", "Qtz");
  34. ars$ranges <- c("Temp");
  35. return(ars);
  36. }
  37.  
  38. #sensors.p.grt_opx_pl_qtz_eckert_1991.test <- function(){
  39. #
  40. #}
  • sensors/p/grt_opx_pl_qtz_eckert_1991.txt
  • Последние изменения: 2018/11/12 15:08
  • (внешнее изменение)