Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
library(ISO6976.2016)
## ----quickstart---------------------------------------------------------------
x <- numeric(60) # all zeros
u_x <- numeric(60) # all zero uncertainties
r_x <- diag(60) # identity correlation matrix (no correlations)
# Fill in a simple two-component mixture: 95 % methane, 5 % nitrogen
x[componentIndex("methane")] <- 0.95
x[componentIndex("nitrogen")] <- 0.05
# Assign standard uncertainties (0.05 mol/mol each)
u_x[componentIndex("methane")] <- 0.0005
u_x[componentIndex("nitrogen")] <- 0.0005
res <- calculateProperties(x, u_x, r_x,
combustionTemperature = 25,
volumeTemperature = 15)
cat("Molar mass :", round(res$M, 4), "kg/kmol\n")
cat("Compression factor Z :", round(res$Z, 6), "\n")
cat("Gross CV (volumetric) :", round(res$Hvg, 4), "MJ/m³\n")
cat(" standard uncertainty :", round(res$u_Hvg, 6), "MJ/m³\n")
cat("Gross Wobbe index :", round(res$Wg, 4), "MJ/m³\n")
cat(" standard uncertainty :", round(res$u_Wg, 6), "MJ/m³\n")
## ----gascomponents------------------------------------------------------------
gc <- GasComponents$new()
# Set fractions by name or by index
gc$setFraction("methane", 0.9234)
gc$setFraction("ethane", 0.0254)
gc$setFraction("propane", 0.0152)
gc$setFraction("nitrogen", 0.0103)
gc$setFraction("carbon dioxide", 0.0154)
gc$setFraction(1L, 0.9234) # same as "methane"
# Set uncertainties
gc$setUncertainty("methane", 0.000332)
gc$setUncertainty("ethane", 0.000243)
gc$setUncertainty("propane", 0.000148)
gc$setUncertainty("nitrogen", 0.000195)
gc$setUncertainty("carbon dioxide", 0.000111)
# Retrieve a value
gc$getFraction("methane")
# Pass directly to calculateProperties
res <- calculateProperties(gc$fractions, gc$uncertainties, gc$correlations,
combustionTemperature = 15,
volumeTemperature = 15)
round(res$Hvg, 4) # real-gas vol. gross CV [MJ/m³]
## ----correlations-------------------------------------------------------------
gc2 <- GasComponents$new()
gc2$setFractionArray(gc$fractions)
gc2$setUncertaintyArray(gc$uncertainties)
# Negative correlation between methane and ethane (typical for GC)
gc2$setCorrelation("methane", "ethane", -0.65)
gc2$getCorrelation("methane", "ethane")
gc2$getCorrelation("ethane", "methane") # automatically symmetric
## ----refconds-----------------------------------------------------------------
data("example3", envir = environment())
# German/European standard: 25 °C combustion, 0 °C metering
r25_0 <- calculateProperties(example3$fractionArray, example3$uncertaintyArray,
example3$correlationMatrix,
combustionTemperature = 25,
volumeTemperature = 0)
# UK/legacy standard: 15 °C / 15 °C
r15_15 <- calculateProperties(example3$fractionArray, example3$uncertaintyArray,
example3$correlationMatrix,
combustionTemperature = 15,
volumeTemperature = 15)
cat("Hvg at 25/0 °C :", round(r25_0$Hvg, 5), "MJ/m³\n")
cat("Hvg at 15/15 °C :", round(r15_15$Hvg, 5), "MJ/m³\n")
## ----coverage-----------------------------------------------------------------
data("example1", envir = environment())
r_k1 <- calculateProperties(example1$fractionArray, example1$uncertaintyArray,
example1$correlationMatrix,
combustionTemperature = 15, volumeTemperature = 15,
coverage = 1)
r_k2 <- calculateProperties(example1$fractionArray, example1$uncertaintyArray,
example1$correlationMatrix,
combustionTemperature = 15, volumeTemperature = 15,
coverage = 2)
cat("Gross Wobbe index :", round(r_k1$Wg, 5), "MJ/m³\n")
cat(" u (k=1) :", round(r_k1$u_Wg, 6), "MJ/m³\n")
cat(" U (k=2, ~95%) :", round(r_k2$u_Wg, 6), "MJ/m³\n")
## ----annex_d------------------------------------------------------------------
data("example1", envir = environment())
res <- calculateProperties(example1$fractionArray, example1$uncertaintyArray,
example1$correlationMatrix,
combustionTemperature = 15,
volumeTemperature = 15,
coverage = 1)
tab <- data.frame(
Property = c("M [kg/kmol]", "Z", "Hcg [kJ/mol]", "u(Hcg)",
"Hmg [MJ/kg]", "u(Hmg)", "Hvg [MJ/m\u00b3]", "u(Hvg)"),
Computed = round(c(res$M, res$Z, res$Hcg, res$u_Hcg,
res$Hmg, res$u_Hmg, res$Hvg, res$u_Hvg), 7),
ISO_6976 = c(17.3884301, 0.99776224, 906.1799588, 0.615609872,
52.113961, 0.024301, 38.410611, 0.026267)
)
knitr::kable(tab, align = "lrr")
## ----components---------------------------------------------------------------
# All 60 components in table order
nms <- componentNames()
cat(paste(sprintf("%2d %s", seq_along(nms), nms), collapse = "\n"), "\n")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.