Abstract Unit

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.

class qsdsan.sanunits._abstract.ComponentSplitter(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', split_keys=())

Split the influent into individual components, the last effluent contains all remaining components.

Parameters:

split_keys (iterable) –

IDs of components to be split to different effluents. Element of the item in the iterable can be str or another iterable containing component IDs. If the item is also iterable, all components whose ID are in the iterable will be split to the same effluent. The split is always 1 for a certain component to an effluent (i.e., complete split).

Note

Length of the split_keys() (which determines size of the outs) cannot be changed after initiation.

Examples

bwaise systems

line: str = 'Component splitter'

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

property split_keys

[iterable] IDs of components to be split to different effluents. Element of the item in the iterable can be str or another iterable containing component IDs. If the item is also iterable, all components whose ID are in the iterable will be split to the same effluent. The split is always 1 for a certain component to an effluent (i.e., complete split).

Note

Length of the split_keys() (which determines size of the outs) cannot be changed after initiation.

class qsdsan.sanunits._abstract.FakeSplitter(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, construction=[], transportation=[], equipment=[], add_OPEX={}, uptime_ratio=1.0, lifetime=None, F_BM_default=None, isdynamic=False, exogenous_vars=(), **kwargs)

Similar to biosteam.units.FakeSplitter, but can be initialized with qsdsan.SanStream and qsdsan.WasteStream.

line: str = 'Fake splitter'

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

class qsdsan.sanunits._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

property state

The state of the Mixer, including component concentrations [mg/L] and flow rate [m^3/d].

class qsdsan.sanunits._abstract.PhaseChanger(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', phase='l')

Change the effluent phase to the desired one, also allow the switch between stream types.

Parameters:
  • ins (Iterable(stream)) – influent

  • outs (Iterable(stream)) – effluent

  • phase (str) – Desired phase, can only be one of (“g”, “l”, or “s”).

line: str = 'Phase changer'

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

class qsdsan.sanunits._abstract.ReversedSplitter(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, construction=[], transportation=[], equipment=[], add_OPEX={}, uptime_ratio=1.0, lifetime=None, F_BM_default=None, isdynamic=False, exogenous_vars=(), **kwargs)

Similar to biosteam.units.ReversedSplitter, but can be initialized with qsdsan.SanStream and qsdsan.WasteStream.

line: str = 'Reversed splitter'

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

class qsdsan.sanunits._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

property state

The sampled state, including component concentrations [mg/L] and flow rate [m^3/d].

class qsdsan.sanunits._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

property state

Component concentrations and total flow rate.