Biogenic Refinery

QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems

This module is developed by:

Lewis Rowles <stetsonsc@gmail.com>

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

Hannah Lohman <hlohman94@gmail.com>

Lane To <lane20@illinois.edu>

This module contains unit operations used in the Biogenic Refinery system as described in Rowles et al.

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._biogenic_refinery.BiogenicRefineryCarbonizerBase(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Carbonizer base in the biogenic refinery is where feedstock is continuously fed into the pyrolysis pot. The feedstock is exposed to high temperature pyrolysis. This process produces biochar and hot gases.

The carbonizer base is the central location for the combined pyrolysis and combustion process. The feedstock is received into the pyrolysis pot where it is flash pyrolyzed releasing volatile gases which are then mixed with air which is pumped in through the Primary Blower causing combustion of the gases. Due to the combustion of gases, the carbonizer base is the hottest location of the refinery ranging between 550-900°C. This range is closely monitored as pyrolysis usually starts at 350°C and all of the volatile gases are released at 550°C. This temperature is also important when confirming treatment of the fecal sludge, as it serves as our evidence for inactivation of the microbes in the sludge. After the gases are combusted, the exhaust travels below a baffle plate to encourage the fallout of particulates before it proceeds to the pollution control device.

The following components should be included in system thermo object for simulation: H2O, N, K, P OtherSS, N2O.

The following impact items should be pre-constructed for life cycle assessment: StainlessSteel, Steel, ElectricMotor, Electronics.

Parameters:
  • ins (Iterable(stream)) – Dewatered solids moisture content ≤ 35%.

  • outs (Iterable(stream)) – Biochar, hot gas, fugitive N2O.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery carbonizer base'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryControls(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Control box (industrial control panel) for the biogenic refinery. No process algorithm is included, only design (including) cost algorithms are included.

This is a non-reactive unit (i.e., the effluent is copied from the influent).

The following impact items should be pre-constructed for life cycle assessment: Electronics, ElectricConnectors, ElectricCables.

Parameters:
  • ins (Iterable(stream)) – Influent stream.

  • outs (Iterable(stream)) – Effluent stream, is copied from the influent stream.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery controls'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryGrinder(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', moisture_content_out=0.65, **kwargs)

Grinder in the biogenic refinery is used to break up solids.

The following components should be included in system thermo object for simulation: H2O, OtherSS.

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

Parameters:
  • ins (Iterable(stream)) – Influent stream.

  • outs (Iterable(stream)) – Effluent stream, is copied from the influent.

  • moisture_content_out (float) – Moisture content of the effluent solids stream.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery grinder'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryHHX(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Hydronic heat exchanger in the biogenic refinery is used to dry the feedstock before the refinery is capable of processing the material. The heat is exchanged between the exhaust gas and water, which is then pumped into radiators connected to a dryer. The refinery monitors the temperature of the water to ensure that the feedstock is being sufficiently dried before entering the refinery.

Note

The number of pumps in the design results are floats as the costs are scaled based on a pump of different size. The exponential scaling method might be considered for a better estimation.

This class should be used together with BiogenicRefineryHHXdryer.

The following components should be included in system thermo object for simulation: N2O.

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

Parameters:
  • ins (Iterable(stream)) – Hot gas.

  • outs (Iterable(stream)) – Hot gas.

Warning

Energy balance is not performed for this unit.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

See also

BiogenicRefineryHHXdryer

line: str = 'Biogenic refinery HHX'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryHHXdryer(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', moisture_content_out=0.35, **kwargs)

This dryer unit is used in combination with BiogenicRefineryHHX in the biogenic refinery.

The following components should be included in system thermo object for simulation: H2O, N, CH4, N2O.

Parameters:
  • ins (Iterable(stream)) – Dewatered solids, heat.

  • outs (Iterable(stream)) – Dried solids, fugitive N2O, fugitive CH4.

  • moisture_content_out (float) – Desired moisture content of the effluent.

Warning

Energy balance is not performed for this unit.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

See also

BiogenicRefineryHHX

line: str = 'Biogenic refinery hhxdryer'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryHousing(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', const_wage=15, const_person_days=100, **kwargs)

Housing for the biogenic refinery which is composed of the casing around the system, containers, and the concrete slab. No process algorithm is included, only design (including) cost algorithms are included.

The following impact items should be pre-constructed for life cycle assessment: Steel, StainlessSteelSheet, Concrete.

Parameters:
  • ins (Iterable(stream)) – Influent stream.

  • outs (Iterable(stream)) – Effluent stream, is copied from the influent stream.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery housing'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryIonExchange(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Ion exchange in the biogenic refinery is used for the recovery of N from the liquid stream. Concentrated NH3 is recovered.

The following components should be included in system thermo object for simulation: NH3, Polystyrene, H2SO4.

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

Parameters:
  • ins (Iterable (stream)) – Liquid waste, fresh resin, H2SO4.

  • outs (Iterable (stream)) – Treated waste, spent resin, concentrated NH3.

References

[1] Lohman et al., Advancing Sustainable Sanitation and Agriculture through Investments in Human-Derived Nutrient Systems. Environ. Sci. Technol. 2020, 54, (15), 9217-9227. https://dx.doi.org/10.1021/acs.est.0c03764

[2] Tarpeh et al., Evaluating ion exchange for nitrogen recovery from source-separated urine in Nairobi, Kenya. Development Engineering. 2018, 3, 188–195. https://doi.org/10.1016/j.deveng.2018.07.002

[3] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

property N_column

[int] Number of resin columns.

property N_tank

[int] Number of tanks for cost estimation, might be float (instead of int).

line: str = 'Biogenic refinery ion exchange'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryOHX(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Oil heat exchanger in the biogenic refinery utilizes an organic Rankin cycle. This is a combined heat and power system and is used to generate additional electricity that the refinery and/or facility can use to decrease the units electrical demand on the electrical grid. This type of system is required for ISO 31800 certification as the treatment unity needs to be energy independent when processing fecal sludge.

Note

This unit should be used in conjunction of CarbonizerBase as it uses the the heat from that unit for heat-exchanging (i.e., itself doesn’t generate heat).

The number of oil heat exchanger and pumps in the design results are floats as the costs are scaled based on equipment of different sizes. The exponential scaling method might be considered for a better estimation.

The following components should be included in system thermo object for simulation: N2O.

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

Parameters:
  • ins (Iterable(stream)) – Hot gas.

  • outs (Iterable(stream)) – Hot gas.

Warning

Energy balance is not performed for this unit.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery OHX'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryPollutionControl(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', **kwargs)

Pollution control device in the biogenic refinery is used for the pollution control and pre-heating of the feedstock.

Due to the inefficiencies of the pyrolysis process, there are typically pollutants in the exhaust. In order to treat these pollutants, the Biogenic Refinery has a catalyst, similar to a catalytic converter in a car, to ensure destruction of the pollutants before they can be released into the surrounding environment. The process of destroying the pollutants requires the catalyst to maintain temperatures above 315°C, and additional energy is released during this process. The temperature of the catalysis is closely monitored because the catalyst material will start to degrade above 615°C and could cause the feedstock to prematurely pyrolyze in the fuel auger.

The following components should be included in system thermo object for simulation: N2O.

The following impact items should be pre-constructed for life cycle assessment: StainlessSteel, Steel, ElectricMotor, CatalyticConverter.

Parameters:
  • ins (Iterable(stream)) – Hot gas, fugitive N2O (from the carbonizer base).

  • outs (Iterable(stream)) – Hot gas, fugitive N2O.

References

[1] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

line: str = 'Biogenic refinery pollution control'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryScrewPress(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', split=None, settled_frac=None, if_N2O_emission=False, **kwargs)

Screw Press is used for dewatering where sludge, conditioned with cationic polymer, is fed into the unit. Sludge is continuously dewatered as it travels along the screw.

The following components should be included in system thermo object for simulation: Water, Polyacrylamide.

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

Parameters:
  • ins (Iterable(stream)) – Waste for treatment (e.g., wastewater or latrine sludge) and polymer added for treatment.

  • outs (Iterable(stream)) – Treated liquids and solids.

References

[1] Tchobanoglous, G.; Stensel, H. D.; Tsuchihashi, R.; Burton, F.; Abu-Orf, M.; Bowden, G.; Pfrang, W. Wastewater Engineering: Treatment and Resource Recovery, 5th ed.; Metcalf & Eddy, Inc., AECOM, McGraw-Hill: New York, 2014.

[2] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

See also

qsdsan.sanunits.SludgeThickening

line: str = 'Biogenic refinery screw press'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class

class qsdsan.sanunits._biogenic_refinery.BiogenicRefineryStruvitePrecipitation(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), thermo=None, init_with='WasteStream', Mg_molar_split=(1, 0), **kwargs)

Struvite precipitation in the biogenic refinery is used for the recovery of P from the liquid stream as solid struvite.

The following components should be included in system thermo object for simulation: P, NH3, K, MagnesiumHydroxide, MagnesiumCarbonate, Struvite, FilterBag.

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

Parameters:
  • ins (Iterable (stream)) – Liquid waste, Mg(OH)2, MgCO3, filter bag.

  • outs (Iterable (stream)) – Treated waste, struvite.

  • Mg_molar_split (Iterable(float)) – The molar split between Mg(OH)2 and MgCO3. (1, 0) means all Mg is added as Mg(OH)2 and (0,1) means all MgCO3.

References

[1] Lohman et al., Advancing Sustainable Sanitation and Agriculture through Investments in Human-Derived Nutrient Systems. Environ. Sci. Technol. 2020, 54, (15), 9217-9227. https://dx.doi.org/10.1021/acs.est.0c03764

[2] Tarpeh et al., Evaluating ion exchange for nitrogen recovery from source-separated urine in Nairobi, Kenya. Development Engineering. 2018, 3, 188–195. https://doi.org/10.1016/j.deveng.2018.07.002

[3] Rowles et al., Financial viability and environmental sustainability of fecal sludge treatment with Omni Processors, ACS Environ. Au, 2022, https://doi.org/10.1021/acsenvironau.2c00022

property N_tank

[int] Number of reactor tanks.

line: str = 'Biogenic refinery struvite precipitation'

class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class