Eco-San

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

Tori Morgan <vlmorgan@illinois.edu>

Yalin Li <mailto.yalin.li@gmail.com>

Hannah Lohman <hlohman94@gmail.com>

This module contains unit operations used in the Eco-San system as described in

Li, M.; Xiaokang, Z. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

Note that the report is not publicly available, but information about the Eco-San system can be found at:

https://sanitation.ansi.org/EcoSanToilet

http://www.eco-san.cn/e_main.html

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.unit_operations.static._eco_san.EcoSanAerobic(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, **kwargs)

Aerobic treatment unit in the Eco-San system.

Note that costs and environmental impacts associated with unit is considered in EcoSanBioCost.

Parameters:
  • ins (Iterable(stream)) – waste: waste stream to be treated.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

See also

qsdsan.process_models.Decay, qsdsan.unit_operations.EcoSanBioCost

line: str = 'Eco san aerobic'

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

class qsdsan.unit_operations.static._eco_san.EcoSanAnaerobic(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, **kwargs)

Anaerobic treatment unit in the Eco-San system.

Note that costs and environmental impacts associated with unit is considered in EcoSanBioCost.

Parameters:
  • ins (Iterable(stream)) – waste: waste stream to be treated.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

See also

qsdsan.process_models.Decay, qsdsan.unit_operations.EcoSanBioCost

line: str = 'Eco san anaerobic'

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

class qsdsan.unit_operations.static._eco_san.EcoSanAnoxic(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, **kwargs)

Anoxic treatment unit in the Eco-San system.

Note that costs and environmental impacts associated with unit is considered in EcoSanBioCost.

Parameters:
  • ins (Iterable(stream)) – waste: waste stream to be treated.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

See also

qsdsan.process_models.Decay, qsdsan.unit_operations.EcoSanBioCost

line: str = 'Eco san anoxic'

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

class qsdsan.unit_operations.static._eco_san.EcoSanBioCost(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

A non-reactive unit to account for all costs and environmental impacts associated with the biological treatment units within the Eco-San system (other than EcoSanPrimary and EcoSanMBR).

The following impact items should be pre-constructed for life cycle assessment: FRP, Pump.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

line: str = 'Eco san bio cost'

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

class qsdsan.unit_operations.static._eco_san.EcoSanECR(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, if_after_MBR=False, **kwargs)

Electrochemical reactor (ECR) in the Eco-San system with chlorine dosing.

The following impact items should be pre-constructed for life cycle assessment: Metal, Pump.

Parameters:
  • ins (Iterable(stream)) – waste: waste stream to be treated. salt: NaCl to be added for treatment. HCl: HCl to be added for treatment.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions.

  • if_after_MBR (bool) – If this unit is used after a membrane bioreactor (MBR), ECR after an MBR will have lower costs compared to the scenario without an MBR.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

property if_after_MBR

[bool] If this unit is used after a membrane bioreactor (MBR), ECR after an MBR will have lower costs compared to the scenario without an MBR.

line: str = 'Eco san ECR'

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

class qsdsan.unit_operations.static._eco_san.EcoSanMBR(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, **kwargs)

Membrane bioreactor for the Eco-San system.

The following impact items should be pre-constructed for life cycle assessment: FRP.

Parameters:
  • ins (Iterable(stream)) – waste: waste stream to be treated.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

line: str = 'Eco san MBR'

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

class qsdsan.unit_operations.static._eco_san.EcoSanPrimary(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', if_with_MBR=False, sludge_moisture_content=0.95, **kwargs)

The primary treatment of the Eco-San system uses anaerobic digestion to treat wastes (similar to a septic tank).

It can be used in conjunction with a membrane bioreactor (MBR) to recovery N and P as struvite.

The following impact items should be pre-constructed for life cycle assessment: FRP.

Parameters:
  • ins (Iterable(stream)) – Waste for treatment, Mg(OH2) used if struvite is produced.

  • outs (Iterable(stream)) – Treated waste, fugitive CH4, fugitive N2O, generated sludge, and struvite.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

See also

qsdsan.process_models.Decay, qsdsan.unit_operations.SepticTank

property if_generate_struvite

[bool] If generating struvite (True when with MBR).

property if_struvite_in_sludge

[bool] If the generated struvite is in sludge, always False (when MBR is included, struvite is generated as a separate stream).

property if_with_MBR

[bool] If this unit has a membrane bioreactor (MBR), primary treatment with an MBR is able to recovery N and P as struvite.

line: str = 'Eco san primary'

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 user_scale_up

[float] Scaling factor based on the user number.

class qsdsan.unit_operations.static._eco_san.EcoSanSolar(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

A non-reactive unit to account for all costs and environmental impacts associated with the solar energy system.

The following impact items should be pre-constructed for life cycle assessment: FRP, Pump.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

line: str = 'Eco san solar'

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

class qsdsan.unit_operations.static._eco_san.EcoSanSystem(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

A non-reactive unit to account for all costs and environmental impacts associated with controlling, recycling, and other miscellaneous parts.

The following impact items should be pre-constructed for life cycle assessment: Pump.

References

[1] Ma Li and Zhou Xiaokang. Technical Report of Eco-san Water Recycling System. Version 20190504-V3. 2019.

line: str = 'Eco san system'

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