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:

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 with qsdsan.SanStream and qsdsan.WasteStream, and allows dynamic simulation.

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 with qsdsan.SanStream and qsdsan.WasteStream, and allows dynamic simulation.

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.