Grt-Opx-Pl-Qtz: Avchenko, Kuznetsova, 1988

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_avchenko_kuznetsova_1988 <- 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. M <- Opx$Mg_pfu;
  10. L <- Pl$Ca_pfu / (Pl$Ca_pfu + Pl$Na_pfu + Pl$K_pfu);
  11. X <- (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);
  12. Y <- Grt$Ca_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Ca_pfu + Grt$Mn_pfu);
  13. Z <- Grt$Mg_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Ca_pfu + Grt$Mn_pfu);
  14. AE <- log((M / 2)^2);
  15. TT <- T + 273;
  16. G <- ((2404 + 0.258 * TT) * Y * (2 - Y) + (5704 - 1.242 * TT) * Z * (1 - Y) - (234 + 0.748 * TT)) / 1.9872 / TT;
  17. AG <- 3 * log(Y) + 3 * G;
  18. PI <- ((3300 - 1.5 * TT) * Y^2 + (5704 - 1.242 * TT) * Y * X) / 1.9872 / TT;
  19. AP <- 3 * log(Z) + 3 * PI;
  20. W <- L * (1 + L)^2 / 4;
  21. AA <- log(W) + (1 - L)^2 * (2050 + 9392 * L) / 1.9872 / TT;
  22. if (T>650.0) {
  23. if (T<950.0) {
  24. if (Z>0.1) {
  25. A <- 12249.659 - 19.824 * TT + 0.00835 * TT^2;
  26. B <- 5.332 + 0.00245 * TT;
  27. P <- (A + B * TT + 1.9872 * TT * (1 / 3 * AG + 2 / 3 * AP - AA - AE)) / (0.524 + 1.522 * (0.2 - Y)^2) / 1000;
  28. }
  29. }
  30. }
  31. if (Y<0.08) {
  32. warning(" IS NOT TO BE USED FOR CA/(MG+MN+FE+CA) IN GRT <0.08");
  33. }
  34. if (Z<0.1) {
  35. warning(" IS NOT TO BE USED FOR MG/(MG+MN+FE+CA) IN GRT <0.1");
  36. }
  37. if (T<650.0) {
  38. warning(" IS NOT TO BE USED FOR T<650 C");
  39. }
  40. if (T>950.0) {
  41. warning(" IS NOT TO BE USED FOR T>950 C");
  42. }
  43. return(data.frame(Name=paste0(Pl$Name,"-", Grt$Name,"-", Opx$Name),Temp=Temp,P_calc=P));
  44. }
  45.  
  46. sensors.p.grt_opx_pl_qtz_avchenko_kuznetsova_1988.args <- function(){
  47. ars <- list();
  48. ars$minerals <- c("Grt", "Opx", "Pl", "Qtz");
  49. ars$ranges <- c("Temp");
  50. return(ars);
  51. }
  52.  
  53. #sensors.p.grt_opx_pl_qtz_avchenko_kuznetsova_1988.test <- function(){
  54. #
  55. #}
, , ,