Modified ADM1 Property Package
This package is an extension of the base Anaerobic Digestion Model no.1 (ADM1) and implements properties and reactions of an anaerobic digestion model for wastewater treatment using an anaerobic digester as provided in Batstone, D. J. et al. (2002) and Rosen and Jeppsson (2006).
Throughout this documentation, text in red has been removed in the Modified ADM1 model, text in lime has been added, and text in blue has been modified from its base ADM1 implementation.
- The following modifications have been made to the base ADM1 model as provided in Flores-Alsina, X. et al. (2016):
tracks inorganic phosphorus (S_IP), polyhydroxyalkanoates (X_PHA), polyphosphates (X_PP), phosphorus accumulating organisms (X_PAO), potassium (S_K), and magnesium (S_Mg)
removes the composite material variable (X_C) and the associated disintegration reaction
adds 7 additional reactions
- This modified ADM1 property/reaction package:
supports ‘H2O’, ‘S_su’, ‘S_aa’, ‘S_fa’, ‘S_va’, ‘S_bu’, ‘S_pro’, ‘S_ac’, ‘S_h2’, ‘S_ch4’, ‘S_IC’, ‘S_IN’, ‘S_IP’, ‘S_I’, ‘X_ch’, ‘X_pr’, ‘X_li’, ‘X_su’, ‘X_aa’, ‘X_fa’, ‘X_c4’, ‘X_pro’, ‘X_ac’, ‘X_h2’, ‘X_I’, ‘X_PHA’, ‘X_PP’, ‘X_PAO’, ‘S_K’, ‘S_Mg’, ‘S_cat’, ‘S_an’, and ‘S_co2’ as components
supports only liquid and vapor phase
only makes changes to the liquid phase modelling
Sets
Description |
Symbol |
Indices |
---|---|---|
Components |
\(j\) |
[‘H2O’, ‘S_su’, ‘S_aa’, ‘S_fa’, ‘S_va’, ‘S_bu’, ‘S_pro’, ‘S_ac’, ‘S_h2’, ‘S_ch4’, ‘S_IC’, ‘S_IN’, ‘S_IP’, ‘S_I’, ‘X_ch’, ‘X_pr’, ‘X_li’, ‘X_su’, ‘X_aa’, ‘X_fa’, ‘X_c4’, ‘X_pro’, ‘X_ac’, ‘X_h2’, ‘X_I’, ‘X_PHA’, ‘X_PP’, ‘X_PAO’, ‘S_K’, ‘S_Mg’, ‘S_cat’, ‘S_an’, ‘S_co2’] |
Phases |
\(p\) |
[‘Liq’, ‘Vap’] |
Components
Red text indicates the component has been removed in the Modified ADM1 model, and lime text indicates the component has been added.
Description |
Symbol |
Variable |
---|---|---|
Monosaccharides, S_su |
\(S_{su}\) |
S_su |
Amino acids, S_aa |
\(S_{aa}\) |
S_aa |
Long chain fatty acids, S_fa |
\(S_{fa}\) |
S_fa |
Total valerate, S_va |
\(S_{va}\) |
S_va |
Total butyrate, S_bu |
\(S_{bu}\) |
S_bu |
Total propionate, S_pro |
\(S_{pro}\) |
S_pro |
Total acetate, S_ac |
\(S_{ac}\) |
S_ac |
Hydrogen gas, S_h2 |
\(S_{h2}\) |
S_h2 |
Methane gas, S_ch4 |
\(S_{ch4}\) |
S_ch4 |
Inorganic carbon, S_IC |
\(S_{IC}\) |
S_IC |
Inorganic nitrogen, S_IN |
\(S_{IN}\) |
S_IN |
Inorganic phosphorus, S_IP |
\(S_{IP}\) |
S_IP |
Soluble inerts, S_I |
\(S_I\) |
S_I |
Composites, X_c |
\(X_c\) |
X_c |
Carbohydrates, X_ch |
\(X_{ch}\) |
X_ch |
Proteins, X_pr |
\(X_{pr}\) |
X_pr |
Lipids, X_li |
\(X_{li}\) |
X_li |
Sugar degraders, X_su |
\(X_{su}\) |
X_su |
Amino acid degraders, X_aa |
\(X_{aa}\) |
X_aa |
Long chain fatty acid (LCFA) degraders, X_fa |
\(X_{fa}\) |
X_fa |
Valerate and butyrate degraders, X_c4 |
\(X_{c4}\) |
X_c4 |
Propionate degraders, X_pro |
\(X_{pro}\) |
X_pro |
Acetate degraders, X_ac |
\(X_{ac}\) |
X_ac |
Hydrogen degraders, X_h2 |
\(X_{h2}\) |
X_h2 |
Particulate inerts, X_I |
\(X_I\) |
X_I |
Polyhydroxyalkanoates, X_PHA |
\(X_{PHA}\) |
X_PHA |
Polyphosphates, X_PP |
\(X_{PP}\) |
X_PP |
Phosphorus accumulating organisms, X_PAO |
\(X_{PAO}\) |
X_PAO |
Potassium, S_K |
\(S_K\) |
S_K |
Magnesium, S_Mg |
\(S_{Mg}\) |
S_Mg |
Total cation equivalents concentration, S_cat |
\(S_{cat}\) |
S_cat |
Total anion equivalents concentration, S_an |
\(S_{an}\) |
S_an |
Carbon dioxide, S_co2 |
\(S_{co2}\) |
S_co2 |
NOTE: S_h2 and S_ch4 have vapor phase and liquid phase, S_co2 only has vapor phase, and the other components only have liquid phase. The amount of CO2 dissolved in the liquid phase is equivalent to S_IC - S_HCO3-.
State variables
Description |
Symbol |
Variable |
Index |
Units |
---|---|---|---|---|
Total volumetric flowrate |
\(Q\) |
flow_vol |
None |
\(\text{m}^3\text{/s}\) |
Temperature |
\(T\) |
temperature |
None |
\(\text{K}\) |
Pressure |
\(P\) |
pressure |
None |
\(\text{Pa}\) |
Component mass concentrations |
\(C_j\) |
conc_mass_comp |
[j] |
\(\text{kg/}\text{m}^3\) |
Anions in molar concentrations |
\(M_a\) |
anions |
None |
\(\text{kmol/}\text{m}^3\) |
Cations in molar concentrations |
\(M_c\) |
cations |
None |
\(\text{kmol/}\text{m}^3\) |
Component carbon content |
\(Ci\) |
Ci_dict |
[j] |
\(\text{kmol/}\text{kg}\) |
Component nitrogen content |
\(Ni\) |
Ni_dict |
[j] |
\(\text{kmol/}\text{kg}\) |
Component phosphorus content |
\(Pi\) |
Pi_dict |
[j] |
\(\text{kmol/}\text{kg}\) |
Component pressure |
\(P_{j,sat}\) |
pressure_sat |
[j] |
\(\text{Pa}\) |
Reference temperature |
\(T_{ref}\) |
temperature_ref |
None |
\(\text{K}\) |
Reference component mass concentrations |
\(C_{j,ref}\) |
conc_mass_comp_ref |
[j] |
\(\text{kg/}\text{m}^3\) |
Stoichiometric Parameters
Red text indicates the parameter has been removed in the Modified ADM1 model, and lime text indicates the parameter has been added.
Description |
Symbol |
Parameter |
Value at 20 C |
Units |
---|---|---|---|---|
Soluble inerts from composites, f_sI_xc |
\(f_{sI,xc}\) |
f_sI_xc |
0.1 |
\(\text{dimensionless}\) |
Particulate inerts from composites, f_xI_xc |
\(f_{xI,xc}\) |
f_xI_xc |
0.2 |
\(\text{dimensionless}\) |
Carbohydrates from composites, f_ch_xc |
\(f_{ch,xc}\) |
f_ch_xc |
0.2 |
\(\text{dimensionless}\) |
Proteins from composites, f_pr_xc |
\(f_{pr,xc}\) |
f_pr_xc |
0.2 |
\(\text{dimensionless}\) |
Lipids from composites, f_li_xc |
\(f_{li,xc}\) |
f_li_xc |
0.3 |
\(\text{dimensionless}\) |
Nitrogen content of composites, N_xc |
\(N_{xc}\) |
N_xc |
0.0376/14 |
\(\text{kmol-N/}\text{kg-COD}\) |
Nitrogen content of inerts, N_I |
\(N_I\) |
N_I |
0.06/14 |
\(\text{kmol-N/}\text{kg-COD}\) |
Nitrogen in amino acids and proteins, N_aa |
\(N_{aa}\) |
N_aa |
0.007 |
\(\text{kmol-N/}\text{kg-COD}\) |
Nitrogen content in bacteria, N_bac |
\(N_{bac}\) |
N_bac |
0.08/14 |
\(\text{kmol-N/}\text{kg-COD}\) |
Reference component mass concentration of hydrogen sulfide, Z_h2s |
\(Z_{h2s}\) |
Z_h2s |
0 |
\(\text{kg/}\text{m}^3\) |
Fraction of inert particulate organics from biomass, f_xi_xb |
\(f_{xi,xb}\) |
f_xi_xb |
0.1 |
\(\text{dimensionless}\) |
Fraction of carbohydrates from biomass, f_ch_xb |
\(f_{ch,xb}\) |
f_ch_xb |
0.275 |
\(\text{dimensionless}\) |
Fraction of lipids from biomass, f_li_xb |
\(f_{li,xb}\) |
f_li_xb |
0.35 |
\(\text{dimensionless}\) |
Fraction of proteins from biomass, f_pr_xb |
\(f_{pr,xb}\) |
f_pr_xb |
0.275 |
\(\text{dimensionless}\) |
Fraction of soluble inerts from biomass, f_si_xb |
\(f_{si,xb}\) |
f_si_xb |
0 |
\(\text{dimensionless}\) |
Fatty acids from lipids, f_fa_li |
\(f_{fa,li}\) |
f_fa_li |
0.95 |
\(\text{dimensionless}\) |
Hydrogen from sugars, f_h2_su |
\(f_{h2,su}\) |
f_h2_su |
0.19 |
\(\text{dimensionless}\) |
Butyrate from sugars, f_bu_su |
\(f_{bu,su}\) |
f_bu_su |
0.13 |
\(\text{dimensionless}\) |
Propionate from sugars, f_pro_su |
\(f_{pro,su}\) |
f_pro_su |
0.27 |
\(\text{dimensionless}\) |
Acetate from sugars, f_ac_su |
\(f_{ac,su}\) |
f_ac_su |
0.41 |
\(\text{dimensionless}\) |
Hydrogen from amino acids, f_h2_aa |
\(f_{h2,aa}\) |
f_h2_aa |
0.06 |
\(\text{dimensionless}\) |
Valerate from amino acids, f_va_aa |
\(f_{va,aa}\) |
f_va_aa |
0.23 |
\(\text{dimensionless}\) |
Butyrate from amino acids, f_bu_aa |
\(f_{bu,aa}\) |
f_bu_aa |
0.26 |
\(\text{dimensionless}\) |
Propionate from amino acids, f_pro_aa |
\(f_{pro,aa}\) |
f_pro_aa |
0.05 |
\(\text{dimensionless}\) |
Acetate from amino acids, f_ac_aa |
\(f_{ac,aa}\) |
f_ac_aa |
0.4 |
\(\text{dimensionless}\) |
Yield of biomass on sugar substrate, Y_su |
\(Y_{su}\) |
Y_su |
0.1 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of biomass on amino acid substrate, Y_aa |
\(Y_{aa}\) |
Y_aa |
0.08 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of biomass on fatty acid substrate, Y_fa |
\(Y_{fa}\) |
Y_fa |
0.06 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of biomass on valerate and butyrate substrate, Y_c4 |
\(Y_{c4}\) |
Y_c4 |
0.06 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of biomass on propionate substrate, Y_pro |
\(Y_{pro}\) |
Y_pro |
0.04 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of biomass on acetate substrate, Y_ac |
\(Y_{ac}\) |
Y_ac |
0.05 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Yield of hydrogen per biomass, Y_h2 |
\(Y_{h2}\) |
Y_h2 |
0.06 |
\(\text{kg-COD X/}\text{kg-COD S}\) |
Kinetic Parameters
Red text indicates the parameter has been removed in the Modified ADM1 model, and lime text indicates the parameter has been added.
Description |
Symbol |
Parameter |
Value at 20 C |
Units |
---|---|---|---|---|
First-order kinetic parameter for disintegration, k_dis |
\(k_{dis}\) |
k_dis |
0.5 |
\(\text{d}^{-1}\) |
First-order kinetic parameter for hydrolysis of carbohydrates, k_hyd_ch |
\(k_{hyd,ch}\) |
k_hyd_ch |
10 |
\(\text{d}^{-1}\) |
First-order kinetic parameter for hydrolysis of proteins, k_hyd_pr |
\(k_{hyd,pr}\) |
k_hyd_pr |
10 |
\(\text{d}^{-1}\) |
First-order kinetic parameter for hydrolysis of lipids, k_hyd_li |
\(k_{hyd,li}\) |
k_hyd_li |
10 |
\(\text{d}^{-1}\) |
Water dissociation constant, pK_W |
\(pK_W\) |
pKW |
14 |
\(\text{dimensionless}\) |
Process inhibition term, I |
\(I\) |
I |
1 |
\(\text{dimensionless}\) |
Inhibition parameter for inorganic nitrogen, K_S_IN |
\(K_{S_{IN}}\) |
K_S_IN |
1e-4 |
\(\text{kmol/}\text{m}^3\) |
Monod maximum specific uptake rate of sugars, k_m_su |
\(k_{m_{su}}\) |
k_m_su |
30 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of sugars, K_S_su |
\(K_{S_{su}}\) |
K_S_su |
0.5 |
\(\text{kg/}\text{m}^3\) |
Upper limit of pH for uptake rate of amino acids, pH_UL_aa |
\(pH_{UL,aa}\) |
pH_UL_aa |
5.5 |
\(\text{dimensionless}\) |
Lower limit of pH for uptake rate of amino acids, pH_LL_aa |
\(pH_{LL,aa}\) |
pH_LL_aa |
4 |
\(\text{dimensionless}\) |
Monod maximum specific uptake rate of amino acids, k_m_aa |
\(k_{m_{aa}}\) |
k_m_aa |
50 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of amino acids, K_S_aa |
\(K_{S_{aa}}\) |
K_S_aa |
0.3 |
\(\text{kg/}\text{m}^3\) |
Monod maximum specific uptake rate of fatty acids, k_m_fa |
\(k_{m_{fa}}\) |
k_m_fa |
6 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of fatty acids, K_S_fa |
\(K_{S_{fa}}\) |
K_S_fa |
0.4 |
\(\text{kg/}\text{m}^3\) |
Inhibition parameter for hydrogen during uptake of fatty acids, K_I_h2_fa |
\(K_{I,h2_{fa}}\) |
K_I_h2_fa |
5e-6 |
\(\text{kg/}\text{m}^3\) |
Monod maximum specific uptake rate of valerate and butyrate, k_m_c4 |
\(k_{m_{c4}}\) |
k_m_c4 |
20 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of valerate and butyrate, K_S_c4 |
\(K_{S_{c4}}\) |
K_S_c4 |
0.2 |
\(\text{kg/}\text{m}^3\) |
Inhibition parameter for hydrogen during uptake of valerate and butyrate, K_I_h2_c4 |
\(K_{I,h2_{c4}}\) |
K_I_h2_c4 |
1e-5 |
\(\text{kg/}\text{m}^3\) |
Monod maximum specific uptake rate of propionate, k_m_pro |
\(k_{m_{pro}}\) |
k_m_pro |
13 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of propionate, K_S_pro |
\(K_{S_{pro}}\) |
K_S_pro |
0.1 |
\(\text{kg/}\text{m}^3\) |
Inhibition parameter for hydrogen during uptake of propionate, K_I_h2_pro |
\(K_{I,h2_{pro}}\) |
K_I_h2_pro |
3.5e-6 |
\(\text{kg/}\text{m}^3\) |
Monod maximum specific uptake rate of acetate, k_m_ac |
\(k_{m_{ac}}\) |
k_m_ac |
8 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of acetate, K_S_ac |
\(K_{S_{ac}}\) |
K_S_ac |
0.15 |
\(\text{kg/}\text{m}^3\) |
Inhibition parameter for ammonia during uptake of acetate, K_I_nh3 |
\(K_{I,nh3}\) |
K_I_nh3 |
0.0018 |
\(\text{kg/}\text{m}^3\) |
Upper limit of pH for uptake rate of acetate, pH_UL_ac |
\(pH_{UL,ac}\) |
pH_UL_ac |
7 |
\(\text{dimensionless}\) |
Lower limit of pH for uptake rate of acetate, pH_LL_ac |
\(pH_{LL,ac}\) |
pH_LL_ac |
6 |
\(\text{dimensionless}\) |
Monod maximum specific uptake rate of hydrogen, k_m_h2 |
\(k_{m_{h2}}\) |
k_m_h2 |
35 |
\(\text{d}^{-1}\) |
Half saturation value for uptake of hydrogen, K_S_h2 |
\(K_{S_{h2}}\) |
K_S_h2 |
7e-6 |
\(\text{kg/}\text{m}^3\) |
Upper limit of pH for uptake rate of hydrogen, pH_UL_h2 |
\(pH_{UL,h2}\) |
pH_UL_h2 |
6 |
\(\text{dimensionless}\) |
Lower limit of pH for uptake rate of hydrogen, pH_LL_h2 |
\(pH_{LL,h2}\) |
pH_LL_h2 |
5 |
\(\text{dimensionless}\) |
First-order decay rate for X_su, k_dec_X_su |
\(k_{dec,X_{su}}\) |
k_dec_X_su |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_aa, k_dec_X_aa |
\(k_{dec,X_{aa}}\) |
k_dec_X_aa |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_fa, k_dec_X_fa |
\(k_{dec,X_{fa}}\) |
k_dec_X_fa |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_c4, k_dec_X_c4 |
\(k_{dec,X_{c4}}\) |
k_dec_X_c4 |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_pro, k_dec_X_pro |
\(k_{dec,X_{pro}}\) |
k_dec_X_pro |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_ac, k_dec_X_ac |
\(k_{dec,X_{ac}}\) |
k_dec_X_ac |
0.02 |
\(\text{d}^{-1}\) |
First-order decay rate for X_h2, k_dec_X_h2 |
\(k_{dec,X_{h2}}\) |
k_dec_X_h2 |
0.02 |
\(\text{d}^{-1}\) |
Valerate acid-base equilibrium constant, K_a_va |
\(K_{a,va}\) |
K_a_va |
1.38e-5 |
\(\text{kmol/}\text{m}^3\) |
Butyrate acid-base equilibrium constant, K_a_bu |
\(K_{a,bu}\) |
K_a_bu |
1.5e-5 |
\(\text{kmol/}\text{m}^3\) |
Propionate acid-base equilibrium constant, K_a_pro |
\(K_{a,pro}\) |
K_a_bu |
1.32e-5 |
\(\text{kmol/}\text{m}^3\) |
Acetate acid-base equilibrium constant, K_a_ac |
\(K_{a,ac}\) |
K_a_ac |
1.74e-5 |
\(\text{kmol/}\text{m}^3\) |
50% inhibitory concentration of H2S on acetogens, K_I_h2s_ac |
\(K_{I,h2s_{ac}}\) |
K_I_h2s_ac |
460e-3 |
\(\text{kg/}\text{m}^3\) |
50% inhibitory concentration of H2S on c4 degraders, K_I_h2s_c4 |
\(K_{I,h2s_{c4}}\) |
K_I_h2s_c4 |
481e-3 |
\(\text{kg/}\text{m}^3\) |
50% inhibitory concentration of H2S on hydrogenotrophic methanogens, K_I_h2s_h2 |
\(K_{I,h2s_{h2}}\) |
K_I_h2s_h2 |
481e-3 |
\(\text{kg/}\text{m}^3\) |
50% inhibitory concentration of H2S on propionate degraders, K_I_h2s_pro |
\(K_{I,h2s_{pro}}\) |
K_I_h2s_pro |
481e-3 |
\(\text{kg/}\text{m}^3\) |
Phosphorus limitation for inorganic phosphorus, K_S_IP |
\(K_{s,IP}\) |
K_S_IP |
2e-5 |
\(\text{kmol/}\text{m}^3\) |
Lysis rate of phosphorus accumulating organisms, b_PAO |
\(b_{PAO}\) |
b_PAO |
0.2 |
\(\text{d}^{-1}\) |
Lysis rate of polyhydroxyalkanoates, b_PHA |
\(b_{PHA}\) |
b_PHA |
0.2 |
\(\text{d}^{-1}\) |
Lysis rate of polyphosphates, b_PP |
\(b_{PP}\) |
b_PP |
0.2 |
\(\text{d}^{-1}\) |
Yield of acetate on polyhydroxyalkanoates, f_ac_PHA |
\(f_{ac,PHA}\) |
f_ac_PHA |
0.4 |
\(\text{dimensionless}\) |
Yield of butyrate on polyhydroxyalkanoates, f_bu_PHA |
\(f_{bu,PHA}\) |
f_bu_PHA |
0.1 |
\(\text{dimensionless}\) |
Yield of propionate on polyhydroxyalkanoates, f_pro_PHA |
\(f_{pro,PHA}\) |
f_pro_PHA |
0.4 |
\(\text{dimensionless}\) |
Yield of valerate on polyhydroxyalkanoates, f_va_PHA |
\(f_{va,PHA}\) |
f_va_PHA |
0.1 |
\(\text{dimensionless}\) |
Saturation coefficient for acetate, K_A |
\(K_{A}\) |
K_A |
4e-3 |
\(\text{kg/}\text{m}^3\) |
Saturation coefficient for polyphosphate, K_PP |
\(K_{PP}\) |
k_PP |
0.32e-3 |
\(\text{dimensionless}\) |
Rate constant for storage of polyhydroxyalkanoates, q_PHA |
\(q_{PHA}\) |
q_PHA |
3 |
\(\text{d}^{-1}\) |
Yield of biomass on phosphate (kmol P/kg COD), Y_PO4 |
\(Y_{PO4}\) |
Y_PO4 |
12.903e-3 |
\(\text{dimensionless}\) |
Potassium coefficient for polyphosphates, K_PP |
\(K_{PP}\) |
K_PP |
1/3 |
\(\text{dimensionless}\) |
Magnesium coefficient for polyphosphates, Mg_PP |
\(Mg_{PP}\) |
Mg_PP |
1/3 |
\(\text{dimensionless}\) |
Carbon dioxide acid-base equilibrium constant, pK_a_co2 |
\(pK_{a,co2}\) |
pK_a_co2 |
6.35 |
\(\text{dimensionless}\) |
Inorganic nitrogen acid-base equilibrium constant, pK_a_IN |
\(pK_{a,IN}\) |
pK_a_IN |
9.25 |
\(\text{dimensionless}\) |
Properties
Description |
Symbol |
Variable |
Index |
Units |
---|---|---|---|---|
Fluid specific heat capacity |
\(c_p\) |
cp |
None |
\(\text{J/kg/K}\) |
Mass density |
\(\rho\) |
dens_mass |
[p] |
\(\text{kg/}\text{m}^3\) |
Process Rate Equations
Red text indicates the equation has been removed in the Modified ADM1 model, lime text indicates the equation has been added, and blue text indicates the equation has been modified from its base ADM1 implementation.
Description |
Equation |
---|---|
Disintegration |
\(\rho_1 = k_{dis} C_{X_c}\) |
Hydrolysis of carbohydrates |
\(\rho_1 = k_{hyd,ch} C_{X_{ch}}\) |
Hydrolysis of proteins |
\(\rho_2 = k_{hyd,pr} C_{X_{pr}}\) |
Hydrolysis of lipids |
\(\rho_3 = k_{hyd,li} C_{X_{li}}\) |
Uptake of sugars |
\(\rho_4 = k_{m_{su}} \frac{C_{S_{su}}}{K_{S_{su}}+C_{S_{su}}} C_{X_{su}} \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa}\) |
Uptake of amino acids |
\(\rho_5 = k_{m_{aa}} \frac{C_{S_{aa}}}{K_{S_{aa}}+C_{S_{aa}}} C_{X_{aa}} \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa}\) |
Uptake of long chain fatty acids (LCFAs) |
\(\rho_6 = k_{m_{fa}} \frac{C_{S_{fa}}}{K_{S_{fa}}+C_{S_{fa}}} C_{X_{fa}} \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + C_{S_{h2}}/K_{I,h2_{fa}}} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa}\) |
Uptake of valerate |
\(\rho_7 = k_{m_{c4}} \frac{C_{S_{va}}}{K_{S_{c4}}+C_{S_{va}}} C_{X_{c4}} \frac{C_{S_{va}}}{C_{S_{bu}} + C_{S_{va}}} \cdot \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + C_{S_{h2}}/K_{I,h2_{c4}}} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa} I_{h2s, c4}\) |
Uptake of butyrate |
\(\rho_8 = k_{m_{c4}} \frac{C_{S_{bu}}}{K_{S_{c4}}+C_{S_{bu}}} C_{X_{c4}} \frac{C_{S_{bu}}}{C_{S_{bu}} + C_{S_{va}}} \cdot \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + C_{S_{h2}}/K_{I,h2_{c4}}} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa} I_{h2s, c4}\) |
Uptake of propionate |
\(\rho_9 = k_{m_{pro}} \frac{C_{S_{pro}}}{K_{S_{pro}}+C_{S_{pro}}} C_{X_{pro}} \cdot \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + C_{S_{h2}}/K_{I,h2_{pro}}} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,aa} I_{h2s, pro}\) |
Uptake of acetate |
\(\rho_{10} = k_{m_{ac}} \frac{C_{S_{ac}}}{K_{S_{ac}}+C_{S_{ac}}} C_{X_{ac}} \cdot \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + C_{NH3}/K_{I,nh3}} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,ac} I_{h2s, ac}\) |
Uptake of hydrogen |
\(\rho_{11} = k_{m_{h2}} \frac{C_{S_{h2}}}{K_{S_{h2}}+C_{S_{h2}}} C_{X_{h2}} \cdot \frac{1}{1 + K_{S_{IN}}/C_{S_{IN}}/14} \cdot \frac{1}{1 + K_{S_{IP}}/C_{S_{IP}}/31} I_{pH,h2} I_{h2s, h2}\) |
Decay of X_su |
\(\rho_{12} = k_{dec, X_{su}} C_{X_{su}}\) |
Decay of X_aa |
\(\rho_{13} = k_{dec, X_{aa}} C_{X_{aa}}\) |
Decay of X_fa |
\(\rho_{14} = k_{dec, X_{fa}} C_{X_{fa}}\) |
Decay of X_c4 |
\(\rho_{15} = k_{dec, X_{c4}} C_{X_{c4}}\) |
Decay of X_pro |
\(\rho_{16} = k_{dec, X_{pro}} C_{X_{pro}}\) |
Decay of X_ac |
\(\rho_{17} = k_{dec, X_{ac}} C_{X_{ac}}\) |
Decay of X_h2 |
\(\rho_{18} = k_{dec, X_{h2}} C_{X_{h2}}\) |
Storage of S_va in X_PHA |
\(\rho_{19} = q_{PHA} \frac{C_{S_{va}}}{K_{A} + C_{S{va}}} \cdot \frac{C_{X_{PP}} / C_{X_{PAO}}}{K_{PP} + \frac{C_{X_{PP}}}{C_{X_{PAO}}}} C_{X_{PAO}} \frac{C_{S_{va}}}{C_{S_{va}} + C_{S_{bu}} + C_{S_{pro}} + C_{S_{ac}}}\) |
Storage of S_bu in X_PHA |
\(\rho_{20} = q_{PHA} \frac{C_{S_{bu}}}{K_{A} + C_{S{bu}}} \cdot \frac{C_{X_{PP}} / C_{X_{PAO}}}{K_{PP} + \frac{C_{X_{PP}}}{C_{X_{PAO}}}} C_{X_{PAO}} \frac{C_{S_{bu}}}{C_{S_{va}} + C_{S_{bu}} + C_{S_{pro}} + C_{S_{ac}}}\) |
Storage of S_pro in X_PHA |
\(\rho_{21} = q_{PHA} \frac{C_{S_{pro}}}{K_{A} + C_{S{pro}}} \cdot \frac{C_{X_{PP}} / C_{X_{PAO}}}{K_{PP} + \frac{C_{X_{PP}}}{C_{X_{PAO}}}} C_{X_{PAO}} \frac{C_{S_{pro}}}{C_{S_{va}} + C_{S_{bu}} + C_{S_{pro}} + C_{S_{ac}}}\) |
Storage of S_ac in X_PHA |
\(\rho_{22} = q_{PHA} \frac{C_{S_{ac}}}{K_{A} + C_{S{ac}}} \cdot \frac{C_{X_{PP}} / C_{X_{PAO}}}{K_{PP} + \frac{C_{X_{PP}}}{C_{X_{PAO}}}} C_{X_{PAO}} \frac{C_{S_{ac}}}{C_{S_{va}} + C_{S_{bu}} + C_{S_{pro}} + C_{S_{ac}}}\) |
Lysis of X_PAO |
\(\rho_{23} = b_{PAO} C_{X_{PAO}}\) |
Lysis of X_PP |
\(\rho_{24} = b_{PP} C_{X_{PP}}\) |
Lysis of X_PHA |
\(\rho_{25} = b_{PHA} C_{X_{PHA}}\) |
Additional Variables
Description |
Symbol |
Parameter |
Value at 20 C |
Units |
---|---|---|---|---|
pH of solution |
\(pH\) |
pH |
7 |
\(\text{dimensionless}\) |
Mass concentration of valerate, va- |
\(C_{va}\) |
conc_mass_va |
0.011 |
\(\text{kg/}\text{m}^3\) |
Mass concentration of butyrate, bu- |
\(C_{bu}\) |
conc_mass_bu |
0.013 |
\(\text{kg/}\text{m}^3\) |
Mass concentration of propionate, pro- |
\(C_{pro}\) |
conc_mass_pro |
0.016 |
\(\text{kg/}\text{m}^3\) |
Mass concentration of acetate, ac- |
\(C_{ac}\) |
conc_mass_ac |
0.2 |
\(\text{kg/}\text{m}^3\) |
Molar concentration of bicarbonate, HCO3 |
\(M_{hco3}\) |
conc_mol_hco3 |
0.14 |
\(\text{kmol/}\text{m}^3\) |
Molar concentration of ammonia, NH3 |
\(M_{nh3}\) |
conc_mol_nh3 |
0.0041 |
\(\text{kmol/}\text{m}^3\) |
Molar concentration of carbon dioxide, CO2 |
\(M_{co2}\) |
conc_mol_co2 |
0.0099 |
\(\text{kmol/}\text{m}^3\) |
Molar concentration of ammonium, NH4 |
\(M_{nh4}\) |
conc_mol_nh4 |
0.1261 |
\(\text{kmol/}\text{m}^3\) |
Molar concentration of magnesium, Mg |
\(M_{Mg}\) |
conc_mol_Mg |
4.5822e-5 |
\(\text{kmol/}\text{m}^3\) |
Molar concentration of potassium, K |
\(M_{K}\) |
conc_mol_K |
0.010934 |
\(\text{kmol/}\text{m}^3\) |
Additional Constraints
Lime text indicates the equation has been added, and blue text indicates the equation has been modified from its base ADM1 implementation.
Description |
Equation |
---|---|
Water dissociation constant constraint |
\(log(10^{-pK_{W}}) = log(10^{-14}) + (\frac{55900}{R} * (\frac{1}{T_{ref}} - \frac{1}{T}))\) |
CO2 acid-base equilibrium constraint |
\(log(10^{-pK_{a,co2}}) = log(10^{-6.35}) + (\frac{7646}{R} * (\frac{1}{T_{ref}} - \frac{1}{T}))\) |
Nitrogen acid-base equilibrium constraint |
\(log(10^{-pK_{a,IN}}) = log(10^{-9.25}) + (\frac{51965}{R} * (\frac{1}{T_{ref}} - \frac{1}{T}))\) |
pH of solution |
\(pH = -log(S_{H})\) |
Mass concentration of valerate, va- |
\(C_{va,ref} = C_{va} (1 + \frac{S_{H}}{K_{a,va}})\) |
Mass concentration of butyrate, bu- |
\(C_{bu,ref} = C_{bu} (1 + \frac{S_{H}}{K_{a,bu}})\) |
Mass concentration of propionate, pro- |
\(C_{pro,ref} = C_{pro} (1 + \frac{S_{H}}{K_{a,pro}})\) |
Mass concentration of acetate, ac- |
\(C_{ac,ref} = C_{ac} (1 + \frac{S_{H}}{K_{a,ac}})\) |
Molar concentration of bicarbonate, HCO3 |
\(pK_{a,co2} = log(M_{co2}) - log(M_{hco3}) + pH\) |
Molar concentration of ammonia, NH3 |
\(pK_{a,IN} = log(M_{nh4}) - log(M_{nh3}) + pH\) |
Molar concentration of carbon dioxide, CO2 |
\(M_{co2} = \frac{C_{S_{IC},ref}}{12} - M_{hco3}\) |
Molar concentration of ammonium, NH4+ |
\(M_{nh4} = \frac{C_{S_{IN},ref}}{14} - M_{nh3}\) |
Molar concentration of hydrogen, H+ |
\(S_{H} = M_{hco3} + \frac{C_{ac}}{64} + \frac{C_{pro}}{112} + \frac{C_{bu}}{160} + \frac{C_{va}}{208} + 10^{pH - pK_{W}} + M_{a} - M_{c} - M_{nh4} - M_{Mg} - M_{K}\) |
Molar concentration of magnesium, Mg |
\(M_{Mg} = \frac{C_{X_{PP},ref}}{300.41}\) |
Molar concentration of potassium, K |
\(M_{K} = \frac{C_{X_{PP},ref}}{300.41}\) |
The rules for inhibition of amino-acid-utilizing microorganisms (\(I_{pH,aa}\)), acetate-utilizing microorganisms (\(I_{pH,ac}\)), hydrogen-utilizing microorganisms (\(I_{pH,h2}\)) are:
\[ \begin{align}\begin{aligned}\begin{split}I_{pH,aa}= \begin{cases} \exp{(-3 (\frac{pH - pH_{UL,aa}}{pH_{UL,aa} - pH_{LL,aa}})^2)} & \text{for } pH \le pH_{UL,aa}\\ 1 & \text{for } pH > pH_{UL,aa} \end{cases}\end{split}\\\begin{split}I_{pH,ac}= \begin{cases} \exp{(-3 (\frac{pH - pH_{UL,ac}}{pH_{UL,ac} - pH_{LL,ac}})^2)} & \text{for } pH \le pH_{UL,ac}\\ 1 & \text{for } pH > pH_{UL,ac} \end{cases}\end{split}\\\begin{split}I_{pH,h2}= \begin{cases} \exp{(-3 (\frac{pH - pH_{UL,h2}}{pH_{UL,h2} - pH_{LL,h2}})^2)} & \text{for } pH \le pH_{UL,h2}\\ 1 & \text{for } pH > pH_{UL,h2} \end{cases}\end{split}\end{aligned}\end{align} \]
The rules for inhibition related to secondary substrate (\(I_{IN,lim}\)), hydrogen inhibition attributed to long chain fatty acids (\(I_{h2,fa}\)), hydrogen inhibition attributed to valerate and butyrate uptake (\(I_{h2,c4}\)), hydrogen inhibition attributed to propionate uptake (\(I_{h2,pro}\)), ammonia inibition attributed to acetate uptake (\(I_{nh3}\)), are:
\[ \begin{align}\begin{aligned}I_{IN,lim} = \frac{1}{1 + \frac{K_{S_{IN}}}{C_{S_{IN}}/14}}\\I_{h2, fa}= \frac{1}{1 + \frac{C_{S_{h2}}}{K_{I,h2,fa}}}\\I_{h2, c4}= \frac{1}{1 + \frac{C_{S_{h2}}}{K_{I,h2,c4}}}\\I_{h2, pro}= \frac{1}{1 + \frac{C_{S_{h2}}}{K_{I,h2,pro}}}\\I_{nh3}= \frac{1}{1 + \frac{M_{nh3}}{K_{I,nh3}}}\end{aligned}\end{align} \]
The rules for hydrogen sulfide inhibition factors are shown below; however, since \(Z_{h2s}\) is assumed to be 0, all of these inhibition factors are negligible.
\[ \begin{align}\begin{aligned}I_{h2s, ac} = \frac{1}{1 + \frac{Z_{h2s}}{K_{I,h2s,ac}}}\\I_{h2s, c4}= \frac{1}{1 + \frac{Z_{h2s}}{K_{I,h2s,c4}}}\\I_{h2s, h2}= \frac{1}{1 + \frac{Z_{h2s}}{K_{I,h2s,h2}}}\\I_{h2s, pro}= \frac{1}{1 + \frac{Z_{h2s}}{K_{I,h2s,pro}}}\end{aligned}\end{align} \]
Class Documentation
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_properties.ModifiedADM1ParameterBlock(*args, **kwds)
- Parameters:
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default - False.
ctype (class) –
Pyomo ctype of the block. Default - pyomo.environ.Block
Config args
- default_arguments
Default arguments to use with Property Package
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.
- Returns:
(ModifiedADM1ParameterBlock) New instance
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_properties.ModifiedADM1ParameterData(component)[source]
Property Parameter Block Class
- build()[source]
Callable method for Block construction.
- classmethod define_metadata(obj)[source]
Set all the metadata for properties and units.
This method should be implemented by subclasses. In the implementation, they should set information into the object provided as an argument.
- Parameters:
pcm (PropertyClassMetadata) – Add metadata to this object.
- Returns:
None
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_properties._ModifiedADM1StateBlock(*args, **kwds)[source]
This Class contains methods which should be applied to Property Blocks as a whole, rather than individual elements of indexed Property Blocks.
- initialize(state_args=None, state_vars_fixed=False, hold_state=False, outlvl=0, solver=None, optarg=None)[source]
Initialization routine for property package.
- Keyword Arguments:
state_args – Dictionary with initial guesses for the state vars chosen. Note that if this method is triggered through the control volume, and if initial guesses were not provided at the unit model level, the control volume passes the inlet values as initial guess.The keys for the state_args dictionary are:
flow_mol_comp – value at which to initialize component flows (default=None)
pressure – value at which to initialize pressure (default=None)
temperature – value at which to initialize temperature (default=None)
outlvl – sets output level of initialization routine
state_vars_fixed – Flag to denote if state vars have already been fixed. True - states have already been fixed and initialization does not need to worry about fixing and unfixing variables. False - states have not been fixed. The state block will deal with fixing/unfixing.
optarg – solver options dictionary object (default=None, use default solver options)
solver – str indicating which solver to use during initialization (default = None, use default solver)
hold_state – flag indicating whether the initialization routine should unfix any state variables fixed during initialization (default=False). True - states variables are not unfixed, and a dict of returned containing flags for which states were fixed during initialization. False - state variables are unfixed after initialization by calling the release_state method.
- Returns:
If hold_states is True, returns a dict containing flags for which states were fixed during initialization.
- release_state(flags, outlvl=0)[source]
Method to release state variables fixed during initialization.
- Keyword Arguments:
flags – dict containing information of which state variables were fixed during initialization, and should now be unfixed. This dict is returned by initialize if hold_state=True.
outlvl – sets output level of logging
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_properties.ModifiedADM1StateBlockData(*args, **kwargs)[source]
StateBlock for calculating thermophysical properties associated with the modified ADM1 reaction system.
- build()[source]
Callable method for Block construction
- default_scaler
alias of
ModifiedADM1PropertiesScaler
- define_display_vars()[source]
Method used to specify components to use to generate stream tables and other outputs. Defaults to define_state_vars, and developers should overload as required.
- define_state_vars()[source]
Method that returns a dictionary of state variables used in property package. Implement a placeholder method which returns an Exception to force users to overload this.
- get_energy_density_terms(p)[source]
Method which returns a valid expression for enthalpy density to use in the energy balances.
- get_enthalpy_flow_terms(p)[source]
Method which returns a valid expression for enthalpy flow to use in the energy balances.
- get_material_density_terms(p, j)[source]
Method which returns a valid expression for material density to use in the material balances .
- get_material_flow_basis()[source]
Method which returns an Enum indicating the basis of the material flow term.
- get_material_flow_terms(p, j)[source]
Method which returns a valid expression for material flow to use in the material balances.
- class watertap.property_models.unit_specific.anaerobic_digestion.adm1_properties_vapor.ADM1_vaporParameterBlock(*args, **kwds)
- Parameters:
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default - False.
ctype (class) –
Pyomo ctype of the block. Default - pyomo.environ.Block
Config args
- default_arguments
Default arguments to use with Property Package
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.
- Returns:
(ADM1_vaporParameterBlock) New instance
- class watertap.property_models.unit_specific.anaerobic_digestion.adm1_properties_vapor.ADM1_vaporParameterData(component)[source]
Property Parameter Block Class
- build()[source]
Callable method for Block construction.
- classmethod define_metadata(obj)[source]
Set all the metadata for properties and units.
This method should be implemented by subclasses. In the implementation, they should set information into the object provided as an argument.
- Parameters:
pcm (PropertyClassMetadata) – Add metadata to this object.
- Returns:
None
- class watertap.property_models.unit_specific.anaerobic_digestion.adm1_properties_vapor._ADM1_vaporStateBlock(*args, **kwds)[source]
This Class contains methods which should be applied to Property Blocks as a whole, rather than individual elements of indexed Property Blocks.
- initialize(state_args=None, state_vars_fixed=False, hold_state=False, outlvl=0, solver=None, optarg=None)[source]
Initialization routine for property package.
- Keyword Arguments:
state_args – Dictionary with initial guesses for the state vars chosen. Note that if this method is triggered through the control volume, and if initial guesses were not provided at the unit model level, the control volume passes the inlet values as initial guess.The keys for the state_args dictionary are:
flow_mol_comp – value at which to initialize component flows (default=None)
pressure – value at which to initialize pressure (default=None)
temperature – value at which to initialize temperature (default=None)
outlvl – sets output level of initialization routine
state_vars_fixed – Flag to denote if state vars have already been fixed. True - states have already been fixed and initialization does not need to worry about fixing and unfixing variables. False - states have not been fixed. The state block will deal with fixing/unfixing.
optarg – solver options dictionary object (default=None, use default solver options)
solver – str indicating which solver to use during initialization (default = None, use default solver)
hold_state – flag indicating whether the initialization routine should unfix any state variables fixed during initialization (default=False). True - states variables are not unfixed, and a dict of returned containing flags for which states were fixed during initialization. False - state variables are unfixed after initialization by calling the release_state method
- Returns:
If hold_states is True, returns a dict containing flags for which states were fixed during initialization.
- release_state(flags, outlvl=0)[source]
Method to release state variables fixed during initialization.
- Keyword Arguments:
flags – dict containing information of which state variables were fixed during initialization, and should now be unfixed. This dict is returned by initialize if hold_state=True.
outlvl – sets output level of logging
- class watertap.property_models.unit_specific.anaerobic_digestion.adm1_properties_vapor.ADM1_vaporStateBlockData(*args, **kwargs)[source]
StateBlock for calculating thermophysical properties associated with the ADM1 reaction system.
- build()[source]
Callable method for Block construction
- define_display_vars()[source]
Method used to specify components to use to generate stream tables and other outputs. Defaults to define_state_vars, and developers should overload as required.
- define_state_vars()[source]
Method that returns a dictionary of state variables used in property package. Implement a placeholder method which returns an Exception to force users to overload this.
- get_energy_density_terms(p)[source]
Method which returns a valid expression for enthalpy density to use in the energy balances.
- get_enthalpy_flow_terms(p)[source]
Method which returns a valid expression for enthalpy flow to use in the energy balances.
- get_material_density_terms(p, j)[source]
Method which returns a valid expression for material density to use in the material balances .
- get_material_flow_basis()[source]
Method which returns an Enum indicating the basis of the material flow term.
- get_material_flow_terms(p, j)[source]
Method which returns a valid expression for material flow to use in the material balances.
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_reactions.ModifiedADM1ReactionParameterBlock(*args, **kwds)
- Parameters:
rule (function) – A rule function or None. Default rule calls build().
concrete (bool) – If True, make this a toplevel model. Default - False.
ctype (class) –
Pyomo ctype of the block. Default - pyomo.environ.Block
Config args
- property_package
Reference to associated PropertyPackageParameter object
- default_arguments
Default arguments to use with Property Package
initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.
idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.
- Returns:
(ModifiedADM1ReactionParameterBlock) New instance
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_reactions.ModifiedADM1ReactionParameterData(component)[source]
Property Parameter Block Class
- build()[source]
Callable method for Block construction.
- classmethod define_metadata(obj)[source]
Set all the metadata for properties and units.
This method should be implemented by subclasses. In the implementation, they should set information into the object provided as an argument.
- Parameters:
pcm (PropertyClassMetadata) – Add metadata to this object.
- Returns:
None
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_reactions._ModifiedADM1ReactionBlock(*args, **kwds)[source]
This Class contains methods which should be applied to Reaction Blocks as a whole, rather than individual elements of indexed Reaction Blocks.
- default_scaler
alias of
ModifiedADM1ReactionScaler
- initialize(outlvl=0, **kwargs)[source]
Initialization routine for reaction package.
- Keyword Arguments:
outlvl – sets output level of initialization routine
- Returns:
None
- class watertap.property_models.unit_specific.anaerobic_digestion.modified_adm1_reactions.ModifiedADM1ReactionBlockData(*args, **kwargs)[source]
ReactionBlock for ADM1.
- build()[source]
Callable method for Block construction
- get_reaction_rate_basis()[source]
Method which returns an Enum indicating the basis of the reaction rate term.
References
[1] Batstone, D.J., Keller, J., Angelidaki, I., Kalyuzhnyi, S.V., Pavlostathis, S.G., Rozzi, A., Sanders, W.T.M., Siegrist, H.A. and Vavilin, V.A., 2002. The IWA anaerobic digestion model no 1 (ADM1). Water Science and technology, 45(10), pp.65-73. https://iwaponline.com/wst/article-abstract/45/10/65/6034
[2] Rosen, C. and Jeppsson, U., 2006. Aspects on ADM1 Implementation within the BSM2 Framework. Department of Industrial Electrical Engineering and Automation, Lund University, Lund, Sweden, pp.1-35. https://www.iea.lth.se/WWTmodels_download/TR_ADM1.pdf
[3] X. Flores-Alsina, K. Solon, C.K. Mbamba, S. Tait, K.V. Gernaey, U. Jeppsson, D.J. Batstone, 2016. Modelling phosphorus (P), sulfur (S) and iron (Fe) interactions for dynamic simulations of anaerobic digestion processes, Water Research. 95 370-382. https://www.sciencedirect.com/science/article/pii/S0043135416301397