====== Ms: Tindle, 1990 ====== Recalculation to 22 ox with F,Cl correction. Li2O and H2O not calculated. === Details === ^ Reference | | ^ Input components | SiO2_wtp, TiO2_wtp, Al2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp, SrO_wtp, BaO_wtp, Rb2O_wtp, Cs2O_wtp, ZnO_wtp, SnO2_wtp, Ga2O3_wtp, F_wtp, Cl_wtp, Cr2O3_wtp, NiO_wtp, CuO_wtp | ^ Calculated components | Al_c4_pfu, Al_c6_pfu, Li_pfu, OH_pfu | * заголовок * краткое описание * статья * ссылка * карточка * подробное описание * код * тест === Source === recalc.ms_tindle <- function (wtp_data, ...) { base_names <- c('SiO2_wtp','TiO2_wtp','Al2O3_wtp','FeO_wtp','MnO_wtp','MgO_wtp','CaO_wtp','Na2O_wtp','K2O_wtp', 'SrO_wtp','BaO_wtp','Rb2O_wtp','Cs2O_wtp','ZnO_wtp','SnO2_wtp','Ga2O3_wtp', 'F_wtp','Cl_wtp','Cr2O3_wtp','NiO_wtp','CuO_wtp'); data <- selectNames(wtp_data,base_names); step1_coeff <- c(30.045,39.95,33.9867,71.85,70.94,40.31,56.08,61.98,94.22, 103.62,153.36,186.936,281.811,81.38,75.345,62.48, 19,35.45,50.6667,74.7,79.55); step1_data <- rowApply(`/`, data, step1_coeff); step1_sum <- rowSums(step1_data); F_Cl_corr <- step1_sum - step1_data$F_wtp - step1_data$Cl_wtp; Ox_Num <- 22/F_Cl_corr; step2_data <- rowApply(`*`, step1_data, Ox_Num); pfu_names <- c('Si_pfu','Ti_pfu','Al_pfu','Fe_pfu','Mn_pfu','Mg_pfu','Ca_pfu','Na_pfu','K_pfu', 'Sr_pfu','Ba_pfu','Rb_pfu','Cs_pfu','Zn_pfu','Sn_pfu','Ga_pfu', 'F_pfu','Cl_pfu','Cr_pfu','Ni_pfu','Cu_pfu'); ox_norm <- c( 1/2,1/2,2/3,1/1,1/1,1/1,1/1,2/1,2/1, 1/1,1/1,2/1,2/1,1/1,1/2,2/3, 1,1,2/3,1/1,1/1); step3_data <- rowApply(`*`, step2_data, ox_norm) ; names(step3_data) <- pfu_names; step3_data$Name <- wtp_data$Name; step3_data$Al_c4_pfu <- ifelse((step2_data$Al2O3_wtp/3)*2>8-step3_data$Si_pfu,8-step3_data$Si_pfu,(step2_data$Al2O3_wtp/3)*2); step3_data$Al_c4_pfu <- ifelse(step3_data$Si_pfu>8,0,step3_data$Al_c4_pfu); step3_data$Al_c6_pfu <- ifelse(step3_data$Si_pfu+(step2_data$Al2O3_wtp/3)*2<8,0,((step2_data$Al2O3_wtp/3)*2)-step3_data$Al_c4_pfu); Li_ve <- 0.31134*data$F_wtp-0.075895; Li_ve <- ifelse(Li_ve<0,0,Li_ve); step3_data$Li_pfu <- Li_ve; step3_data$OH_pfu = 4-(step3_data$Cl_pfu+step3_data$F_pfu) return(step3_data[,c('Name',pfu_names,'Al_c4_pfu','Al_c6_pfu', 'Li_pfu', 'OH_pfu')]); } recalc.ms_tindle.test <- function () { src <- data.frame(Name='test',Na2O_wtp=0.28, MgO_wtp=9.31, Al2O3_wtp=19.56, SiO2_wtp=34.25, Cl_wtp = 0.07, K2O_wtp=9.43, CaO_wtp=0.02, TiO2_wtp=2.3,Cr2O3_wtp=0.06,FeO_wtp =20.36); result <- recalc.ms_tindle (src); expect_equal(object = result$Al_c4_pfu,2.761, tolerance = 0.05); expect_equal(object = result$Al_c6_pfu,0.766, tolerance = 0.05); expect_equal(object = result$Li_pfu,0.0, tolerance = 0.05); expect_equal(object = result$Mg_pfu,2.123, tolerance = 0.05); expect_equal(object = result$OH_pfu,3.982, tolerance = 0.05); }