Septic Tank

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems This module is developed by:

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

Hannah Lohman <hlohman94@gmail.com>

Tori Morgan <vlmorgan@illinois.edu>

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._septic_tank.SepticTank(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', include_construction=True, degraded_components=('OtherSS',), if_capture_biogas=False, if_N2O_emission=True, if_include_front_end=True, if_generate_struvite=True, if_struvite_in_sludge=True, ppl=1, sludge_moisture_content=0.95, **kwargs)

Septic tank that anaerobically treat the influent waste stream, often used as a primary treatment unit.

Designed based on the Reclaimer system as described in http://washaid.pratt.duke.edu/sites/washaid.pratt.duke.edu/files/u71/Reclaimer_July2021.pdf and Trotochaud et al.

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

Parameters:
  • ins (Iterable(stream)) – waste: liquid waste stream to be treated by septic tank unit. MgOH2: input Mg(OH)2 for struvite precipitation.

  • outs (Iterable(stream)) – treated: treated liquid leaving septic tank. CH4: fugitive CH4 emissions. N2O: fugitive N2O emissions. sludge: solid waste to be sent to sludge pasteurization, could include the precipitated struvite. struvite: a separate struvite stream when if_generate_struvite is True.

  • if_include_front_end (bool) – If the front end is included in the analysis.

  • if_generate_struvite (bool) – If generating struvite.

  • if_struvite_in_sludge (bool) – If the generated struvite is in sludge.

  • ppl (int) – Total number of users for scaling of costs.

  • sludge_moisture_content (float) – Moisture content of the sludge, assumed to be 0.95 based on Tchobanoglous et al. (sludge leaving anaerobic treatment 2-5% solids).

Examples

>>> from qsdsan.utils import create_example_sanitation_components
>>> cmps = create_example_sanitation_components()
>>> from qsdsan import System, WasteStream
>>> from qsdsan.unit_operations import SepticTank
>>> ws = WasteStream('ws', H2O=1000, NH3=5, NonNH3=2, P=2, K=1,
...                  OtherSS=30, units='kg/hr')
>>> mg = WasteStream('mg', MagnesiumHydroxide=1, units='kg/hr')
>>> ST = SepticTank('ST', ins=(ws, mg),
...                 outs=('treated', 'CH4', 'N2O', 'sludge', 'struvite'),
...                 decay_k_COD=3, decay_k_N=3, max_CH4_emission=0.25, ppl=4)
>>> sys = System('sys', path=(ST,))
>>> sys.simulate()
>>> round(ST.design_results['FRP'], 1)  # kg fiber-reinforced plastic
1147.5

See the EXPOsan reclaimer systems for use in a complete system.

References

[1] 2019.06 Technical report for BMGF V3 _ CC 2019.06.13.pdf [2] Tchobanoglous et al., Wastewater Engineering: Treatment and Resource Recovery, McGraw-Hill Education, New York, 5th edn., 2013.

line: str = 'Septic tank'

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.