Clarifier¶
QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems
This module is developed by:
Joy Zhang <joycheung1994@gmail.com>
Yalin Li <mailto.yalin.li@gmail.com>
Saumitra Rai <raisaumitra9@gmail.com>
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._clarifier.FlatBottomCircularClarifier(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', underflow=2000, wastage=385, surface_area=1500, height=4, N_layer=10, feed_layer=4, X_threshold=3000, v_max=474, v_max_practical=250, rh=0.000576, rp=0.00286, fns=0.00228, maximum_nonsettleable_solids=None, F_BM_default={'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, isdynamic=True, downward_flow_velocity=42, design_influent_TSS=None, design_influent_flow=None, design_solids_loading_rate=6, **kwargs)¶
A flat-bottom circular clarifier with a simple 1-dimensional N-layer settling model.
- Parameters:
ID (str) – ID for the clarifier. The default is ‘’.
ins (
WasteStream
) – Influent to the clarifier. Expected number of influent is 1.outs (
WasteStream
) – Treated effluent and sludge.underflow (float, optional) – Designed recycling sludge flowrate (RAS), in [m^3/d]. The default is 2000.
wastage (float, optional) – Designed wasted sludge flowrate (WAS), in [m^3/d]. The default is 385.
surface_area (float, optional) – Surface area of the clarifier, in [m^2]. The default is 1500.
height (float, optional) – Height of the clarifier, in [m]. The default is 4.
N_layer (int, optional) – The number of layers to model settling. The default is 10.
feed_layer (int, optional) – The feed layer counting from top to bottom. The default is 4.
X_threshold (float, optional) – Threshold suspended solid concentration, in [g/m^3]. The default is 3000.
v_max (float, optional) – Maximum theoretical (i.e. Vesilind) settling velocity, in [m/d]. The default is 474.
v_max_practical (float, optional) – Maximum practical settling velocity, in [m/d]. The default is 250.
rh (float, optional) – Hindered zone settling parameter in the double-exponential settling velocity function, in [m^3/g]. The default is 5.76e-4.
rp (float, optional) – Flocculant zone settling parameter in the double-exponential settling velocity function, in [m^3/g]. The default is 2.86e-3.
fns (float, optional) – Non-settleable fraction of the suspended solids, dimensionless. Must be within [0, 1]. The default is 2.28e-3.
maximum_nonsettleable_solids (float, optional) – Maximum non-settleable solids concentration, in mgTSS/L. The default is None.
downward_flow_velocity (float, optional) – Speed on the basis of which center feed diameter is designed [m/hr]. The default is 42 m/hr (0.7 m/min). [2]
design_influent_TSS (float, optional) – The design TSS concentration [mg/L] in the influent going to the secondary clarifier.
design_influent_flow (float, optional) – The design influent tptal volumetric flow [m3/hr] going to the secondary clarifier.
design_solids_loading_rate (float, optional) – Rate of total suspended solids entering the secondary clarifier (kg/(m2*hr)). The default is 5 kg/(m2*hr) [3, 4]
References
[1] Takács, I.; Patry, G. G.; Nolasco, D. A Dynamic Model of the Clarification -Thickening Process. Water Res. 1991, 25 (10), 1263–1271. https://doi.org/10.1016/0043-1354(91)90066-Y.
[2] Chapter-12: Suspended-growth Treatment Processes. WEF Manual of Practice No. 8. 6th Edition. Virginia: McGraw-Hill, 2018.
[3] Metcalf, Leonard, Harrison P. Eddy, and Georg Tchobanoglous. Wastewater engineering: treatment, disposal, and reuse. Vol. 4. New York: McGraw-Hill, 1991.
[4] Introduction to Wastewater Clarifier Design by Nikolay Voutchkov, PE, BCEE.
[5] RECOMMENDED STANDARDS for WASTEWATER FACILITIES. 10 state standards. 2014 edition.
- property A_settle¶
[float] The surface area for settling in m^2, i.e., the area of the clarifier’s flat bottom.
- property N_layer¶
[int] The number of layers into which the clarifier is divided in the settling model.
- property V_settle¶
[float] Total volume modeled for settling in m^3, calculated based on surface area and height.
- property X_t¶
[float] Threshold suspended solid concentration, in g/m^3.
- property feed_layer¶
[int] The feed layer counting from top to bottom.
- property fns¶
[float] Non-settleable fraction of the suspended solids
- property h_layer¶
[float] The height of each layer in the settling model, in m.
- property height¶
[float] Height of the clarifier in m.
- line: str = 'Flat bottom circular clarifier'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- property maximum_nonsettleable_solids¶
[float] Maximum non-settleable solids concentration, in mgTSS/L.
- property rh¶
[float] Hindered zone settling parameter in the double-exponential settling velocity function, in m^3/g.
- property rp¶
[float] Flocculant zone settling parameter in the double-exponential settling velocity function, in m^3/g.
- 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_TSS(arr)¶
set the initial TSS [mg/L] in each layer of the clarifier.
- set_init_sludge_solids(**kwargs)¶
set the initial concentrations [mg/L] of solids in the underflow sludge.
- set_init_solubles(**kwargs)¶
set the initial concentrations [mg/L] of solubles in the clarifier.
- property solids_loading_rate¶
solids_loading_rate is the loading in the clarifier
- property underflow¶
[float] The designed recycling sludge flow rate in m3/d.
- property v_max¶
[float] Maximum theoretical (i.e. Vesilind) settling velocity, in m/d
- property v_max_p¶
[float] Maximum practical settling velocity, in m/d
- property wastage¶
[float] The designed wasted sludge flow rate in m3/d.
- class qsdsan.sanunits._clarifier.IdealClarifier(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, sludge_flow_rate=2000, solids_removal_efficiency=0.995, sludge_MLSS=None, isdynamic=False, init_with='WasteStream', F_BM_default=None, **kwargs)¶
Ideal clarifier that settles suspended solids by specified efficiency. Has no design or costing algorithm. Governing equations are
\[ \begin{align}\begin{aligned}Q_i X_i = Q_e X_e + Q_s X_s\\Q_i = Q_e + Q_s\\X_e = X_i * (1-e_rmv)\end{aligned}\end{align} \]where subscripts ‘i’, ‘e’, ‘s’ represent influent, overflow effluent, and underflow sludge, respectively. ‘Q’ indicates volumetric flowrate and ‘X’ indicates suspended solids concentration.
- Parameters:
sludge_flow_rate (float, optional) – Underflow sludge flowrate [m3/d]. The default is 2000.
solids_removal_efficiency (float, optional) – Removal efficiency (concentration basis) of suspended solids, unitless. The default is 0.995.
sludge_MLSS (float, optional) – Underflow MLSS [mg/L]. Used only when either solids_removal_efficiency or sludge_flow_rate is unspecified. The default is None.
- line: str = 'Ideal clarifier'¶
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 sludge_flow_rate¶
[float] The designed sludge flow rate (wasted + recycled) in m3/d.
- class qsdsan.sanunits._clarifier.PrimaryClarifier(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), sludge_flow_rate=2000, solids_removal_efficiency=0.6, sludge_MLSS=None, thermo=None, isdynamic=False, init_with='WasteStream', surface_overflow_rate=41, depth_clarifier=4.5, downward_flow_velocity=36, F_BM={'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, **kwargs)¶
Primary clarifier with an ideal settling process model.
- Parameters:
surface_overflow_rate (float) – Surface overflow rate in the clarifier in [(m3/day)/m2]. [1] Design SOR value for clarifier is 41 (m3/day)/m2 if it does not receive WAS. Design SOR value for clarifier is 29 (m3/day)/m2 if it receives WAS. Typically SOR lies between 30-50 (m3/day)/m2. Here default value of 41 (m3/day)/m2 is used.
depth_clarifier (float) – Depth of clarifier. Typical depths range from 3 m to 4.9 m [1], [2]. Default value of 4.5 m would be used here.
downward_flow_velocity (float, optional) – Speed on the basis of which center feed diameter is designed [m/hr]. [3] The default is 36 m/hr. (10 mm/sec)
F_BM (dict) – Equipment bare modules.
Examples
>>> from qsdsan import set_thermo, Components, WasteStream, System >>> cmps = Components.load_default() >>> cmps_test = cmps.subgroup(['S_F', 'S_NH4', 'X_OHO', 'H2O']) >>> set_thermo(cmps_test) >>> ws = WasteStream('ws', S_F = 10, S_NH4 = 20, X_OHO = 15, H2O=1000) >>> from qsdsan.sanunits import PrimaryClarifier >>> PC = PrimaryClarifier(ID='PC', ins=ws, outs=('effluent', 'sludge'), ... solids_removal_efficiency=0.6, ... sludge_flow_rate=ws.F_vol*24*0.3, ... isdynamic=True) >>> sys = System('sys', path=(PC,)) >>> sys.simulate(t_span=(0,10), method='BDF') >>> PC.show() PrimaryClarifier: PC ins... [0] ws phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 1e+04 S_NH4 2e+04 X_OHO 1.5e+04 H2O 1e+06 WasteStream-specific properties: pH : 7.0 Alkalinity : 2.5 mmol/L COD : 23873.0 mg/L BOD : 14963.2 mg/L TC : 8298.3 mg/L TOC : 8298.3 mg/L TN : 20363.2 mg/L TP : 367.6 mg/L TK : 68.3 mg/L TSS : 11124.4 mg/L outs... [0] effluent phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 7e+03 S_NH4 1.4e+04 X_OHO 4.2e+03 H2O 7.04e+05 WasteStream-specific properties: pH : 7.0 COD : 15278.7 mg/L BOD : 10093.4 mg/L TC : 5152.8 mg/L TOC : 5152.8 mg/L TN : 19776.2 mg/L TP : 204.4 mg/L TK : 27.3 mg/L TSS : 4449.8 mg/L [1] sludge phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 3e+03 S_NH4 6e+03 X_OHO 1.08e+04 H2O 2.96e+05 WasteStream-specific properties: pH : 7.0 COD : 43926.3 mg/L BOD : 26326.2 mg/L TC : 15637.8 mg/L TOC : 15637.8 mg/L TN : 21732.8 mg/L TP : 748.7 mg/L TK : 163.9 mg/L TSS : 26698.6 mg/L
References
[1] Chapter-10: Primary Treatment. Design of water resource recovery facilities. WEF Manual of Practice No. 8. 6th Edition. Virginia: McGraw-Hill, 2018.
[2] Metcalf, Leonard, Harrison P. Eddy, and Georg Tchobanoglous. Wastewater engineering: treatment, disposal, and reuse. Vol. 4. New York: McGraw-Hill, 1991.
[3] Introduction to Wastewater Clarifier Design by Nikolay Voutchkov, PE, BCEE.
- line: str = 'Primary clarifier'¶
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.sanunits._clarifier.PrimaryClarifierBSM2(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, isdynamic=True, init_with='WasteStream', volume=900, ratio_uf=0.007, mean_f_x=0.85, f_corr=0.65, F_BM={'Pump': 1.1800826, 'Pump building': 1.1800826, 'Pumps': 1, 'Scraper': 1, 'Slab concrete': 1.0, 'Wall concrete': 1.0, 'Wall stainless steel': 1.0, 'v notch weir': 1}, **kwargs)¶
A Primary clarifier based on the Otterpohl model [1] in BSM2 [2].
- Parameters:
ID (str) – ID for the clarifier.
ins (class:WasteStream) – Influent to the clarifier. Expected number of influent is 3.
outs (class:WasteStream) – Sludge (uf) and treated effluent (of).
volume (float, optional) – Clarifier volume, in m^3. The default is 900.
ratio_uf (float) – The volumetric ratio of sludge to primary influent. The default is 0.007, based on IWA report.[2]
mean_f_x (float, optional) – The average fraction of particulate COD out of total COD in primary influent. The default is 0.85.
f_corr (float) – Dimensionless correction factor for removal efficiency in the primary clarifier.[2]
Examples
>>> from qsdsan import set_thermo, Components, WasteStream >>> cmps = Components.load_default() >>> cmps_test = cmps.subgroup(['S_F', 'S_NH4', 'X_OHO', 'H2O']) >>> set_thermo(cmps_test) >>> ws = WasteStream('ws', S_F = 10, S_NH4 = 20, X_OHO = 15, H2O=1000) >>> from qsdsan.sanunits import PrimaryClarifierBSM2 >>> PC = PrimaryClarifierBSM2(ID='PC', ins= (ws,), outs=('eff', 'sludge'), ... isdynamic=False) >>> PC.simulate() >>> of, uf = PC.outs >>> uf.imass['X_OHO']/ws.imass['X_OHO'] 0.598... >>> PC.show() PrimaryClarifierBSM2: PC ins... [0] ws phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 1e+04 S_NH4 2e+04 X_OHO 1.5e+04 H2O 1e+06 WasteStream-specific properties: pH : 7.0 Alkalinity : 2.5 mmol/L COD : 23873.0 mg/L BOD : 14963.2 mg/L TC : 8298.3 mg/L TOC : 8298.3 mg/L TN : 20363.2 mg/L TP : 367.6 mg/L TK : 68.3 mg/L TSS : 11124.4 mg/L outs... [0] eff phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 9.93e+03 S_NH4 1.99e+04 X_OHO 6.03e+03 H2O 9.93e+05 WasteStream-specific properties: pH : 7.0 COD : 15436.7 mg/L BOD : 10190.8 mg/L TC : 5208.2 mg/L TOC : 5208.2 mg/L TN : 19890.1 mg/L TP : 206.9 mg/L TK : 27.8 mg/L TSS : 4531.6 mg/L [1] sludge phase: 'l', T: 298.15 K, P: 101325 Pa flow (g/hr): S_F 70 S_NH4 140 X_OHO 8.97e+03 H2O 7e+03 WasteStream-specific properties: pH : 7.0 COD : 693717.5 mg/L BOD : 393895.7 mg/L TC : 253653.4 mg/L TOC : 253653.4 mg/L TN : 57923.7 mg/L TP : 13132.3 mg/L TK : 3282.0 mg/L TSS : 534594.0 mg/L
References
[1] Otterpohl R. and Freund M. (1992). Dynamic Models for clarifiers of activated sludge plants with dry and wet weather flows. Water Sci. Technol., 26(5-6), 1391-1400.
[2] Gernaey, Krist V., Ulf Jeppsson, Peter A. Vanrolleghem, and John B. Copp. Benchmarking of control strategies for wastewater treatment plants. IWA publishing, 2014.
- property f_x¶
[float] Fraction of particulate COD [-].
- line: str = 'Primary Clarifier BSM2'¶
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].