calc.comp.matrix: Construct Composition Matrix

View source: R/stoichcalc.R

calc.comp.matrixR Documentation

Construct Composition Matrix

Description

Construct substance composition matrix from list of substance composition vectors

Usage

calc.comp.matrix(subst.comp,verbose=TRUE)

Arguments

subst.comp

Named list of named composition vectors. The list must contain entries labelled by the substance names containing vectors of the mass fractions of elementary constituents (typically chemical elements, charge or COD resp. ThOD) that characterize the composition of the substance. Each element of these vectors must be labelled by the name of the corresponding elementary constituent.

verbose

indicator for whether or not to write basic information to the console.

Details

This function compiles the substance composition matrix used in the other functions of the stoichcalc package. It can alternatively be composed manually or by a user-defined function. The main advantage of the use of this function is that substance compositions can be maintained in lists. This makes it much easier to remove and add substances and elementary constituents.

Value

Composition matrix of all substances (labelled columns) and mass fractions of elementary constituents (labelled rows).

Author(s)

Peter Reichert <peter.reichert@emeriti.eawag.ch>

References

Reichert, P. and Schuwirth, N., A generic framework for deriving process stoichiometry in environmental models, Environmental Modelling and Software 25, 1241-1251, 2010.

See Also

calc.stoich.basis, calc.stoich.coef

Examples

subst.comp <- 
  list(NH4  = c(H      = 4*1/14,  # gH/gNH4-N
                N      = 1,       # gN/gNH4-N
                charge = 1/14),   # chu/gNH4-N
       NO3  = c(O      = 3*16/14, # gO/gNO3-N
                N      = 1,       # gN/gNO3-N
                charge = -1/14),  # chu/gNO3-N
       HPO4 = c(O      = 4*16/31, # gO/gHPO4-P
                H      = 1*1/31,  # gH/gHPO4-P
                P      = 1,       # gP/gHPO4-P
                charge = -2/31),  # chu/gHPO4-P
       HCO3 = c(C      = 1,       # gC/gHCO3-C
                O      = 3*16/12, # gO/gHCO3-C
                H      = 1*1/12,  # gH/gHCO3-C
                charge = -1/12),  # chu/gHCO3-C
       O2   = c(O      = 1),      # gO/gO2-O
       H    = c(H      = 1,       # gH/molH
                charge = 1),      # chu/molH
       H2O  = c(O      = 1*12,    # gO/molH2O
                H      = 2*1),    # gH/molH2O
       ALG  = c(N      = 0.06,    # gN/gALG
                P      = 0.005,   # gP/gALG
                O      = 0.50,    # gO/gALG
                H      = 0.07,    # gH/gALG
                C      = 0.365),  # gC/gALG
       ZOO  = c(N      = 0.06,    # gN/gZOO
                P      = 0.01,    # gP/gZOO
                O      = 0.50,    # gO/gZOO
                H      = 0.07,    # gH/gZOO
                C      = 0.36),   # gC/gZOO
       POM  = c(N      = 0.04,    # gN/gPOM
                P      = 0.007,   # gP/gPOM
                O      = 0.40,    # gO/gPOM
                H      = 0.07,    # gH/gPOM
                C      = 0.483),  # gC/gPOM
       DOM  = c(N      = 0.04,    # gN/gDOM
                P      = 0.007,   # gP/gDOM
                O      = 0.40,    # gO/gDOM
                H      = 0.07,    # gH/gDOM
                C      = 0.483))  # gC/gDOM
                
alpha <- calc.comp.matrix(subst.comp)

print(alpha)

stoichcalc documentation built on Aug. 28, 2023, 5:07 p.m.