Polishing Filter#

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

Yalin Li <mailto.yalin.li@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._polishing_filter.PolishingFilter(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', filter_type='aerobic', OLR=0.09375, HLR=0.275, X_decomp=0.74, X_growth=0.22, biodegradability=1.0, split={}, solids=(), solids_conc=10.5, T=303.15, include_degassing_membrane=False, F_BM={'Membrane': 1.15, 'Pump building': 1.1800826, 'Pumps': 1.1800826}, lifetime={'Pump pipe stainless steel': 15, 'Pump stainless steel': 15, 'Pumps': 15}, **kwargs)#

A superclass for anaerobic and aerobic polishing as in Shoener et al. [1] Some assumptions adopted from Humbird et al. [2]

Parameters:
  • ins (Inlets(obj)) – Influent, recycle, air (optional & when aerobic).

  • outs (Outlets(obj)) – Biogas (when anaerobic), effluent, waste sludge, air (optional & when aerobic).

  • filter_type (str) – Can either be “anaerobic” or “aerobic”.

  • OLR (float) – Organic loading rate of influent, [kg COD/m3/hr].

  • HLR (float) – Hydraulic loading rate of influent, [m3/m2/hr].

  • X_decomp (float) – Fraction of the influent COD converted to biogas (filter_type == “anaerobic”) or CO2 (filter_type == “aerobic”).

  • X_growth (float) – Fraction of the influent COD converted to biomass growth.

  • solids (Iterable(str)) – IDs of the solid components. If not provided, will be set to the default solids attribute of the components.

  • split (dict) – Component-wise split to the treated water. E.g., {‘NaCl’:1, ‘WWTsludge’:0} indicates all of the NaCl goes to the treated water and all of the WWTsludge goes to the wasted sludge. Default splits (based on the membrane bioreactor in [2]) will be used if not provided. Note that the split for Water will be ignored as it will be adjusted to satisfy the solids_conc setting.

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

  • solids_conc (float) – Concentration of the biomass in the waste sludge, [g/L].

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

  • include_degassing_membrane (bool) – If to include a degassing membrane to enhance methane (generated through the digestion reaction) recovery. No degassing membrane will be added if filter_type is “aerobic”.

  • kwargs (dict) – Other keyword arguments (e.g., t_wall, t_slab).

References

property D#

[float] Depth of the filter tank, [ft].

property D_B#

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

F_BM: dict[str, float]#

All bare-module factors for each purchase cost. Defaults to values in the class attribute _F_BM_default.

F_D: dict[str, float]#

All design factors for each purchase cost item in baseline_purchase_costs.

F_M: dict[str, float]#

All material factors for each purchase cost item in baseline_purchase_costs.

F_P: dict[str, float]#

All pressure factors for each purchase cost item in baseline_purchase_costs.

property HLR#

[float] Hydraulic loading rate, [m3/m2/hr].

property L_B#

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

property N_degasser#

[int] Number of degassing membrane needed for dissolved biogas removal (optional).

property N_filter#

[int] Number of filter tanks.

property OLR#

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

property Q_cmd#

[float] Influent volumetric flow rate in cubic meter per day, [cmd].

property Q_mgd#

[float] Influent volumetric flow rate in million gallon per day, [mgd].

property W_B#

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

property X_decomp#

[float] Fraction of the influent COD converted to biogas (filter_type == “anaerobic”) or CO2 (filter_type == “aerobic”).

property X_growth#

[float] Fraction of the influent COD converted to biomass growth.

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.

baseline_purchase_costs: dict[str, float]#

All baseline purchase costs without accounting for design, pressure, and material factors.

property biodegradability#

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

property constr_access#

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

property d#

[float] Diameter of the filter tank, [ft].

property d_max#

[float] Maximum filter diameter, [m].

property decomp_rxns#

[tmo.ParallelReaction] Organics to biogas (filter_type == “anaerobic”) or CO2 (filter_type == “aerobic”) reactions.

design_results: dict[str, object]#

All design requirements excluding utility requirements and detailed auxiliary unit requirements.

equipment_lifetime: int | dict[str, int]#

Lifetime of equipment. Defaults to values in the class attribute _default_equipment_lifetime. Use an integer to specify the lifetime for all items in the unit purchase costs. Use a dictionary to specify the lifetime of each purchase cost item.

property excav_slope#

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

property filter_type#

[str] Can either be “anaerobic” or “aerobic”.

property freeboard#

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

property growth_rxns#

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

heat_utilities: tuple[HeatUtility, ...]#

All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).

property i_rm#

[np.array] Removal of each component in this filter tank.

installed_costs: dict[str, float]#

All installed costs accounting for bare module, design, pressure, and material factors. Items here are automatically updated at the end of unit simulation.

line: str = 'Polishing filter'#

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

property organic_rm#

[float] Overall organic (COD) removal rate.

parallel: dict[str, int]#

Name-number pairs of baseline purchase costs and auxiliary unit operations in parallel. Use ‘self’ to refer to the main unit. Capital and heat and power utilities in parallel will become proportional to this value.

power_utility: PowerUtility#

Electric utility associated to unit (including auxiliary requirements).

prioritize: bool#

Whether to prioritize unit operation specification within recycle loop (if any).

purchase_costs: dict[str, float]#

Itemized purchase costs (including auxiliary units) accounting for design, pressure, and material factors (i.e., F_D, F_P, F_M). Items here are automatically updated at the end of unit simulation.

property recir_ratio#

[float] Internal recirculation ratio.

responses: set[bst.GenericResponse]#

Unit design decisions that must be solved to satisfy specifications. While adding responses is optional, simulations benefit from responses by being able to predict better guesses.

run_after_specifications: bool#

Whether to run mass and energy balance after calling specification functions

property solids_conc#

Concentration of solids in the waste sludge, [g/L].

property split#

Component-wise split to the treated water.

property t_slab#

[float] Concrete slab thickness, [ft].

property t_wall#

[float] Concrete wall thickness, [ft].