Treatment Bed#
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._treatment_bed.DryingBed(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', design_type='unplanted', degraded_components=('OtherSS',), **kwargs)#
Unplanted and planted drying bed for solids based on Trimmer et al.
To enable life cycle assessment, the following impact items should be pre-constructed: Concrete, Steel.
- Parameters:
ins (WasteStream) – Solid for drying.
outs (WasteStream) – Dried solids, evaporated water, fugitive CH4, and fugitive N2O.
design_type (str) – Can be “unplanted” or “planted”. The default unplanted process has a number of “covered”, “uncovered”, and “storage” beds. The storage bed is similar to the covered bed, but with higher wall height.
Examples
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.
See also
- 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 N_bed#
[dict] Number of the different types of drying beds, float will be converted to the smallest integer.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- property bed_H#
[dict] Wall height of the different types of drying beds, [m].
- property bed_L#
[dict] Length of the different types of drying beds, [m].
- property bed_W#
[dict] Width of the different types of drying beds, [m].
- property column_H#
[float] Column height for covered bed, [m].
- property column_per_side#
[int] Number of columns per side of covered bed, float will be converted to the smallest integer.
- property column_unit_mass#
[float] Unit mass of the column, [kg/m].
- property concrete_thickness#
[float] Thickness of the concrete wall.
- property cover_slope#
[float] Slope of the bed cover, [°].
- property cover_unit_mass#
[float] Unit mass of the bed cover, [kg/m2].
- design_results: dict[str, object]#
All design requirements excluding utility requirements and detailed auxiliary unit requirements.
- property design_type#
[str] Drying bed type, can be either “unplanted” or “planted”.
- 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.
- heat_utilities: tuple[HeatUtility, ...]#
All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).
- 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 = 'Drying bed'#
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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.
- 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 sol_frac#
[float] Final solid content of the dried solids.
- property tau#
[float] Retention time, [d].
- class qsdsan.sanunits._treatment_bed.LiquidTreatmentBed(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', **kwargs)#
For secondary treatment of liquid based on Trimmer et al.
To enable life cycle assessment, the following impact items should be pre-constructed: Concrete.
- Parameters:
ins (WasteStream) – Waste for treatment.
outs (WasteStream) – Treated waste, fugitive CH4, and fugitive N2O.
Examples
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.
See also
- 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 N_bed#
[int] Number of treatment beds, float will be converted to the smallest integer.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- property bed_H#
[float] Bed height, [m].
- property bed_L#
[float] Bed length, [m].
- property bed_W#
[float] Bed width, [m].
- property concrete_thickness#
[float] Thickness of the concrete wall.
- 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.
- heat_utilities: tuple[HeatUtility, ...]#
All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).
- 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 = 'Liquid treatment bed'#
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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.
- 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 tau#
[float] Residence time, [d].