Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
recalc:amp_13ecnk [2017/03/21 13:18] admin |
recalc:amp_13ecnk [2018/11/12 15:08] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Amp: 13eCNK Method ====== | + | ====== Amp: 13eCNK ====== |
| Droop equation No 6 assuming 13 cations excluding Ca,Na & K and with ZrO2. | Droop equation No 6 assuming 13 cations excluding Ca,Na & K and with ZrO2. | ||
| Строка 7: | Строка 7: | ||
| ^ Reference | Based on [[http://www.gabbrosoft.org/spreadsheets.html|Gabbresoft spreadsheet]] AMPH13 | | ^ Reference | Based on [[http://www.gabbrosoft.org/spreadsheets.html|Gabbresoft spreadsheet]] AMPH13 | | ||
| ^ Input | SiO2_wtp, TiO2_wtp, Al2O3_wtp, Cr2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp, ZrO2_wtp | | ^ Input | SiO2_wtp, TiO2_wtp, Al2O3_wtp, Cr2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp, ZrO2_wtp | | ||
| + | ^ Output | All elements in pfu, also Fe_p2_pfu, Fe_p3_pfu, Al_c4_pfu, Al_c6_pfu, and elements by groups T,C,B and A with sum for each group | | ||
| ^ Results | pfu | | ^ Results | pfu | | ||
| Строка 13: | Строка 14: | ||
| <WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
| - | * заголовок | + | * <del>заголовок</del> |
| * <del>краткое описание</del> | * <del>краткое описание</del> | ||
| * статья | * статья | ||
| Строка 19: | Строка 20: | ||
| * <del>карточка</del> | * <del>карточка</del> | ||
| * подробное описание | * подробное описание | ||
| - | * код | + | * <del>код</del> |
| - | * тест | + | * <del>тест</del> |
| </WRAP> | </WRAP> | ||
| Строка 56: | Строка 57: | ||
| Fe_p3 <- (2*23)*(1-ToverS); | Fe_p3 <- (2*23)*(1-ToverS); | ||
| - | |||
| - | print(Fe_p3); | ||
| Fe_p2 <- ifelse(Fe_p3>fnorm$Fe_pfu,0,fnorm$Fe_pfu-Fe_p3); | Fe_p2 <- ifelse(Fe_p3>fnorm$Fe_pfu,0,fnorm$Fe_pfu-Fe_p3); | ||
| Fe_p3 <- ifelse(Fe_p3>fnorm$Fe_pfu,fnorm$Fe_pfu,Fe_p3); | Fe_p3 <- ifelse(Fe_p3>fnorm$Fe_pfu,fnorm$Fe_pfu,Fe_p3); | ||
| + | rformula <- formula[0, ]; | ||
| + | |||
| + | for(i in 1:nrow(formula)){ | ||
| + | if (cationCNK[i]<13) { | ||
| + | rformula <- rbind(rformula, formula[i,]); | ||
| + | } else { | ||
| + | rformula <- rbind(rformula, fnorm[i,]); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | rformula$Fe_p3_pfu <- ifelse(cationCNK<13,0,Fe_p3); | ||
| + | rformula$Fe_p2_pfu <- ifelse(cationCNK<13,formula$Fe_pfu,Fe_p2); | ||
| + | rformula$Fe_pfu <- rformula$Fe_p3_pfu+rformula$Fe_p2_pfu; | ||
| + | Ca_2m <- 2 - rformula$Ca_pfu; | ||
| + | Si_8m <- 8 - rformula$Si_pfu; | ||
| + | Al_mSi_8m <- rformula$Al_pfu - Si_8m; | ||
| + | |||
| + | rformula$Si_T_pfu <- rformula$Si_pfu; | ||
| + | rformula$Al_T_pfu <- ifelse(rformula$Al_pfu<Si_8m,rformula$Al_pfu,Si_8m); | ||
| + | rformula$Al_c4_pfu <- rformula$Al_T_pfu; | ||
| + | rformula$Sum_T <- rformula$Si_T_pfu + rformula$Al_T_pfu; | ||
| + | |||
| + | rformula$Al_C_pfu <- ifelse(rformula$Al_pfu<Si_8m,0,Al_mSi_8m); | ||
| + | rformula$Al_c6_pfu <- rformula$Al_C_pfu; | ||
| + | rformula$Ti_C_pfu <- rformula$Ti_pfu; | ||
| + | rformula$Cr_C_pfu <- rformula$Cr_pfu; | ||
| + | rformula$Fe_p2_C_pfu <- rformula$Fe_p2_pfu; | ||
| + | rformula$Fe_p3_C_pfu <- rformula$Fe_p3_pfu; | ||
| + | rformula$Fe_C_pfu <- rformula$Fe_pfu; | ||
| + | rformula$Mn_C_pfu <- rformula$Mn_pfu; | ||
| + | rformula$Mg_C_pfu <- rformula$Mg_pfu; | ||
| + | rformula$Sum_C <- rformula$Al_C_pfu+rformula$Ti_C_pfu+rformula$Cr_C_pfu+rformula$Fe_pfu+rformula$Mn_C_pfu+rformula$Mg_C_pfu; | ||
| + | rformula$Ca_B_pfu <- rformula$Ca_pfu; | ||
| + | rformula$Na_B_pfu <- ifelse(Ca_2m>rformula$Na_pfu, rformula$Na_pfu, Ca_2m); | ||
| + | rformula$Sum_B <- rformula$Ca_B_pfu + rformula$Na_B_pfu; | ||
| + | rformula$Na_A_pfu <- rformula$Na_pfu - rformula$Na_B_pfu; | ||
| + | rformula$K_A_pfu <- rformula$K_pfu; | ||
| + | rformula$Sum_A <- rformula$Na_A_pfu + rformula$K_A_pfu; | ||
| + | result <- cbind(data.frame(Name=wtp_data$Name),rformula); | ||
| + | return(result); | ||
| } | } | ||
| + | # избыточная выдача; невозможно прочитать всю строку | ||
| + | # или удвоить строку или вывести необходимые величины вперед | ||
| + | # достаточно SiT/ AlT/ Al6/ Fe3/ Ti/ Cr/ Fe2/ Mn/ Mg/ Ca/ Na/ K/ TOTAL | ||
| recalc.amp_13ecnk.test <- function (){ | recalc.amp_13ecnk.test <- function (){ | ||
| Строка 72: | Строка 114: | ||
| result <- recalc.amp_13ecnk(tdata); | result <- recalc.amp_13ecnk(tdata); | ||
| + | | ||
| + | expect_equal(object = result[1,]$Fe_p3_pfu,0.308, tolerance = 0.05); | ||
| + | expect_equal(object = result[2,]$Si_pfu,5.267, tolerance = 0.05); | ||
| } | } | ||
| </Code> | </Code> | ||