Metal Dosage¶
QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems
This module is developed by:
Joy Zhang <joycheung1994@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.unit_operations.dynamic._metal_dosage.MetalDosage(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', F_BM_default=None, isdynamic=False, P_precipitation_stoichiometry=None, metal_dosage=0.0, metal_ID='', orthoP_ID='', metalP_ID='', metal_price=None, metalP_pKsp=13.75, alpha=1.8e-06, soluble_substrate_ID='S_F', particulate_substrate_ID='X_S', colloidal_fraction=0.48, soluble_inert_ID='S_I', particulate_inert_ID='X_I', Fmin_substrate=4, Fmax_substrate=20, ka_substrate=0.5, Fmin_inert=4, Fmax_inert=20, ka_inert=0.5)¶
In-line metal dosage for chemical phosphorus removal and soluble organic removal through coagulation.
- Parameters:
metal_dosage (float) – Concentration-based metal dosage, in g (metal component) / m3.
metal_ID (str) – Component ID for the dosed metal.
orthoP_ID (str) – Component ID for ortho-phosphate.
metalP_ID (str, optional) – Component ID for metal phosphate.
soluble_substrate_ID (str, optional) – Component ID for soluble organic substate. The default is ‘S_F’.
particulate_substrate_ID (str, optional) – Component ID for particulate organic substrate. The default is ‘X_S’.
soluble_inert_ID (str, optional) – Component ID for soluble inert organic matter. The default is ‘S_I’.
particulate_inert_ID (str, optional) – Component ID for particulate inert organic matter. The default is ‘X_I’.
metal_price (float, optional) – Price of the dosed metal, in USD/kg metal component.
- property Fmax_inert¶
[float] Maximum (i.e., at low soluble inert concentration) required metal dose for unit soluble inert coagulation, in g metal / g soluble inert component.
- property Fmax_substrate¶
[float] Maximum (i.e., at low soluble substrate concentration) required metal dose for unit soluble substrate coagulation, in g metal / g soluble substrate component.
- property Fmin_inert¶
[float] Minimum (i.e., at high soluble inert concentration) required metal dose for unit soluble inert coagulation, in g metal / g soluble inert component.
- property Fmin_substrate¶
[float] Minimum (i.e., at high soluble substrate concentration) required metal dose for unit soluble substrate coagulation, in g metal / g soluble substrate component.
- property P_precipitation_stoichiometry¶
[dict] Metal phsophate precipitation process stoichiometry (molar).
- property alpha¶
[float] Dissociation factor for estimating the precipitating phosphoric species concentrationn from total ortho-phosphate concentration.
- property colloidal_fraction¶
[float] Fraction of the soluable substrate removable through coaugulation/flocculation, in g colloidal COD / g soluble substrate component.
- classmethod from_mASM2d(ID, ins=None, outs=(), model=None, metal_ID='X_FeOH', metal_dosage=0.0, pH=7, Fmin_substrate=4, Fmax_substrate=20, ka_substrate=0.5, Fmin_inert=4, Fmax_inert=20, ka_inert=0.5, thermo=None, init_with='WasteStream', F_BM_default=None, isdynamic=True, **kwargs)¶
Creating a metal dosage unit using data from a mASM2d process model.
- Parameters:
model (
mASM2d) – mASM2d process model.pH (float, optional) – Affects orpho-phosphate speciation. The default is 7.
Examples
>>> from qsdsan import process_models as pc, unit_operations as su >>> cmps = pc.create_masm2d_cmps() >>> inf = pc.create_masm2d_inf('inf', 10) >>> inf.iconc['S_F', 'X_S', 'S_I', 'X_I', 'X_FeOH', 'X_FePO4'] array([150.5, 202.1, 21.5, 55.9, 0. , 0. ])
>>> asm = pc.mASM2d() >>> MD = su.MetalDosage.from_mASM2d('MD', inf, 'eff', metal_dosage=50, ... model=asm, isdynamic=False) >>> MD.simulate() >>> eff, = MD.outs >>> eff.iconc['S_F', 'X_S', 'S_I', 'X_I', 'X_FeOH', 'X_FePO4'] array([138.001, 214.602, 9.105, 68.296, 26.583, 33.048])
- property ka_inert¶
Soluble inert affinity factor for coagulation, in m3/g.
- property ka_substrate¶
Soluble substrate affinity factor for coagulation, in m3/g.
- line: str = 'Metal dosage'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- property metalP_pKsp¶
[float] Apparent solubility product (molar) of metal phosphate.
- property metal_dosage¶
[float] Metal dosage, in g metal component / m3
- property metal_price¶
[float] Price of the dosed metal, in USD/kg metal component.
- 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