Править страницу Ссылки сюда Это старая версия документа! Ms: Tindle method Recalculation to 22 ox with F,Cl correction. Li2O and H2O calculations after Tindle and Webb, 1990. Details Article Tindle and Webb (1990) European Journal of Mineralogy, vol. 2, pgs. 595-610. Reference http://www.open.ac.uk/earth-research/tindle/AGTWebPages/AGTSoft.html 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 Calculate Код 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); return(step3_data[,c('Name',pfu_names,'Al_c4_pfu','Al_c6_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); r <- recalc.bt_tindle (src); expect_equal(object = result$Al_c4_pfu,2.781, tolerance = 0.005); expect_equal(object = result$Al_c6_pfu,0.732, tolerance = 0.005); expect_equal(object = result$Li_pfu,0.17, tolerance = 0.005); expect_equal(object = result$Mg_pfu,2.115, tolerance = 0.005); expect_equal(object = result$OH_pfu,3.982, tolerance = 0.005); } recalc/ms_tindle.1447409538.txt.gz Последние изменения: 2018/11/12 15:08(внешнее изменение) Войти