Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| 
                    recalc:px_macgreg [2016/04/28 12:23] admin [Source]  | 
                
                    recalc:px_macgreg [2018/11/12 15:08] (текущий) | 
            ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| ^ Reference | <ref:macgregor2015> | | ^ Reference | <ref:macgregor2015> | | ||
| ^ Input | SiO2_wtp, TiO2_wtp, Al2O3_wtp, Cr2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp | | ^ Input | SiO2_wtp, TiO2_wtp, Al2O3_wtp, Cr2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp | | ||
| - | ^ Output | | | + | ^ Output | Si_pfu, Ti_pfu, Al_pfu, Cr_pfu, Fe_p3_pfu, Fe_p2_pfu, Mn_pfu, Mg_pfu, Ca_pfu, Na_pfu, K_pfu | | 
| - | ^[[:ppy:mod_recalc#px_macgreg |Calculate]] ^ ^ | + | |
| <use:recalc.px_macgreg> | <use:recalc.px_macgreg> | ||
| Строка 14: | Строка 13: | ||
| <WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
| - | * заголовок | + | * <del>заголовок</del> | 
| - | * краткое описание | + | * <del>краткое описание</del> | 
| - | * статья | + | * <del>статья</del> | 
| - | * ссылка | + | * <del>ссылка</del> | 
| * карточка | * карточка | ||
| * подробное описание | * подробное описание | ||
| - | * код | + | * <del>код</del> | 
| - | * тест | + | * <del>тест</del> | 
| </WRAP> | </WRAP> | ||
| Строка 46: | Строка 45: | ||
| pOx_FC <- 6/pOx_S; | pOx_FC <- 6/pOx_S; | ||
|  |  | ||
| - | pOx_AEi <- rowApply('*', rowApply('*', pOx_Ei, pOx_Ci), pOx_FC); | + | pOx_AEi <- rowApply('*', pOx_Ei, pOx_Ci) * pOx_FC; | 
| pOx_AS <- rowSums(pOx_AEi); | pOx_AS <- rowSums(pOx_AEi); | ||
|  |  | ||
| Строка 89: | Строка 88: | ||
| pCat_FC2 <- 6/pCat_totEi;  | pCat_FC2 <- 6/pCat_totEi;  | ||
|  |  | ||
| - | pCat_U <- rowApply('*', rowApply('*', pCat_Ei2, pCat_Ci), pCat_FC2);  | + | pCat_U <- rowApply('*', pCat_Ei2, pCat_Ci) * pCat_FC2;  | 
|  |  | ||
| pCat_Utot <- 4 - (pCat_U$SiO2_wtp + pCat_U$TiO2_wtp + pCat_U$Al2O3_wtp + | pCat_Utot <- 4 - (pCat_U$SiO2_wtp + pCat_U$TiO2_wtp + pCat_U$Al2O3_wtp + | ||
| Строка 105: | Строка 104: | ||
| pCat_Ei2$Fe2O3_wtp <- pCat_MOi2$Fe2O3_wtp/3; | pCat_Ei2$Fe2O3_wtp <- pCat_MOi2$Fe2O3_wtp/3; | ||
| pCat_Ei2$FeO_tot_wtp <- 0.0; | pCat_Ei2$FeO_tot_wtp <- 0.0; | ||
| - |  | + | |
| - | pCat_AEi <- rowApply('*', rowApply('*', pCat_Ei, pCat_Ci), pCat_FC1); | + | pCat_AEi <- rowApply('*', pCat_Ei, pCat_Ci) * pCat_FC1; | 
| - | pCat_pfu <- rowApply('*', rowApply('*', pCat_Ei2, pCat_Ci), pCat_FC2); | + | pCat_pfu <- rowApply('*', pCat_Ei2, pCat_Ci) * pCat_FC2;  | 
| pResEnd <- data.frame(Name=wtp_data$Name); | pResEnd <- data.frame(Name=wtp_data$Name); | ||
| - | f_1 <- ifelse(pCat_pfu$FeO_wtp<0,1.0,0.0); | + | pCat_pfu$f_1 <- ifelse(pCat_pfu$FeO_wtp<0,1,0); | 
| - | f_2 <- ifelse(pCat_pfu$FeO_wtp>=0 && pCat_pfu$Fe2O3_wtp<0,1.0,0.0); | + | pCat_pfu$f_2 <- ifelse(pCat_pfu$FeO_wtp>=0 & pCat_pfu$Fe2O3_wtp<0,1,0); | 
| - | f_3 <- ifelse(pCat_pfu$FeO_wtp>=0 && pCat_pfu$Fe2O3_wtp>=0,1.0,0.0); | + | pCat_pfu$f_3 <- ifelse(pCat_pfu$FeO_wtp>=0 & pCat_pfu$Fe2O3_wtp>=0,1,0); | 
| - | pResEnd$Si_pfu <- f_1*pOx_AEi$SiO2_wtp+f_2*pCat_AEi$SiO2_wtp+f_3*pCat_pfu$SiO2_wtp; | + | pResEnd$Si_pfu <- pCat_pfu$f_1*pOx_AEi$SiO2_wtp+pCat_pfu$f_2*pCat_AEi$SiO2_wtp+pCat_pfu$f_3*pCat_pfu$SiO2_wtp; | 
| - | pResEnd$Ti_pfu <- f_1*pOx_AEi$TiO2_wtp+f_2*pCat_AEi$TiO2_wtp+f_3*pCat_pfu$TiO2_wtp; | + | pResEnd$Ti_pfu <- pCat_pfu$f_1*pOx_AEi$TiO2_wtp+pCat_pfu$f_2*pCat_AEi$TiO2_wtp+pCat_pfu$f_3*pCat_pfu$TiO2_wtp; | 
| - | pResEnd$Al_pfu <- f_1*pOx_AEi$Al2O3_wtp+f_2*pCat_AEi$Al2O3_wtp+f_3*pCat_pfu$Al2O3_wtp; | + | pResEnd$Al_pfu <- pCat_pfu$f_1*pOx_AEi$Al2O3_wtp+pCat_pfu$f_2*pCat_AEi$Al2O3_wtp+pCat_pfu$f_3*pCat_pfu$Al2O3_wtp; | 
| - | pResEnd$Cr_pfu <- f_1*pOx_AEi$Cr2O3_wtp+f_2*pCat_AEi$Cr2O3_wtp+f_3*pCat_pfu$Cr2O3_wtp; | + | pResEnd$Cr_pfu <- pCat_pfu$f_1*pOx_AEi$Cr2O3_wtp+pCat_pfu$f_2*pCat_AEi$Cr2O3_wtp+pCat_pfu$f_3*pCat_pfu$Cr2O3_wtp; | 
| - | pResEnd$Fe_p3_pfu <- f_1*0+f_2*pCat_AEi$Fe2O3_wtp+f_3*pCat_pfu$Fe2O3_wtp; | + | pResEnd$Fe_p3_pfu <- pCat_pfu$f_1*0+pCat_pfu$f_2*pCat_AEi$Fe2O3_wtp+pCat_pfu$f_3*pCat_pfu$Fe2O3_wtp; | 
| - | pResEnd$Fe_p2_pfu <- f_1*pOx_AEi$Fe2O3_wtp+f_2*pCat_AEi$FeO_tot_wtp+f_3*pCat_pfu$FeO_wtp; | + | pResEnd$Fe_p2_pfu <- pCat_pfu$f_1*pOx_AEi$Fe2O3_wtp+pCat_pfu$f_2*pCat_AEi$FeO_tot_wtp+pCat_pfu$f_3*pCat_pfu$FeO_wtp; | 
| - | pResEnd$Mn_pfu <- f_1*pOx_AEi$MnO_wtp+f_2*pCat_AEi$MnO_wtp+f_3*pCat_pfu$MnO_wtp; | + | pResEnd$Fe_pfu <- pResEnd$Fe_p2_pfu + pResEnd$Fe_p3_pfu; | 
| - | pResEnd$Mg_pfu <- f_1*pOx_AEi$MgO_wtp+f_2*pCat_AEi$MgO_wtp+f_3*pCat_pfu$MgO_wtp; | + | pResEnd$Mn_pfu <- pCat_pfu$f_1*pOx_AEi$MnO_wtp+pCat_pfu$f_2*pCat_AEi$MnO_wtp+pCat_pfu$f_3*pCat_pfu$MnO_wtp; | 
| - | pResEnd$Ca_pfu <- f_1*pOx_AEi$CaO_wtp+f_2*pCat_AEi$CaO_wtp+f_3*pCat_pfu$CaO_wtp; | + | pResEnd$Mg_pfu <- pCat_pfu$f_1*pOx_AEi$MgO_wtp+pCat_pfu$f_2*pCat_AEi$MgO_wtp+pCat_pfu$f_3*pCat_pfu$MgO_wtp; | 
| - | pResEnd$Na_pfu <- f_1*pOx_AEi$Na2O_wtp+f_2*pCat_AEi$Na2O_wtp+f_3*pCat_pfu$Na2O_wtp; | + | pResEnd$Ca_pfu <- pCat_pfu$f_1*pOx_AEi$CaO_wtp+pCat_pfu$f_2*pCat_AEi$CaO_wtp+pCat_pfu$f_3*pCat_pfu$CaO_wtp; | 
| - | pResEnd$K_pfu <- f_1*pOx_AEi$K2O_wtp+f_2*pCat_AEi$K2O_wtp+f_3*pCat_pfu$K2O_wtp; | + | pResEnd$Na_pfu <- pCat_pfu$f_1*pOx_AEi$Na2O_wtp+pCat_pfu$f_2*pCat_AEi$Na2O_wtp+pCat_pfu$f_3*pCat_pfu$Na2O_wtp; | 
| + | pResEnd$K_pfu <- pCat_pfu$f_1*pOx_AEi$K2O_wtp+pCat_pfu$f_2*pCat_AEi$K2O_wtp+pCat_pfu$f_3*pCat_pfu$K2O_wtp; | ||
|  |  | ||
| return (pResEnd); | return (pResEnd); | ||
| + | } | ||
| + | |||
| + | recalc.px_macgreg.test <- function () | ||
| + | { | ||
| + | src <- data.frame(Name='test', SiO2_wtp=54.86, TiO2_wtp=0.13, Al2O3_wtp=2.76, Cr2O3_wtp=0.72, | ||
| + | FeO_wtp=6.81, MnO_wtp=0.00, MgO_wtp=34.72, CaO_wtp=0.75, Na2O_wtp=0.00, K2O_wtp=0.00); | ||
| + | |||
| + | result <- recalc.px_macgreg(src); | ||
| + |  | ||
| + | expect_equal(object = result$Si_pfu, 1.875, tolerance = 0.05); | ||
| + | expect_equal(object = result$Fe_p2_pfu, 0.082, tolerance = 0.05); | ||
| + | expect_equal(object = result$Mg_pfu, 1.769, tolerance = 0.05); | ||
| + | |||
| + | src <- data.frame(Name='test', SiO2_wtp=53.51, TiO2_wtp=0.10, Al2O3_wtp=9.10, Cr2O3_wtp=0.11, | ||
| + | FeO_wtp=7.24, MnO_wtp=0.00, MgO_wtp=29.78, CaO_wtp=2.08, Na2O_wtp=0.00, K2O_wtp=0.00); | ||
| + | |||
| + | result <- recalc.px_macgreg(src); | ||
| + |  | ||
| + | expect_equal(object = result$Si_pfu, 1.824, tolerance = 0.05); | ||
| + | expect_equal(object = result$Fe_p2_pfu, 0.206, tolerance = 0.05); | ||
| + | expect_equal(object = result$Mg_pfu, 1.513, tolerance = 0.05); | ||
| + | |||
| } | } | ||
| </Code> | </Code> | ||