Skip to content

ADM1 - Anaerobic Digestion Model No. 1 ​

IWA standard model for comprehensive anaerobic digestion simulation including biochemical and physicochemical processes

Overview ​

ADM1 (Anaerobic Digestion Model No. 1) is the internationally recognized biokinetic model developed by the IWA Task Group for Mathematical Modelling of Anaerobic Digestion Processes, published in 2002. It provides a comprehensive framework for simulating the complex biochemical and physicochemical processes occurring in anaerobic digesters, including hydrolysis, acidogenesis, acetogenesis, methanogenesis, and gas-liquid transfer.

When to Use ​

  • Anaerobic digesters (mesophilic and thermophilic)
  • Biogas production optimization
  • Sludge digestion and stabilization
  • Co-digestion studies
  • Process control and optimization
  • Volatile fatty acid (VFA) accumulation analysis
  • pH and alkalinity management
  • Aerobic processes (use ASM1, ASM2d, ASM3)
  • Short SRT systems (<10 days)
  • Highly simplified design calculations
  • Systems without adequate characterization data

State Variables ​

ADM1 uses 35 state variables in three categories: soluble components, particulate components, and cations/anions.

Soluble Components (12) ​

IndexSymbolDescriptionUnit
0S_suMonosaccharides (sugars)kg COD/m3
1S_aaAmino acidskg COD/m3
2S_faLong chain fatty acids (LCFA)kg COD/m3
3S_vaTotal valeratekg COD/m3
4S_buTotal butyratekg COD/m3
5S_proTotal propionatekg COD/m3
6S_acTotal acetatekg COD/m3
7S_h2Hydrogen gaskg COD/m3
8S_ch4Methane gaskg COD/m3
9S_ICInorganic carbonkmol C/m3
10S_INInorganic nitrogenkmol N/m3
11S_ISoluble inertskg COD/m3

Particulate Components (12) ​

IndexSymbolDescriptionUnit
12X_cCompositeskg COD/m3
13X_chCarbohydrateskg COD/m3
14X_prProteinskg COD/m3
15X_liLipidskg COD/m3
16X_suSugar degraderskg COD/m3
17X_aaAmino acid degraderskg COD/m3
18X_faLCFA degraderskg COD/m3
19X_c4Valerate and butyrate degraderskg COD/m3
20X_proPropionate degraderskg COD/m3
21X_acAcetoclastic methanogenskg COD/m3
22X_h2Hydrogenotrophic methanogenskg COD/m3
23X_IParticulate inertskg COD/m3

Cations and Anions (3) ​

IndexSymbolDescriptionUnit
24S_catCations (Na+, K+, etc.)kmol/m3
25S_anAnions (Cl-, etc.)kmol/m3
26S_hco3Bicarbonatekmol/m3

Gas Phase Components (3) ​

IndexSymbolDescriptionUnit
27S_gas,h2Hydrogen in gas phasekg COD/m3
28S_gas,ch4Methane in gas phasekg COD/m3
29S_gas,co2Carbon dioxide in gas phasekmol/m3

Biochemical Processes (19) ​

ADM1 includes 19 biochemical processes organized into five main categories.

Process Summary ​

#ProcessCategory
1DisintegrationExtracellular
2Hydrolysis of carbohydratesExtracellular
3Hydrolysis of proteinsExtracellular
4Hydrolysis of lipidsExtracellular
5Uptake of sugarsAcidogenesis
6Uptake of amino acidsAcidogenesis
7Uptake of LCFAAcetogenesis
8Uptake of valerateAcetogenesis
9Uptake of butyrateAcetogenesis
10Uptake of propionateAcetogenesis
11Uptake of acetateMethanogenesis
12Uptake of hydrogenMethanogenesis
13Decay of X_suDecay
14Decay of X_aaDecay
15Decay of X_faDecay
16Decay of X_c4Decay
17Decay of X_proDecay
18Decay of X_acDecay
19Decay of X_h2Decay

Process Hierarchy ​

Disintegration
    |
    +-- X_c -> X_ch + X_pr + X_li + X_I + S_I
    |
Hydrolysis
    |
    +-- X_ch -> S_su
    +-- X_pr -> S_aa
    +-- X_li -> S_fa + S_su
        |
Acidogenesis
    |
    +-- S_su -> S_bu + S_pro + S_ac + S_h2
    +-- S_aa -> S_va + S_bu + S_pro + S_ac + S_h2
        |
Acetogenesis
    |
    +-- S_fa -> S_ac + S_h2
    +-- S_va -> S_pro + S_ac + S_h2
    +-- S_bu -> S_ac + S_h2
    +-- S_pro -> S_ac + S_h2
        |
Methanogenesis
    |
    +-- S_ac -> S_ch4 + S_IC (acetoclastic)
    +-- S_h2 + S_IC -> S_ch4 (hydrogenotrophic)

Disintegration ​

Composite particulate matter (X_c) breaks down into carbohydrates, proteins, lipids, and inert fractions:

$$X_c \xrightarrow{k_{dis}} f_{ch,xc} \cdot X_{ch} + f_{pr,xc} \cdot X_{pr} + f_{li,xc} \cdot X_{li} + f_{xI,xc} \cdot X_I + f_{sI,xc} \cdot S_I$$

Rate: $$\rho_1 = k_{dis} \cdot X_c$$

Hydrolysis ​

First-order kinetics for conversion of polymers to monomers:

Carbohydrates: $$\rho_2 = k_{hyd,ch} \cdot X_{ch}$$

Proteins: $$\rho_3 = k_{hyd,pr} \cdot X_{pr}$$

Lipids: $$\rho_4 = k_{hyd,li} \cdot X_{li}$$

Acidogenesis ​

Uptake of monomers by acidogenic bacteria with Monod kinetics:

Sugar uptake: $$\rho_5 = k_{m,su} \cdot \frac{S_{su}}{K_{S,su} + S_{su}} \cdot X_{su} \cdot I_5$$

Amino acid uptake: $$\rho_6 = k_{m,aa} \cdot \frac{S_{aa}}{K_{S,aa} + S_{aa}} \cdot X_{aa} \cdot I_6$$

Acetogenesis ​

Uptake of LCFA and VFAs by syntrophic bacteria:

LCFA uptake: $$\rho_7 = k_{m,fa} \cdot \frac{S_{fa}}{K_{S,fa} + S_{fa}} \cdot X_{fa} \cdot I_7$$

Valerate uptake: $$\rho_8 = k_{m,c4} \cdot \frac{S_{va}}{K_{S,c4} + S_{va}} \cdot X_{c4} \cdot \frac{S_{va}}{S_{bu} + S_{va} + \epsilon} \cdot I_8$$

Butyrate uptake: $$\rho_9 = k_{m,c4} \cdot \frac{S_{bu}}{K_{S,c4} + S_{bu}} \cdot X_{c4} \cdot \frac{S_{bu}}{S_{bu} + S_{va} + \epsilon} \cdot I_9$$

Propionate uptake: $$\rho_{10} = k_{m,pro} \cdot \frac{S_{pro}}{K_{S,pro} + S_{pro}} \cdot X_{pro} \cdot I_{10}$$

Methanogenesis ​

Final methane production via two pathways:

Acetoclastic methanogenesis: $$\rho_{11} = k_{m,ac} \cdot \frac{S_{ac}}{K_{S,ac} + S_{ac}} \cdot X_{ac} \cdot I_{11}$$

$$CH_3COOH \rightarrow CH_4 + CO_2$$

Hydrogenotrophic methanogenesis: $$\rho_{12} = k_{m,h2} \cdot \frac{S_{h2}}{K_{S,h2} + S_{h2}} \cdot X_{h2} \cdot I_{12}$$

$$4H_2 + CO_2 \rightarrow CH_4 + 2H_2O$$

Biomass Decay ​

First-order decay of all seven biomass groups: $$\rho_{13-19} = k_{dec,i} \cdot X_i$$

Where i = su, aa, fa, c4, pro, ac, h2

Inhibition Functions ​

ADM1 incorporates multiple inhibition mechanisms to capture process limitations.

pH Inhibition ​

ErgoPlanner uses the IWA lower-inhibition exponential form in every tier (C# reference, browser preview, Rust engine); it is pinned by the parity benchmark:

$$I_{pH} = \begin{cases} 1 & pH \ge pH_{UL} \ \exp\left(-3 \cdot \left(\frac{pH - pH_{UL}}{pH_{UL} - pH_{LL}}\right)^2\right) & pH < pH_{UL} \end{cases}$$

There is no hard cut-off below pH_LL: the factor keeps decaying smoothly. Three organism groups carry their own limits: acidogens and acetogens (aa), acetoclastic methanogens (ac) and hydrogenotrophic methanogens (h2).

Where:

  • pH_UL = upper pH limit (no inhibition above it)
  • pH_LL = lower pH limit (sets the width of the transition band)

Hydrogen Inhibition ​

Non-competitive inhibition on LCFA and VFA degraders:

$$I_{h2} = \frac{K_{I,h2}}{K_{I,h2} + S_{h2}}$$

Applied to processes 7-10 (acetogenesis).

Free Ammonia Inhibition ​

Non-competitive inhibition on acetoclastic methanogens:

$$I_{NH3} = \frac{K_{I,NH3}}{K_{I,NH3} + S_{NH3}}$$

Free ammonia concentration: $$S_{NH3} = \frac{S_{IN} \cdot K_{a,NH4}}{K_{a,NH4} + [H^+]}$$

Combined Inhibition Terms ​

For sugar and amino-acid uptake (processes 5-6): $$I_{5,6} = I_{pH,aa} \cdot I_{IN,lim}$$

For LCFA, valerate/butyrate and propionate uptake (processes 7-10), each with its own hydrogen constant: $$I_{7-10} = I_{pH,aa} \cdot I_{IN,lim} \cdot I_{h2}$$

For acetoclastic methanogens (process 11): $$I_{11} = I_{pH,ac} \cdot I_{IN,lim} \cdot I_{NH3}$$

For hydrogenotrophic methanogens (process 12): $$I_{12} = I_{pH,h2} \cdot I_{IN,lim}$$

Where I_IN,lim represents inorganic-nitrogen limitation: $$I_{IN,lim} = \frac{S_{IN}}{K_{S,IN} + S_{IN}}$$

Disintegration, hydrolysis and decay are not inhibited.

Physicochemical Processes ​

Acid-Base Equilibria ​

ADM1 includes six acid-base pairs in equilibrium:

Carbon dioxide system: $$CO_2 + H_2O \leftrightarrow HCO_3^- + H^+$$ $$K_{a,CO2} = \frac{[HCO_3^-][H^+]}{[CO_2]} = 10^{-6.35}$$

Ammonia system: $$NH_4^+ \leftrightarrow NH_3 + H^+$$ $$K_{a,NH4} = \frac{[NH_3][H^+]}{[NH_4^+]} = 10^{-9.25}$$

VFA dissociation (acetate example): $$HAc \leftrightarrow Ac^- + H^+$$ $$K_{a,ac} = 10^{-4.76}$$

Charge balance: $$S_{cat} + [NH_4^+] + [H^+] = S_{an} + [HCO_3^-] + [Ac^-] + [Pro^-] + [Bu^-] + [Va^-] + [OH^-]$$

Gas-Liquid Transfer ​

Dissolved H2, CH4 and CO2 move between the liquid and the headspace by two-film transfer with Henry's law at the operating temperature (Batstone et al. 2002; BSM2 form, Rosen & Jeppsson 2006). A positive rate means gas leaves the liquid:

$$\rho_{T,h2} = k_La \cdot (S_{h2} - 16 \cdot K_{H,h2} \cdot p_{h2})$$ $$\rho_{T,ch4} = k_La \cdot (S_{ch4} - 64 \cdot K_{H,ch4} \cdot p_{ch4})$$ $$\rho_{T,co2} = k_La \cdot (S_{CO2} - K_{H,co2} \cdot p_{co2})$$

Where:

  • k_La = volumetric mass transfer coefficient (1/d, 200 by default)
  • S_CO2 = dissolved CO2(aq), taken from the carbonate speciation of S_IC at the current pH
  • K_H,i = Henry's law coefficient (M/bar), corrected to the operating temperature
  • 16 and 64 = kg COD per kmol of H2 and CH4
  • p_i = headspace partial pressure (bar): p_h2 = S_gas,h2 · RT/16, p_ch4 = S_gas,ch4 · RT/64, p_co2 = S_gas,co2 · RT, with R = 0.083145 bar·m3/kmol/K

Henry's law coefficients at 35C:

GasK_H (M/bar)
H27.38 x 10^-4
CH41.16 x 10^-3
CO22.71 x 10^-2

Headspace and Biogas Flow ​

The headspace holds the three gas-phase states. Gas arrives by transfer and leaves through the outlet, which is held at a fixed pressure (atmospheric):

$$\frac{dS_{gas,i}}{dt} = -S_{gas,i} \cdot \frac{q_{gas}}{V_{gas}} + \frac{V_{liq}}{V_{gas}} \cdot \rho_{T,i}$$

$$q_{gas} = \max\left(0,; k_p \cdot (P_{gas} - P_{atm})\right), \quad P_{gas} = p_{h2} + p_{ch4} + p_{co2} + p_{H2O}$$

The water vapour pressure follows the BSM2 expression, 0.0557 bar at 35C. The outlet coefficient k_p defaults to the BSM2 value (5.0 x 10^4 m3/d/bar for a 3400 m3 digester); the browser preview scales it with the liquid volume. Setting k_p to 0 closes the headspace: no biogas leaves, which is useful for mass-balance checks.

Time Integration ​

The reactor equations (liquid plus headspace) are advanced with the classic four-stage Runge-Kutta (RK4) method at a fixed step:

  • Browser preview: RK4 with your step size. The headspace makes the equations stiff (relaxation times under a minute at full scale), so each step is split automatically into substeps inside the explicit stability limit.
  • Rust engine: a semi-implicit mode is the default (the fast gas and hydrogen states are solved implicitly, the slow states with RK4). Classic explicit RK4 on all 27 states is available as an option for comparison against the reference.

Parameters ​

Kinetic Parameters (Mesophilic, 35C) ​

ParameterSymbolDefaultUnitDescription
Disintegration ratek_dis0.51/dComposite breakdown
Hydrolysis carbohydratesk_hyd,ch10.01/dCarbohydrate hydrolysis
Hydrolysis proteinsk_hyd,pr10.01/dProtein hydrolysis
Hydrolysis lipidsk_hyd,li10.01/dLipid hydrolysis
Max uptake sugarsk_m,su30.01/dSugar uptake
Max uptake amino acidsk_m,aa50.01/dAmino acid uptake
Max uptake LCFAk_m,fa6.01/dLCFA uptake
Max uptake valerate/butyratek_m,c420.01/dC4 VFA uptake
Max uptake propionatek_m,pro13.01/dPropionate uptake
Max uptake acetatek_m,ac8.01/dAcetate uptake
Max uptake hydrogenk_m,h235.01/dH2 uptake

Half-Saturation Coefficients ​

ParameterSymbolDefaultUnit
K_S,suK_S_su0.5kg COD/m3
K_S,aaK_S_aa0.3kg COD/m3
K_S,faK_S_fa0.4kg COD/m3
K_S,c4K_S_c40.2kg COD/m3
K_S,proK_S_pro0.1kg COD/m3
K_S,acK_S_ac0.15kg COD/m3
K_S,h2K_S_h27 x 10^-6kg COD/m3
K_S,INK_S_IN1 x 10^-4kmol N/m3

Decay Rates ​

ParameterSymbolDefaultUnit
Decay sugar degradersk_dec,su0.021/d
Decay AA degradersk_dec,aa0.021/d
Decay LCFA degradersk_dec,fa0.021/d
Decay C4 degradersk_dec,c40.021/d
Decay propionate degradersk_dec,pro0.021/d
Decay acetoclastic methanogensk_dec,ac0.021/d
Decay H2 methanogensk_dec,h20.021/d

Inhibition Parameters ​

ParameterSymbolDefaultUnit
pH upper limit (acetogens)pH_UL_aa5.5-
pH lower limit (acetogens)pH_LL_aa4.0-
pH upper limit (acetoclastic)pH_UL_ac7.0-
pH lower limit (acetoclastic)pH_LL_ac6.0-
H2 inhibition constantK_I,h23.5 x 10^-6kg COD/m3
Free ammonia inhibitionK_I,NH31.8 x 10^-3kmol N/m3

Stoichiometric Parameters ​

ParameterSymbolDefaultUnit
Yield sugar degradersY_su0.10kg COD/kg COD
Yield AA degradersY_aa0.08kg COD/kg COD
Yield LCFA degradersY_fa0.06kg COD/kg COD
Yield C4 degradersY_c40.06kg COD/kg COD
Yield propionate degradersY_pro0.04kg COD/kg COD
Yield acetoclasticY_ac0.05kg COD/kg COD
Yield hydrogenotrophicY_h20.06kg COD/kg COD

Disintegration/Hydrolysis Fractions ​

ParameterSymbolDefault
f_sI,xcf_sI_xc0.10
f_xI,xcf_xI_xc0.20
f_ch,xcf_ch_xc0.20
f_pr,xcf_pr_xc0.20
f_li,xcf_li_xc0.30
f_fa,lif_fa_li0.95
f_h2,suf_h2_su0.19
f_bu,suf_bu_su0.13
f_pro,suf_pro_su0.27
f_ac,suf_ac_su0.41

Temperature Effects ​

Arrhenius Temperature Correction ​

$$k(T) = k(T_{ref}) \cdot \exp\left[\frac{E_a}{R}\left(\frac{1}{T_{ref}} - \frac{1}{T}\right)\right]$$

Where:

  • E_a = activation energy (J/mol)
  • R = gas constant (8.314 J/mol/K)
  • T = absolute temperature (K)
  • T_ref = reference temperature (typically 308 K for mesophilic)

Typical Activation Energies ​

Process GroupE_a (kJ/mol)
Hydrolysis20-40
Acidogenesis40-60
Acetogenesis50-70
Methanogenesis60-80

Temperature Ranges ​

RegimeTemperature RangeOptimal
Psychrophilic10-20C15C
Mesophilic30-40C35C
Thermophilic50-60C55C

Temperature-Dependent Parameters ​

At thermophilic conditions (55C), rates typically increase 2-3x compared to mesophilic, but:

  • Free ammonia inhibition increases
  • Propionate accumulation more common
  • Process more sensitive to disturbances

ASM-ADM1 Interface ​

When coupling aerobic and anaerobic systems, state variables must be transformed.

ASM to ADM1 Transformation ​

ASM VariableADM1 Variable(s)
X_SX_c (composites)
X_BH, X_BAX_c (composites)
X_PX_c (composites)
S_SS_su, S_aa (split by f_aa)
S_IS_I
X_IX_I
S_NHS_IN
S_NONot used (denitrification separate)

COD-Based Mapping ​

Primary sludge characteristics: $$f_{ch,PS} = 0.30, \quad f_{pr,PS} = 0.25, \quad f_{li,PS} = 0.25, \quad f_{I,PS} = 0.20$$

Waste activated sludge characteristics: $$f_{ch,WAS} = 0.20, \quad f_{pr,WAS} = 0.50, \quad f_{li,WAS} = 0.10, \quad f_{I,WAS} = 0.20$$

Example Interface Configuration ​

json
{
  "primarySludge": {
    "COD": 50000,
    "fractions": {
      "carbohydrates": 0.30,
      "proteins": 0.25,
      "lipids": 0.25,
      "inerts": 0.20
    }
  },
  "wasActivatedSludge": {
    "COD": 30000,
    "fractions": {
      "carbohydrates": 0.20,
      "proteins": 0.50,
      "lipids": 0.10,
      "inerts": 0.20
    }
  }
}

Configuration in ErgoPlanner ​

Enabling ADM1 ​

  1. Select anaerobic digester unit
  2. Set Calculation Mode to Advanced
  3. Select Biokinetic Model: ADM1
  4. Configure influent characterization
  5. Set temperature (mesophilic/thermophilic)
  6. Configure kinetic parameters (or use defaults)
  7. Run simulation

Parameter Input ​

json
{
  "model": "adm1",
  "temperature": 35,
  "volume": 5000,
  "parameters": {
    "disintegration": {
      "k_dis": 0.5,
      "f_sI_xc": 0.10,
      "f_xI_xc": 0.20,
      "f_ch_xc": 0.20,
      "f_pr_xc": 0.20,
      "f_li_xc": 0.30
    },
    "hydrolysis": {
      "k_hyd_ch": 10.0,
      "k_hyd_pr": 10.0,
      "k_hyd_li": 10.0
    },
    "uptake": {
      "k_m_su": 30.0,
      "k_m_aa": 50.0,
      "k_m_fa": 6.0,
      "k_m_c4": 20.0,
      "k_m_pro": 13.0,
      "k_m_ac": 8.0,
      "k_m_h2": 35.0
    },
    "halfSaturation": {
      "K_S_su": 0.5,
      "K_S_aa": 0.3,
      "K_S_fa": 0.4,
      "K_S_c4": 0.2,
      "K_S_pro": 0.1,
      "K_S_ac": 0.15,
      "K_S_h2": 7e-6
    },
    "inhibition": {
      "K_I_h2_fa": 5e-6,
      "K_I_h2_c4": 1e-5,
      "K_I_h2_pro": 3.5e-6,
      "K_I_NH3": 1.8e-3,
      "pH_UL_aa": 5.5,
      "pH_LL_aa": 4.0,
      "pH_UL_ac": 7.0,
      "pH_LL_ac": 6.0
    },
    "yields": {
      "Y_su": 0.10,
      "Y_aa": 0.08,
      "Y_fa": 0.06,
      "Y_c4": 0.06,
      "Y_pro": 0.04,
      "Y_ac": 0.05,
      "Y_h2": 0.06
    },
    "decay": {
      "k_dec_all": 0.02
    },
    "gasTransfer": {
      "k_La": 200.0,
      "K_H_h2": 7.38e-4,
      "K_H_ch4": 1.16e-3,
      "K_H_co2": 2.71e-2
    }
  }
}

Outputs ​

Biogas Production ​

Key outputs include:

OutputUnitDescription
Q_gasm3/dTotal biogas flow
Q_ch4m3/dMethane flow
Q_co2m3/dCO2 flow
CH4 content%Methane percentage
Specific gas productionm3/kg VSPer VS destroyed

Theoretical methane yield: $$Y_{CH4,theoretical} = \frac{350 \cdot (1-Y)}{1000} \text{ Nm}^3 \text{ CH}4/\text{kg COD}$$

Where 350 L CH4/kg COD is the theoretical maximum at STP.

Digestate Quality ​

ParameterTypical RangeUnit
VS destruction45-55%%
COD removal50-60%%
pH7.0-7.5-
Alkalinity2500-5000mg CaCO3/L
VFA (as acetate)<500mg/L
Ammonia500-1500mg N/L

Process Diagnostics ​

IndicatorHealthy RangeWarning
VFA/Alkalinity ratio<0.3>0.4
pH6.8-7.4<6.5 or >7.8
Propionate/Acetate<1.4>2.0
H2 in biogas<100 ppm>500 ppm
CH4 content55-70%<50%

Example: Municipal Sludge Digester ​

Configuration ​

ParameterValue
Volume5,000 m3
Temperature35C
HRT/SRT20 days
MixingComplete

Influent (Mixed Primary + WAS) ​

ParameterValue
Flow250 m3/d
Total COD60 kg COD/m3
VS40 kg/m3
VS/TS0.75
TKN2.5 kg N/m3

Expected Results ​

ParameterValue
Biogas production3,000-3,500 m3/d
CH4 content60-65%
VS destruction50-55%
Effluent VFA<300 mg/L
pH7.1-7.3
NH4-N800-1,200 mg/L

Calibration Guidelines ​

Key Parameters to Calibrate ​

  1. k_dis - Disintegration rate (most important for sludge)
  2. k_hyd,ch/pr/li - Hydrolysis rates
  3. f fractions - Substrate composition
  4. k_m,ac - Acetoclastic methanogen uptake
  5. K_I,NH3 - Ammonia inhibition constant

Calibration Procedure ​

  1. Determine influent characterization (COD fractionation)
  2. Match steady-state biogas production with k_dis, k_hyd
  3. Match VFA profiles with uptake parameters
  4. Validate pH predictions
  5. Check ammonia inhibition effects
  6. Dynamic validation with step changes

Common Issues ​

IssueLikely CauseParameter Adjustment
Low CH4Inhibition activeCheck pH, NH3, H2
VFA accumulationSlow methanogenesisIncrease k_m,ac
pH dropOverloadingReduce OLR, check alkalinity
Poor VS destructionSlow hydrolysisIncrease k_hyd values

Troubleshooting ​

IssueADM1 IndicatorSolution
Low gas productionLow X_ac, X_h2Reduce OLR, check temperature
SouringHigh S_ac, S_proAdd alkalinity, reduce feed
FoamingHigh S_faReduce lipids, add antifoam
Ammonia inhibitionHigh S_INDilute feed, co-digest with low-N substrate
Unstable pHLow S_ICAdd alkalinity buffer
H2 accumulationLow X_h2 activityCheck trace elements, reduce OLR

Limitations ​

  1. No sulfate reduction - SRB competition not modeled
  2. Simplified disintegration - Single composite class
  3. Homogeneous mixing - No spatial gradients
  4. No trace nutrients - Micronutrient limitations ignored
  5. Fixed stoichiometry - No adaptation to substrate changes
  6. Two methanogenic pathways - Syntrophic acetate oxidation not included
  7. Many parameters - Requires extensive calibration data
  8. pH calculation - Can be numerically challenging
  9. Dissolved hydrogen is stiff - In the browser preview, a very large hydrogenotroph population can drive dissolved H2 to its floor within one step; use a smaller time step if H2 oscillates. The Rust engine's default semi-implicit mode does not have this limitation.

Extensions ​

ADM1-S (Sulfate Reduction) ​

Adds sulfate reduction pathway:

  • S_SO4 -> S_H2S
  • H2S inhibition of methanogens
  • Competition between SRB and methanogens

ADM1-Nit ​

Adds nitritation in digester effluent:

  • For partial nitritation treatment
  • Integration with anammox

ADM1-P ​

Adds phosphorus dynamics:

  • Struvite precipitation
  • Phosphorus release and uptake

Advanced Topics ​

Co-digestion ​

For co-digestion, characterize each substrate:

json
{
  "substrates": [
    {
      "name": "Primary Sludge",
      "flowFraction": 0.6,
      "COD": 60000,
      "fractions": {"ch": 0.30, "pr": 0.25, "li": 0.25}
    },
    {
      "name": "Food Waste",
      "flowFraction": 0.4,
      "COD": 150000,
      "fractions": {"ch": 0.50, "pr": 0.20, "li": 0.20}
    }
  ]
}

Trace Element Limitation ​

Optional extension for trace element effects:

$$I_{TE} = \frac{S_{TE}}{K_{S,TE} + S_{TE}}$$

Critical trace elements:

  • Cobalt (Co) - B12 synthesis
  • Nickel (Ni) - F430 cofactor
  • Selenium (Se) - Selenocysteine
  • Tungsten (W) - Formylmethanofuran

Validation ​

IWA STR21 Benchmark Cases ​

ADM1 should reproduce:

  1. Steady-state biogas production within 10%
  2. VFA profiles during overload
  3. Recovery after inhibition events
  4. Response to temperature changes

Model Verification Checklist ​

  • Mass balance closure (COD, N, C)
  • pH within expected range
  • Biogas composition matches measurements
  • VFA profiles during transients
  • Response to organic load changes
  • ASM1 - Activated sludge model for aerobic processes
  • ASM2d - Extended model with biological P removal
  • ASM3 - Storage-based activated sludge model
  • Sumo2N - Two-step nitrification model

References ​

  1. Batstone, D.J. et al. (2002). "The IWA Anaerobic Digestion Model No. 1 (ADM1)." Water Science and Technology, 45(10), 65-73.
  2. IWA Task Group (2002). "Anaerobic Digestion Model No. 1 (ADM1)." IWA Scientific and Technical Report No. 13.
  3. Rosen, C. & Jeppsson, U. (2006). "Aspects on ADM1 Implementation within the BSM2 Framework." Technical Report, Lund University.
  4. Batstone, D.J. et al. (2015). "Mathematical Modelling of Anaerobic Digestion Processes: Applications and Future Needs." Reviews in Environmental Science and Bio/Technology.
  5. Donoso-Bravo, A. et al. (2011). "Model selection, identification and validation in anaerobic digestion." Water Research, 45(17), 5347-5364.
  6. Siegrist, H. et al. (2002). "Mathematical model for meso- and thermophilic anaerobic sewage sludge digestion." Environmental Science & Technology.