====== Px: MacGregor, 2015 ====== Pyroxene components. FeO - total. === Details === ^ Reference | | ^ Input | SiO2_wtp, TiO2_wtp, Al2O3_wtp, Cr2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp | ^ Output | | * заголовок * краткое описание * статья * ссылка * карточка * подробное описание * код * тест === Source === source('recalc_px_macgreg.r'); interpmin.px_macgreg <- function (wtp_data, ...) { d <- recalc.px_macgreg(wtp_data); d$Si_pfu <- ifelse(d$Si_pfu<2,d$Si_pfu,2); d$Al_c4_pfu <- ifelse(2-d$Si_pfud$Mg_pfu,d$Mg_pfu,g2); Hd <- 0.0; h <- (d$Fe_p2_pfu + d$Mn_pfu + d$Mg_pfu - g2)/2; Jd <- ifelse(A3n>zp,zp,A3n); zn <- zp-A3n; zm <- ifelse(zn<0,0,zn); Ko <- ifelse(d$Cr_pfu > zm, zm, d$Cr_pfu); zl <- zm - d$Cr_pfu; zk <- ifelse(zl<0,0,zl); Ac <- ifelse(d$Fe_p3_pfu>zk,zk,d$Fe_p3_pfu); Kcpx <- d$K_pfu; res <- data.frame(Name=wtp_data$Name); res$X_Jd <- ifelse(Ko-Kcpx<0,Jd-Kcpx,Jd); res$X_Ac <- Ac; res$X_DiHd <- g2; res$X_CaTs <- A1n; res$X_Ko <- ifelse(Jd-Kcpx<0,Ko-Kcpx,Ko); res$X_K_Ko <- ifelse(Jd-Kcpx<0,Kcpx,0); res$X_K_Jd <- ifelse(Ko-Kcpx<0,Kcpx,0); res$X_Ti_Napx <- Ti_Napx; res$X_CaEs <- e2; res$X_Opx <- ifelse(h>0,h,0); return(res); } interpmin.px_macgreg.test <- function () { src <- data.frame(Name='test', SiO2_wtp=49.210, TiO2_wtp=0.19, Al2O3_wtp=11.180, Cr2O3_wtp=0.23, FeO_wtp=6.28, MnO_wtp=0.00, MgO_wtp=19.160, CaO_wtp=16.16, Na2O_wtp=0.00, K2O_wtp=0.00); result <- interpmin.px_macgreg(src); expect_equal(object = result$X_Jd, 0.0, tolerance = 0.05); expect_equal(object = result$X_DiHd, 0.342, tolerance = 0.05); expect_equal(object = result$X_Opx, 0.392, tolerance = 0.05); }