Metal Dosage¶

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

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