Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
recalc:amp_13ecnk [2017/03/21 13:37] 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> | ||
Строка 61: | Строка 62: | ||
rformula <- formula[0, ]; | rformula <- formula[0, ]; | ||
- | |||
- | print(ToverS); | ||
for(i in 1:nrow(formula)){ | for(i in 1:nrow(formula)){ | ||
- | if (ToverS[i]<13) { | + | if (cationCNK[i]<13) { |
- | rformula <- rbind(rformula, formula[i,]); | + | rformula <- rbind(rformula, formula[i,]); |
- | } else { | + | } else { |
- | rformula <- rbind(rformula, fnorm[i,]); | + | rformula <- rbind(rformula, fnorm[i,]); |
- | } | + | } |
} | } | ||
- | print(rformula); | + | 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$Fe_pfu = 0; | + | rformula$Na_A_pfu <- rformula$Na_pfu - rformula$Na_B_pfu; |
- | rformula$Fe_p3_pfu = ifelse(ToverS<13,0,Fe_p3); | + | rformula$K_A_pfu <- rformula$K_pfu; |
- | rformula$Fe_p2_pfu = ifelse(ToverS<13,formula$Fe_pfu,Fe_p2); | + | rformula$Sum_A <- rformula$Na_A_pfu + rformula$K_A_pfu; |
result <- cbind(data.frame(Name=wtp_data$Name),rformula); | result <- cbind(data.frame(Name=wtp_data$Name),rformula); | ||
- | print(result); | ||
return(result); | 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 (){ | ||
Строка 88: | Строка 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> |