Grt-Cpx: Pattison, Newton, 1989 <E>

Details

This sensor from TPF collection

Article
Collibration
Precision
Ranges
Renew sensors

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

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

Source

  1. source("utilities_tpf.r");
  2.  
  3. sensors.t.grt_cpx_pattison_newton_1989_e <- function(Grt, Cpx, P, ...){
  4. Grt <- tpf.recalc_minaral("GRT",Grt);
  5. Cpx <- tpf.recalc_minaral("CPX",Cpx);
  6.  
  7. XX <- (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu) / Grt$Mg_pfu;
  8. Y <- Grt$Ca_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu + Grt$Mn_pfu + Grt$Ca_pfu);
  9. X <- Grt$Mg_pfu / (Grt$Fe_p2_pfu + Grt$Fe_p3_pfu + Grt$Mg_pfu);
  10. Z <- (Cpx$Fe_p2_pfu + Cpx$Fe_p3_pfu) / Cpx$Mg_pfu;
  11. N <- Cpx$Na2O_wtp;
  12. if (N>2.2) {
  13. warning(" CANNOT BE USED FOR NA2O IN CPX >2.2 W.");
  14. }
  15. if (N<2.2) {
  16. if (X<0.6) {
  17. if (X<0.125) {
  18. warning(" CANNOT BE USED FOR MG/(FE2+MG) IN GRT <0.125");
  19. }
  20. if (X>0.125) {
  21. if (Y<0.3) {
  22. warning(" CANNOT BE USED FOR CA/(FE2+MG+CA+MN) IN GRT <0.3");
  23. }
  24. if (Y>0.3) {
  25. if (Y<0.4) {
  26. D <- 10 * (Y - 0.3);
  27. A0 <- 15.87 + D * (14.64 - 15.87);
  28. B0 <- - 20.3 + D * ( - 18.72 + 20.3);
  29. C0 <- 7.468 + D * (6.94 - 7.468);
  30. D0 <- - 0.1479 + D * ( - 0.2583 + 0.1479);
  31. A1 <- 43210 + D * (44900 - 43210);
  32. B1 <- - 53230 + D * ( - 55250 + 53230);
  33. C1 <- 18120 + D * (18820 - 18120);
  34. D1 <- 776 + D * (712 - 776);
  35. K <- log(XX / Z);
  36. T <- (A1 * X^3 + B1 * X^2 + C1 * X + D1) / (K + A0 * X^3 + B0 * X^2 + C0 * X + D0) + 5.5 * (P - 15) - 273;
  37. warning(" FE2 AND FE3 ARE INVOLVED IN CALCULATIONS");
  38. }
  39. }
  40. if (Y>0.4) {
  41. warning(" CANNOT BE USED FOR CA/(FE2+MG+CA+MN) IN GRT >0.4");
  42. }
  43. }
  44. }
  45. if (X>0.6) {
  46. warning(" CANNOT BE USED FOR MG/(FE2+MG) IN GRT > 0.6");
  47. }
  48. }
  49. return(data.frame(Name=paste0(Cpx$Name,"-", Grt$Name),P=P,T_calc=T));
  50. }
  51.  
  52. sensors.t.grt_cpx_pattison_newton_1989_e.args <- function(){
  53. ars <- list();
  54. ars$minerals <- c("Grt", "Cpx");
  55. ars$ranges <- c("P");
  56. return(ars);
  57. }
  58.  
  59. #sensors.t.grt_cpx_pattison_newton_1989_e.test <- function(){
  60. #
  61. #}
, ,