Anaerobic Reactor

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

Yalin Li <mailto.yalin.li@gmail.com>

Joy Zhang <joycheung1994@gmail.com>

This module is under the University of Illinois/NCSA Open Source License. Please refer to https://github.com/QSD-Group/QSDsan/blob/main/LICENSE.txt for license details.

class qsdsan.sanunits._anaerobic_reactor.AnaerobicBaffledReactor(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, degraded_components=('OtherSS',), if_capture_biogas=True, if_N2O_emission=False, **kwargs)

Anaerobic baffled reactor with the production of biogas based on Trimmer et al.

To enable life cycle assessment, the following impact items should be pre-constructed: Concrete, Gravel, Excavation.

Parameters:
  • ins (Iterable(stream)) – Waste for treatment.

  • outs (Iterable(stream)) – Treated waste, biogas, fugitive CH4, and fugitive N2O.

Examples

bwaise systems

References

[1] Trimmer et al., Navigating Multidimensional Social–Ecological System Trade-Offs across Sanitation Alternatives in an Urban Informal Settlement. Environ. Sci. Technol. 2020, 54 (19), 12641–12653. https://doi.org/10.1021/acs.est.0c03296.

property COD_removal

[float] Fraction of COD removed during treatment.

property N_baffle

[int] Number of reactors, float will be converted to the smallest integer.

property N_reactor

[int] Number of reactors, float will be converted to the smallest integer.

property N_removal

[float] Fraction of N removed during treatment.

property add_concrete

[float] Additional concrete as a fraction of the reactor concrete usage to account for receiving basin and biogas tank.

property concrete_thickness

[float] Thickness of the concrete wall.

line: str = 'Anaerobic baffled reactor'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

property reactor_H

[float] Reactor height, [m].

property reactor_L

[float] Reactor length, [m].

property reactor_W

[float] Reactor width, [m].

property tau

[float] Residence time, [d].

class qsdsan.sanunits._anaerobic_reactor.AnaerobicCSTR(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', V_liq=3400, V_gas=300, model=None, T=308.15, headspace_P=1.013, external_P=1.013, pipe_resistance=50000.0, fixed_headspace_P=False, retain_cmps=(), fraction_retain=0.95, isdynamic=True, exogenous_vars=(), **kwargs)

An anaerobic continuous stirred tank reactor with biogas in headspace. [1], [2]

Parameters:
  • ins (WasteStream) – Influent to the reactor.

  • outs (Iterable) – Biogas and treated effluent(s).

  • V_liq (float, optional) – Liquid-phase volume [m^3]. The default is 3400.

  • V_gas (float, optional) – Headspace volume [m^3]. The default is 300.

  • model (Processes, optional) – The kinetic model, typically ADM1-like. The default is None.

  • T (float, optional) – Operation temperature [K]. The default is 308.15.

  • headspace_P (float, optional) – Headspace pressure, if fixed [bar]. The default is 1.013.

  • external_P (float, optional) – External pressure, typically atmospheric pressure [bar]. The default is 1.013.

  • pipe_resistance (float, optional) – Biogas extraction pipe resistance [m3/d/bar]. The default is 5.0e4.

  • fixed_headspace_P (bool, optional) – Whether to assume fixed headspace pressure. The default is False.

  • retain_cmps (Iterable[str], optional) – IDs of the components that are assumed to be retained in the reactor, ideally. The default is ().

  • fraction_retain (float, optional) – The assumed fraction of ideal retention of select components. The default is 0.95.

References

property DO_ID

Not applicable.

property V_liq

[float] The designed maximum liquid volume, not accounting for increased volume due to aeration, in m^3.

property aeration

Not applicable

property external_P

External (atmospheric) pressure [bar].

property fixed_headspace_P

Headspace total pressure [bar].

property headspace_P

Headspace total pressure [bar].

ideal_gas_law(p=None, S=None)

Calculates partial pressure [bar] given concentration [M] at operation temperature or vice versa according to the ideal gas law .

line: str = 'Anaerobic CSTR'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

property model

[CompiledProcesses or NoneType] Suspended growth model.

p_vapor(convert_to_bar=True)

Calculates the saturated vapor pressure at operation temperature.

property pipe_resistance

Gas pipe resistance coefficient [m3/d/bar].

property split

[numpy.1darray or NoneType] The volumetric split of outs.

property state

The state of the anaerobic CSTR, including component concentrations [kg/m3], biogas concentrations in the headspace [M biogas], and liquid flow rate [m^3/d].

class qsdsan.sanunits._anaerobic_reactor.AnaerobicDigestion(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, flow_rate=None, degraded_components=('OtherSS',), if_capture_biogas=True, if_N2O_emission=False, **kwargs)

Anaerobic digestion of wastes with the production of biogas based on Trimmer et al.

To enable life cycle assessment, the following impact items should be pre-constructed: Concrete, Excavation.

Cost is calculated by the unit cost of the impact items and their quantities.

Parameters:
  • ins (Iterable) – Waste for treatment.

  • outs (Iterable) – Treated waste, captured biogas, fugitive CH4, and fugitive N2O.

  • flow_rate (float) – Total flow rate through the reactor (for sizing purpose), [m3/d]. If not provided, will use F_vol_in.

Examples

bwaise systems

References

[1] Trimmer et al., Navigating Multidimensional Social–Ecological System Trade-Offs across Sanitation Alternatives in an Urban Informal Settlement. Environ. Sci. Technol. 2020, 54 (19), 12641–12653. https://doi.org/10.1021/acs.est.0c03296.

property COD_removal

[float] Fraction of COD removed during treatment.

property N_reactor

[int] Number of reactors, float will be converted to the smallest integer.

property aspect_ratio

[float] Diameter-to-height ratio of the reactor.

property concrete_thickness

[float] Thickness of the concrete wall.

property flow_rate

[float] Total flow rate through the reactor (for sizing purpose), [m3/d]. If not provided, will calculate based on F_vol_in.

property headspace_frac

[float] Fraction of the reactor volume for headspace gas.

line: str = 'Anaerobic digestion'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

property tau

[float] Residence time, [d].

class qsdsan.sanunits._anaerobic_reactor.SludgeDigester(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=False, F_BM_default=1, HRT=20, SRT=20, T=308.15, Y=0.08, b=0.03, organics_conversion=0.7, COD_factor=1.42, methane_yield=0.4, methane_fraction=0.65, depth=10, heat_transfer_coeff={'ceiling': 0.95, 'floor': 1.7, 'wall': 0.7}, wall_concrete_unit_cost=24, slab_concrete_unit_cost=13, excavation_unit_cost=0.3, F_BM={'Pump': 1.1800826, 'Pump building': 1.1800826}, lifetime={'Pump': 15, 'Pump pipe stainless steel': 15, 'Pump stainless steel': 15}, **kwargs)

A conventional digester for anaerobic digestion of sludge as in Shoener et al..

Note that the CompiledComponents object set in system simulation must have defined active_biomass.

Parameters:
  • ins (Iterable(stream)) – Sludge for digestion.

  • outs (Iterable(stream)) – Digested sludge, generated biogas.

  • HRT (float) – Hydraulic retention time, [d].

  • SRT (float) – Solids retention time, [d].

  • T (float) – Temperature within the digester, [K].

  • Y (float) – Biomass yield, [mg VSS/mg BOD].

  • b (float) – Endogenous decay coefficient, [1/d].

  • organics_conversion (float) – Conversion of the organics (i.e., COD) of the sludge in fraction (i.e., 0.7 for 70%).

  • COD_factor (float) – Biomass-to-COD conversion factor, [g COD/g VSS].

  • methane_yield (float) – Methane yield from the digested organics, [m3/kg].

  • methane_fraction (float) – Fraction of methane in the biogas, the rest is assumed to be CO2.

  • depth (float) – Side depth of the digester, [m].

  • heat_transfer_coeff (dict) – Heat transfer coefficients for heat loss calculation, [W/m2/°C], keys should contain “wall”, “floor”, and “ceiling”.

  • wall_concrete_unit_cost (float) – Unit cost of the wall concrete, [UDS/ft3].

  • slab_concrete_unit_cost (float) – Unit cost of the slab concrete, [UDS/ft3].

  • excavation_unit_cost (float) – Unit cost of the excavation activity, [UDS/ft3].

References

[1] Shoener, B. D.; Zhong, C.; Greiner, A. D.; Khunjar, W. O.; Hong, P.-Y.; Guest, J. S.

Design of Anaerobic Membrane Bioreactors for the Valorization of Dilute Organic Carbon Waste Streams. Energy Environ. Sci. 2016, 9 (3), 1102–1112. https://doi.org/10.1039/C5EE03715H.

property D_PB

[float] Depth of the pump building, [ft].

property L_PB

[float] Length of the pump building, [ft].

property T_air

[float] Temperature of the air, [K].

property T_earth

[float] Temperature of the air, [K].

property W_PB

[float] Width of the pump building, [ft].

auxiliary_unit_names: tuple[str, ...] = ('heat_exchanger',)

class-attribute Name of attributes that are auxiliary units. These units will be accounted for in the purchase and installed equipment costs without having to add these costs in the baseline_purchase_costs dictionary. Heat and power utilities are also automatically accounted for.

property constr_access

[float] Extra room for construction access, [ft].

property excav_slope

[float] Slope for excavation (horizontal/vertical).

property freeboard

[float] Freeboard added to the depth of the reactor tank, [ft].

line: str = 'Sludge digester'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

property t_slab

[float] Concrete slab thickness, [ft], default to be 2 in thicker than the wall thickness.

property t_wall

[float] Concrete wall thickness, [ft].