Hydrothermal#
QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems
This module is developed by:
Jianan Feng <jiananf2@illinois.edu>
Yalin Li <mailto.yalin.li@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._hydrothermal.CatalyticHydrothermalGasification(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='Stream', pump_pressure=21302739.972, heat_temp=623.15, cool_temp=333.15, WHSV=3.562, catalyst_lifetime=7920, gas_composition={'C2H6': 0.011, 'C3H8': 0.03, 'CH4': 0.527, 'CO2': 0.432, 'H2': 0.0001}, gas_C_2_total_C=0.5981, P=None, tau=0.3333333333333333, void_fraction=0.5, length_to_diameter=2, diameter=None, N=6, V=None, auxiliary=False, mixing_intensity=None, kW_per_m3=0, wall_thickness_factor=1, vessel_material='Stainless steel 316', vessel_type='Vertical', CAPEX_factor=1)#
CHG serves to reduce the COD content in the aqueous phase and produce fuel gas under elevated temperature (350°C) and pressure. The outlet will be cooled down and separated by a flash unit.
- Parameters:
ins (Iterable(stream)) – chg_in, catalyst_in.
outs (Iterable(stream)) – chg_out, catalyst_out.
pump_pressure (float) – CHG influent pressure, [Pa].
heat_temp (float) – CHG influent temperature, [K].
cool_temp (float) – CHG effluent temperature, [K].
WHSV (float) – Weight Hourly Space velocity, [kg feed/hr/kg catalyst].
catalyst_lifetime (float) – CHG catalyst lifetime, [hr].
gas_composition (dict) – CHG gas composition.
gas_C_2_total_C (dict) – CHG gas carbon content to feed carbon content.
CAPEX_factor (float) – Factor used to adjust CAPEX.
References
- [1] Jones, S. B.; Zhu, Y.; Anderson, D. B.; Hallen, R. T.; Elliott, D. C.;
Schmidt, A. J.; Albrecht, K. O.; Hart, T. R.; Butcher, M. G.; Drennan, C.; Snowden-Swan, L. J.; Davis, R.; Kinchin, C. Process Design and Economics for the Conversion of Algal Biomass to Hydrocarbons: Whole Algae Hydrothermal Liquefaction and Upgrading; PNNL–23227, 1126336; 2014; https://doi.org/10.2172/1126336.
- [2] Davis, R. E.; Grundl, N. J.; Tao, L.; Biddy, M. J.; Tan, E. C.;
Beckham, G. T.; Humbird, D.; Thompson, D. N.; Roni, M. S. Process Design and Economics for the Conversion of Lignocellulosic Biomass to Hydrocarbon Fuels and Coproducts: 2018 Biochemical Design Case Update; Biochemical Deconstruction and Conversion of Biomass to Fuels and Products via Integrated Biorefinery Pathways; NREL/TP–5100-71949, 1483234; 2018; p NREL/TP–5100-71949, 1483234. https://doi.org/10.2172/1483234.
- [3] Elliott, D. C.; Neuenschwander, G. G.; Hart, T. R.; Rotness, L. J.;
Zacher, A. H.; Santosa, D. M.; Valkenburg, C.; Jones, S. B.; Rahardjo, S. A. T. Catalytic Hydrothermal Gasification of Lignin-Rich Biorefinery Residues and Algae Final Report. 87.
- F_BM: dict[str, float]#
All bare-module factors for each purchase cost. Defaults to values in the class attribute
_F_BM_default
.
- F_D: dict[str, float]#
All design factors for each purchase cost item in
baseline_purchase_costs
.
- F_M: dict[str, float]#
All material factors for each purchase cost item in
baseline_purchase_costs
.
- F_P: dict[str, float]#
All pressure factors for each purchase cost item in
baseline_purchase_costs
.
- auxiliary_unit_names: tuple[str, ...] = ('pump', 'heat_ex_heating', 'heat_ex_cooling')#
class-attribute Name of attributes that are auxiliary units. These units will be accounted for in the purchase and installed equipment costs without having to add these costs in the
baseline_purchase_costs
dictionary. Heat and power utilities are also automatically accounted for.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- design_results: dict[str, object]#
All design requirements excluding utility requirements and detailed auxiliary unit requirements.
- equipment_lifetime: int | dict[str, int]#
Lifetime of equipment. Defaults to values in the class attribute
_default_equipment_lifetime
. Use an integer to specify the lifetime for all items in the unit purchase costs. Use a dictionary to specify the lifetime of each purchase cost item.
- heat_utilities: tuple[HeatUtility, ...]#
All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).
- installed_costs: dict[str, float]#
All installed costs accounting for bare module, design, pressure, and material factors. Items here are automatically updated at the end of unit simulation.
- line: str = 'Catalytic hydrothermal gasification'#
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- parallel: dict[str, int]#
Name-number pairs of baseline purchase costs and auxiliary unit operations in parallel. Use ‘self’ to refer to the main unit. Capital and heat and power utilities in parallel will become proportional to this value.
- power_utility: PowerUtility#
Electric utility associated to unit (including auxiliary requirements).
- prioritize: bool#
Whether to prioritize unit operation specification within recycle loop (if any).
- purchase_costs: dict[str, float]#
Itemized purchase costs (including auxiliary units) accounting for design, pressure, and material factors (i.e.,
F_D
,F_P
,F_M
). Items here are automatically updated at the end of unit simulation.
- responses: set[bst.GenericResponse]#
Unit design decisions that must be solved to satisfy specifications. While adding responses is optional, simulations benefit from responses by being able to predict better guesses.
- run_after_specifications: bool#
Whether to run mass and energy balance after calling specification functions
- class qsdsan.sanunits._hydrothermal.HydrothermalLiquefaction(ID='', ins: Sequence[Stream] | None = None, outs: Sequence[Stream] | None = (), thermo=None, init_with='WasteStream', lipid_2_biocrude=0.846, protein_2_biocrude=0.445, carbo_2_biocrude=0.205, protein_2_gas=0.074, carbo_2_gas=0.418, biocrude_C_slope=-8.37, biocrude_C_intercept=68.55, biocrude_N_slope=0.133, biocrude_H_slope=-2.61, biocrude_H_intercept=8.2, HTLaqueous_C_slope=478, TOC_TC=0.764, hydrochar_C_slope=1.75, biocrude_moisture_content=0.063, hydrochar_P_recovery_ratio=0.86, gas_composition={'C2H6': 0.032, 'CH4': 0.05, 'CO2': 0.918}, hydrochar_pre=20889054.371999998, HTLaqueous_pre=206842.80000000002, biocrude_pre=206842.80000000002, offgas_pre=206842.80000000002, eff_T=333.15, P=None, tau=0.25, V_wf=0.45, length_to_diameter=None, diameter=0.174625, N=4, V=None, auxiliary=False, mixing_intensity=None, kW_per_m3=0, wall_thickness_factor=1, vessel_material='Stainless steel 316', vessel_type='Horizontal', CAPEX_factor=1, HTL_steel_cost_factor=2.7, mositure_adjustment_exist_in_the_system=False)#
HTL converts dewatered sludge to biocrude, aqueous, off-gas, and hydrochar under elevated temperature (350°C) and pressure. The products percentage (wt%) can be evaluated using revised MCA model (Li et al., 2017, Leow et al., 2018) with known sludge composition (protein%, lipid%, and carbohydrate%, all afdw%).
Notice that for HTL we just calculate each phases’ total mass (except gas) and calculate C, N, and P amount in each phase as properties. We don’t specify components for oil/char since we want to use MCA model to calculate C and N amount and it is not necessary to calculate every possible components since they will be treated in HT/AcidEx anyway. We also don’t specify components for aqueous since we want to calculate aqueous C, N, and P based on mass balance closure. But later for CHG, HT, and HC, we specify each components (except aqueous phase) for the application of flash, distillation column, and CHP units.
- Parameters:
ins (Iterable(stream)) – dewatered_sludge.
outs (Iterable(stream)) – hydrochar, HTLaqueous, biocrude, offgas.
lipid_2_biocrude (float) – Lipid to biocrude factor.
protein_2_biocrude (float) – Protein to biocrude factor.
carbo_2_biocrude (float) – Carbohydrate to biocrude factor.
protein_2_gas (float) – Protein to gas factor.
carbo_2_gas (float) – Carbohydrate to gas factor.
biocrude_C_slope (float) – Biocrude carbon content slope.
biocrude_C_intercept (float) – Biocrude carbon content intercept.
biocrude_N_slope (float) – Biocrude nitrogen content slope.
biocrude_H_slope (float) – Biocrude hydrogen content slope.
biocrude_H_intercept (float) – Biocrude hydrogen content intercept.
HTLaqueous_C_slope (float) – HTLaqueous carbon content slope.
TOC_TC (float) – HTL TOC/TC.
hydrochar_C_slope (float) – Hydrochar carbon content slope.
biocrude_moisture_content (float) – Biocrude moisture content.
hydrochar_P_recovery_ratio (float) – Hydrochar phosphorus to total phosphorus ratio.
gas_composition (dict) – HTL offgas compositions.
hydrochar_pre (float) – Hydrochar pressure, [Pa].
HTLaqueous_pre (float) – HTL aqueous phase pressure, [Pa].
biocrude_pre (float) – Biocrude pressure, [Pa].
offgas_pre (float) – Offgas pressure, [Pa].
eff_T (float) – HTL effluent temperature, [K].
CAPEX_factor (float) – Factor used to adjust CAPEX.
References
- [1] Leow, S.; Witter, J. R.; Vardon, D. R.; Sharma, B. K.;
Guest, J. S.; Strathmann, T. J. Prediction of Microalgae Hydrothermal Liquefaction Products from Feedstock Biochemical Composition. Green Chem. 2015, 17 (6), 3584–3599. https://doi.org/10.1039/C5GC00574D.
- [2] Li, Y.; Leow, S.; Fedders, A. C.; Sharma, B. K.; Guest, J. S.;
Strathmann, T. J. Quantitative Multiphase Model for Hydrothermal Liquefaction of Algal Biomass. Green Chem. 2017, 19 (4), 1163–1174. https://doi.org/10.1039/C6GC03294J.
- [3] Li, Y.; Tarpeh, W. A.; Nelson, K. L.; Strathmann, T. J.
Quantitative Evaluation of an Integrated System for Valorization of Wastewater Algae as Bio-Oil, Fuel Gas, and Fertilizer Products. Environ. Sci. Technol. 2018, 52 (21), 12717–12727. https://doi.org/10.1021/acs.est.8b04035.
- [4] Jones, S. B.; Zhu, Y.; Anderson, D. B.; Hallen, R. T.; Elliott, D. C.;
Schmidt, A. J.; Albrecht, K. O.; Hart, T. R.; Butcher, M. G.; Drennan, C.; Snowden-Swan, L. J.; Davis, R.; Kinchin, C. Process Design and Economics for the Conversion of Algal Biomass to Hydrocarbons: Whole Algae Hydrothermal Liquefaction and Upgrading; PNNL–23227, 1126336; 2014; https://doi.org/10.2172/1126336.
- [5] Matayeva, A.; Rasmussen, S. R.; Biller, P. Distribution of Nutrients and
Phosphorus Recovery in Hydrothermal Liquefaction of Waste Streams. BiomassBioenergy 2022, 156, 106323. https://doi.org/10.1016/j.biombioe.2021.106323.
- [6] Knorr, D.; Lukas, J.; Schoen, P. Production of Advanced Biofuels
via Liquefaction - Hydrothermal Liquefaction Reactor Design: April 5, 2013; NREL/SR-5100-60462, 1111191; 2013; p NREL/SR-5100-60462, 1111191. https://doi.org/10.2172/1111191.
- F_BM: dict[str, float]#
All bare-module factors for each purchase cost. Defaults to values in the class attribute
_F_BM_default
.
- F_D: dict[str, float]#
All design factors for each purchase cost item in
baseline_purchase_costs
.
- F_M: dict[str, float]#
All material factors for each purchase cost item in
baseline_purchase_costs
.
- F_P: dict[str, float]#
All pressure factors for each purchase cost item in
baseline_purchase_costs
.
- auxiliary_unit_names: tuple[str, ...] = ('heat_exchanger', 'kodrum')#
class-attribute Name of attributes that are auxiliary units. These units will be accounted for in the purchase and installed equipment costs without having to add these costs in the
baseline_purchase_costs
dictionary. Heat and power utilities are also automatically accounted for.
- baseline_purchase_costs: dict[str, float]#
All baseline purchase costs without accounting for design, pressure, and material factors.
- design_results: dict[str, object]#
All design requirements excluding utility requirements and detailed auxiliary unit requirements.
- equipment_lifetime: int | dict[str, int]#
Lifetime of equipment. Defaults to values in the class attribute
_default_equipment_lifetime
. Use an integer to specify the lifetime for all items in the unit purchase costs. Use a dictionary to specify the lifetime of each purchase cost item.
- heat_utilities: tuple[HeatUtility, ...]#
All heat utilities associated to unit. Cooling and heating requirements are stored here (including auxiliary requirements).
- installed_costs: dict[str, float]#
All installed costs accounting for bare module, design, pressure, and material factors. Items here are automatically updated at the end of unit simulation.
- line: str = 'Hydrothermal liquefaction'#
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- parallel: dict[str, int]#
Name-number pairs of baseline purchase costs and auxiliary unit operations in parallel. Use ‘self’ to refer to the main unit. Capital and heat and power utilities in parallel will become proportional to this value.
- power_utility: PowerUtility#
Electric utility associated to unit (including auxiliary requirements).
- prioritize: bool#
Whether to prioritize unit operation specification within recycle loop (if any).
- purchase_costs: dict[str, float]#
Itemized purchase costs (including auxiliary units) accounting for design, pressure, and material factors (i.e.,
F_D
,F_P
,F_M
). Items here are automatically updated at the end of unit simulation.
- responses: set[bst.GenericResponse]#
Unit design decisions that must be solved to satisfy specifications. While adding responses is optional, simulations benefit from responses by being able to predict better guesses.
- run_after_specifications: bool#
Whether to run mass and energy balance after calling specification functions