Abstract Dynamic Units¶
Note
These units are for process simulation only and do not have design and cost algorithms.
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>
Jianan Feng <jiananf2@illinois.edu>
Part of this module is based on the biosteam package: https://github.com/BioSTEAMDevelopmentGroup/biosteam
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.
Note: unit_operations/bst/_abstract.py and unit_operations/static/_abstract.py are unrelated modules that happen to share this filename; each holds a different set of unit classes. Mixer/Splitter live here rather than in bst/_abstract.py because they support dynamic simulation.
- class qsdsan.unit_operations.dynamic._abstract.HydraulicDelay(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, t_delay=0.0001, *, init_with='WasteStream', F_BM_default=None, isdynamic=True)¶
A fake unit for implementing hydraulic delay by a first-order reaction (i.e., a low-pass filter) with a specified time constant [d].
See also
Benchmark Simulation Model No.1 implemented in MATLAB & Simulink <https://www.cs.mcgill.ca/~hv/articles/WWTP/sim_manual.pdf>
- line: str = 'Hydraulic delay'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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
- set_init_conc(**kwargs)¶
set the initial concentrations [mg/L].
- class qsdsan.unit_operations.dynamic._abstract.Mixer(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', F_BM_default=None, isdynamic=False, rigorous=False, conserve_phases=False)¶
Similar to
biosteam.units.Mixer, but can be initialized withqsdsan.SanStreamandqsdsan.WasteStream, and allows dynamic simulation.See also
- line: str = 'Mixer'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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 state¶
The state of the Mixer, including component concentrations [mg/L] and flow rate [m^3/d].
- class qsdsan.unit_operations.dynamic._abstract.Sampler(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, *, init_with='WasteStream', F_BM_default=None, isdynamic=False)¶
A non-reactive (i.e., all the outs at the same as the ins) unit that is used in dynamic simulation to record the unit/stream states.
- line: str = 'Sampler'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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 state¶
The sampled state, including component concentrations [mg/L] and flow rate [m^3/d].
- class qsdsan.unit_operations.dynamic._abstract.Splitter(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, *, split, order=None, init_with='WasteStream', F_BM_default=None, isdynamic=False)¶
Similar to
biosteam.units.Splitter, but can be initialized withqsdsan.SanStreamandqsdsan.WasteStream, and allows dynamic simulation.See also
- line: str = 'Splitter'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- 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 state¶
Component concentrations and total flow rate.