Internal Circulation Reactor

class qsdsan.sanunits.InternalCirculationRx(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, *, method='lumped', biomass_ID='WWTsludge', OLRall=1.25, Y_biogas=0.86, Y_biomass=0.05, biodegradability=1.0, vessel_type='IC', vessel_material='Stainless steel', V_wf=0.8, kW_per_m3=0.0, T=308.15, init_with='WasteStream', **kwargs)

Internal circulation (IC) reactor for anaerobic digestion (AD), including a high-rate bottom reactor for rapid organic removal and a low-rate top reactor for polishing. Both reactors are similar to upflow anaerobic blanket reactor (UASB).

Design of the reactor follows steps described in [1] (assuming steady state and pseudo-zeroth-order kinetics), where two methods are used based on Irizar et al.[2]_ and Tchobanoglous et al.[3]_.

Parameters:
  • ins (Inlets(obj)) – Influent.

  • outs (Outlets(obj)) – Biogas, effluent, waste sludge.

  • method (str) –

    Either “separate” to design the bottom and top reactors separately as in [2] , or “lumped” to design the entire IC reactor as a black box following [3] .

    In “separate” method, design parameters include:
    • OLRall, biodegradability, Y, q_Qw, mu_max, b, Fxt, and Fxb

    In “lumped” method, design parameters include:
    • OLRall, biodegradability, Y, q_Qw, and q_Xw

  • biomass_ID (str) – ID of the Component that represents the biomass.

  • OLRall (float) – Overall organic loading rate, [kg COD/m3/hr].

  • Y_biogas (float) – Biogas yield, [kg biogas/kg consumed COD].

  • Y_biomass (float) – Biomass yield, [kg biomass/kg consumed COD].

  • biodegradability (float or dict) – Biodegradability of components, when shown as a float, all biodegradable components are assumed to have the same degradability.

  • q_Qw (float) – Ratio between the bottom reactor waste flow and the influent.

  • q_Xw (float) – Ratio between the biomass concentration in the reactor and the waste flow.

  • mu_max (float) – Maximum specific growth rate, [/hr].

  • b (float) – Specific endogenous decay coefficient, [/hr].

  • V_wf (float) – Fraction of working volume over total volume.

  • vessel_type (str) – Can be “IC” to use the reactor size constraints according to [1], or “Conventional” based on biosteam.MixTank (much smaller tank size, not recommended).

  • vessel_material (str) – Vessel material.

  • kW_per_m3 (float) – Electricity requirement per unit volume, [kW/m^3]. Default to 0 as IC reactors realizes mixing through internal circulation caused by the rising force of the generated biogas.

  • T (float) – Temperature of the reactor. Will not control temperature if provided as None.

  • kwargs (dict) – Other keyword arguments (e.g., Fxb, Fxt).

References

property Fxb

[float] Biomass transfer ratio from the bottom reactor to the top reactor, should be within [0, 1] (ideal to no retention), only relevant when the “separate” method is used.

property Fxt

[float] Biomass transfer ratio from the top reactor to the effluent, should be within [0, 1] (ideal to no retention), only relevant when the “separate” method is used.

property HRT

[float] Hydraulic retention time [hr].

property OLRall

[float] Overall organic loading rate, [kg COD/m3/hr].

property Qe

[float] Effluent volumetric flow rate, [m3/hr].

property Qi

[float] Influent volumetric flow rate, [m3/hr].

property Qw

[float] Waste flow volumetric flow rate, [m3/hr].

property SRT

[float] Solid residence time [hr].

property Se

[float] Effluent substrate (i.e., biodegradable components) concentration, [kg/m3].

property Si

[float] Influent substrate (i.e., biodegradable components) concentration, [kg/m3].

property Sw

[float] Waste flow substrate (i.e., biodegradable components) concentration, [kg/m3].

property Vb

[float] Volume of the bottom reactor, [m3], only relevant when the “separate” method is used.

property Vliq

[float] Total volume of the liquid, not considering gas headspace and V_wf, [m3].

property Vt

[float] Volume of the top reactor, [m3], only relevant when the “separate” method is used.

property Vtot

[float] Total volume considering V_wf, [m3].

property Xe

[float] Effluent biomass (i.e., WWTsludge) concentration, [kg/m3].

property Xi

[float] Influent biomass (i.e., WWTsludge) concentration, [kg/m3].

property Xw

[float] Waste flow biomass (i.e., WWTsludge) concentration, [kg/m3].

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

Auxiliary unit operation names.

property b

[float] Specific endogenous decay coefficient, [/hr], only relevant when the “separate” method is used.

property biodegradability

[float of dict] Biodegradability of components, when shown as a float, all biodegradable components are assumed to have the same degradability.

property biogas_rxns

[tmo.ParallelReaction] Biogas production reactions.

property biomass_ID

[str] ID of the Component that represents the biomass.

property decay_rxn

[tmo.Reaction] Biomass endogenous decay.

Note

Conversion is adjusted in the _run function.

property growth_rxns

[tmo.ParallelReaction] Biomass (WWTsludge) growth reactions.

property i_rm

[np.array] Removal of each component in this reactor.

line: str = 'Internal circulation rx'

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

property method

[str] Design method, can be “separate” or “lumped”.

property mu_max

[float] Maximum specific growth rate, [/hr], only relevant when the “separate” method is used.

property organic_rm

[float] Overall organic (COD) removal rate.

purchase_cost_algorithms = {'Conventional': TankPurchaseCostAlgorithm(f_Cp=ExponentialFunctor(A=12080, n=0.525), V_min=0.1, V_max=30, CE=525.4, material=Stainless steel, V_units=m^3), 'IC': TankPurchaseCostAlgorithm(f_Cp=ExponentialFunctor(A=12080, n=0.525), V_min=28.274333882308138, V_max=2827.4333882308138, CE=525.4, material=Stainless steel, V_units=m^3)}

VesselPurchaseCostAlgorithm] All cost algorithms available for vessel types.

Type:

dict[str

property q_Qw

[float] Ratio between the bottom reactor waste flow and the influent.

property q_Xw

[float] Ratio between the biomass concentration in the reactor and the waste flow, only relevant when the “lumped” method is used.

run()

Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).

See also

_run, specifications, add_specification, add_bounded_numerical_specification

property tau

[float] Reactor residence time, [hr] (same as the hydraulic retention time, HRT).