BioSTEAMDevelopmentGroup / Bioindustrial-Park

BioSTEAM's Premier Repository for Biorefinery Models and Results
MIT License
36 stars 17 forks source link

Questions about wastewater treatment #80

Closed zasddsgg closed 8 months ago

zasddsgg commented 1 year ago

Hello, may I ask you some questions about wastewater treatment? In class AerobicDigestion(bst.Unit) of wastewater treatment source code (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py) a) For code purchase_cost = installation_cost = 0, why the cost is 0? b) For code O2 = -water.imass['O2'], what does the minus sign mean? Isn't water.imass['O2'] a positive number? And there doesn't seem to be any oxygen in the water stream before the code O2 = -water.imass['O2'], but actually, aerobic digestion consumes oxygen, doesn't that make a mistake? c) For code N2 = 0.78/0.22 O2, 0.78/0.22 seems to be the volume ratio, but here we use the mass ratio. Is it Right? d) For code air.imass['O2', 'N2'] += [1.5 O2, 1.5 * N2], does factor 1.5 mean that the air is excessive and how was the factor 1.5 obtained? e) For code water.imol['O2'] = 0, why is oxygen set to 0, since 1.5 means that the air is excessive, so there should be a surplus of oxygen? f) For code vent.copy_flow(water, ('CO2', 'O2', 'N2')), the mole number of O2 in the water stream is already 0, so why still copy oxygen to the vent stream? Thanks for your help. Wish you a good day.

yalinli2 commented 1 year ago

Hi @zasddsgg , to your first question: All costs associated with the conventional wastewater treatment process would be in WastewaterSystemCost: https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/wastewater/conventional.py#LL141C7-L141C27

I'll let @yoelcortes reply the remaining since he coded those, but for c) and d) I think you are correct. However, in general, the air doesn't really affect the design/cost, so they probably don't matter.

BTW, it'll be very helpful in the future if you use permalinks to refer to the code blocks (like what I did in my response), thanks!

zasddsgg commented 1 year ago

Thank you for your answer. Besides the above questions, may I ask you the following questions about wastewater treatment? Thanks for your help. Wish you a good day.

a) In wastewater treatment source code (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/wastewater/conventional.py#LL771), BioSTEAM does not add EVAP after RO, which is used in report of Humbird et.al? Could I consult you what are the considerations behind this?

b) In wastewater treatment source code (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/wastewater/conventional.py#LL739- LL745), what does code def autopopulate_waste_streams() mean, and how does corn stover source code (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py) use def autopopulate_waste_streams()?

c) In the wastewater treatment code (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/wastewater/conventional.py), heat consumption does not seem to be involved, so why the wastewater treatment system does not consider heat consumption or heat production?

d) In corn stover source code (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL136), could I consult you where can I find the source code for bst.create_all_facilities and code on how to connect the inlet streams of the wastewater treatment system with S401 and H201? Also, what is the difference between bst.create_all_facilities and def create_facilities defined in the corn stover source code (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL22)? Because create_facilities is not used in the corn stover source code.

e) For wastewater treatment (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/wastewater/__init__.py#LL37-LL47), is the organic load used to determine whether to use conventional treatment or high rate? For organic load in a few grams of COD/L/d to tens of grams of COD/L/d, use traditional treatment, for hundreds of grams of COD/L/d and above, use high rate. Is it right?

yalinli2 commented 1 year ago

To your questions (and thanks for including the links!): a) Yes there should be an evaporator, but it's more like an ancillary unit to process the brine from RO, and because the WWT process cost is lumped together, so explicitly coding it or not doesn't really make a difference.

b) This basically means the users don't explicitly define what are the streams that need to go through the wastewater treatment process. Instead, biosteam will look at all the streams without a sink and is not combustible and is a slurry, see more about the definition here: https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/9a3c9a5da07733df8926d1997c6bb52d650fea72/biosteam/utils/stream_filters.py

c) I'll need @yoelcortes to reply to this, I thought at some point there were heat calculations for AD (I think well water is used to cool the temperature to AD need). But generally the treatment process happens at 35°C or so and doesn't require a lot of temperature control

d) Source codes for biosteam.create_all_facilities are here: https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/systems.py. The create_facilities function in the cornstover is probably a more tailored version for that biorefinery.

For S401 and H201, their outs are either sent to WWT or boiler, the wastewater stream from S401 is connected using the autopopulate function, the other streams of both units are connected in bst.create_all_facilities

e) The users can decide which one they want, it's just that from our design experiences when COD hits tens of grams per day the high-rate process could be cheaper and have fewer impacts.

zasddsgg commented 1 year ago

Thank you for your answer. I have carefully read the source code you recommended and the flow chart of corn stover model. Many questions have been resolved, while I still have the following questions. Could I consult you for them? Thanks for your help. Wish you a good day.

a) For code if area in https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/systems.py#LL109-LL113, what does that mean and what does ‘area’ mean? For code BT_area or area or 'BT', **(BTkw or {} in https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL35-LL36, what does that mean?

b) For stream in 'makeup_RO_water'和'makeup_process_water' in https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/systems.py#LL170, above two streams are not in the inlet streams of PWC (ProcessWaterCenter) unit in corn stover flowchart?

c) Where does the outlet stream of PWC unit in corn stover flowchart go and how does it circulate into the process because the flowchart does not seem to show that? Where did the BoilerTurbogenerator and cooling tower blowdown and other outflow streams of them, and the ChilledWaterPackage outflow streams, end up? Didn't them go to the wastewater unit?

d) Can the process water be recycled? but the PWC outflow stream does not seem to be connected to other units in corn stover flowchart?

e) Does def create_cellulosic_ethanol_system (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL87) not only contain corn stover model, but the ID of @bst.SystemFactory in cellulosic_ethanol.py (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL82) is cornstover_sys?

f) Do I have to add all the facilities?

g) The create_all_facilities (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL136) in cellulosic_ethanol.py appears to call def create_facilities in syetem.py (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/systems.py#LL73) and not call def create_facilities in cellulosic_ethanol.py (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL22)? Since corn stover's flowchart does not seem to correspond to def create_facilities in cellulosic_ethanol.py. For example, def create_facilities in cellulosic_ethanol.py does not have blowdown_recycle and recycle_process_water_streams (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL22-LL33), nor does it have gas mixer and slurry mixer of the flowchart, while these are all in def create_facilities in system.py (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/systems.py#LL73-LL171), so def create_facilities created in cellulosic_ethanol.py doesn't seem to work, right? When I call create all facilities, does it return create facilities in cellulosic_ethanol.py or create facilities in system.py?

h) Wastewater conventionally.py mentions RO_treated_water.register_alias('recycled_water') (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL730, but the two are not the same in the corn stover flow chart. In corn stover flowchart, recycled_water is the stream s68 (after M1 mixer) and RO_treated_water is the stream s69 (after M2 mixer)? In addition, where does the water in recycled_water stream come from?

i) For https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL47-LL48, what does that mean? In corn stover flowchart, BT-1 corresponds to blowdown stream, CT-1 corresponds to cooling water blowdown stream, and these two streams do not enter PWC, so why are they used as process_water_streams? For https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL56, (BT-1, CT-1) corresponds to makeup_water_streams=None in PWC source code (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/_process_water_center.py#LL80), but (BT-1, CT-1) is actually blowdown? And process_water_streams already includes BT-1 and CT-1 (https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL47-LL48), so what does BT-1 and CT-1 mean here? For https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL78-LL79, BT-1, CT-1 seems to be treated as wastewater, so where does BT-1, CT-1 end up?

yalinli2 commented 1 year ago

To your questions:

a) area originated from NREL reports where units in one process all start with the same letter - i.e., all pretreatment units are A200 units, so it's nothing but a handy way to auto-name and organize the units.

b) to d) & i) streams in and out of PWC are not directly connected to the unit operations that use them, but the total quantities of needed makeup water streams are calculated and consolidated.

Process water are reused - some of them need to first go through the treatment process before reusing. Currently streams go into the wastewater treatment process are auto-populated by default as I mentioned above.

e) I don't think I understand the question, but we are also using the create_cellulosic_ethanol_system function to make similar biorefineries for other feedstocks.

f) What facilities to include depend on you - you don't need to include any of the facilities, the currently list is just based on what NREL has in the report.

g) - h) I'll need @yoelcortes to answer this, but again all process water streams are not explicitly connected, but their quantities are taken care of in PWC

zasddsgg commented 1 year ago

Thank you very much for your answer. When I called wastewater treatment and checked its source code, I encountered the following problems. May I ask you for them? Thank you for your help. Wish you a good day.

a) Are cooling tower and ChilledWaterPackage for reusing cooling water and chilled water? If I purchase cooling water and chilled water, do I still need to add cooling tower and ChilledWaterPackage in the process?

b) I have checked the source code of the process water center, and I understand that the process water center is used to calculate the amount of makeup water needed, so if I use the process water generated by one unit as the process water required by another unit, can I directly recycle the process water stream from one unit to the another unit (i.e. process water stream as recycle stream)? The same is true for RO grade water. If so, is it OK to not add process water center?

c) The cost of wastewater treatment does not seem to include the cost of heat utilities (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL139-LL141). I guess it may be because the corn stover model does not need to purchase heat utilities. But if other processes need to purchase heat utilities, and if the cost of wastewater treatment does not include the cost of heat utilities, isn't that a little bit wrong?

d) In anaerobic digestion of corn stover model (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL87-LL120), oligomers, Z_mobilis, T. reesei, protein, enzyme, cellulase are also converted into WWTsludge, methane and carbon dioxide with conversion of 91%, but these components are all insoluble solids, so is it right that they convert into WWTsludge, methane and carbon dioxide like soluble components?

e) The class AnaerobicDigestion in wastewater conventional.py sets cellulose=0.76 (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL225), shouldn't it be Glucan? Why is there cellulose in chemicals of corn stover model? Isn't glucan used?

f) Class AnaerobicDigestion sets cellulase=0.07084, enzyme=0.7391, denaturedenzyme=0.7391 (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL236), the fraction of cellulase seems to be the fraction of dissolved state, while the Enzyme component seems to be insoluble, so does the enzyme and cellulase dissolve in water and is the enzyme and cellulase solid or liquid? What's the difference between cellulase and enzyme and denaturedenzyme enzyme, and which one is used for enzymatic hydrolysis?

g) Why is aerobic digestion carried out at 35 degrees (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL302-LL304)? Is 25 degrees more reasonable?

h) Aerobic_digestion_reactions and combustion use get_combustion_reaction (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL134), in get_combustion_reaction, why is N converted to nitrogen instead of nitrogen oxides, while like sulfur and carbon, converted to the corresponding oxides? Besides, isn't aerobic digestion supposed to convert N to nitrates? The addition of sodium hydroxide to R602 does not appear to be involved in the neutralization of nitric acid?

i) Why does Glucolig convert to Ash in R602 of the corn stover model? Why is the molecular weight of ash set to 1 in https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cane/chemicals.py#LL56

j) In https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/wastewater/conventional.py#LL309, there is no oxygen in the vent stream, is this reasonable? Aerobic vent flow only contains water, nitrogen and carbon dioxide, why not include other gases, such as sulfur dioxide? And is it unreasonable to put all carbon dioxide into vent?

k) In https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/_process_water_center.py#LL74, what does network_priority = 2 mean? And where does the excess water stream go (https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/_process_water_center.py#LL180)? In https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/_process_water_center.py#LL182-LL183, why is the process water flow rate the amount of process water required in the process (excluding makeup water) plus the amount of water in the excess_water flow? Should it not be the amount of process water (excluding makeup water) required in the process minus the amount of water in the excess_water flow? Why is there no RO-grade water in the 'Process water flow rate'? In https://github.com/BioSTEAMDevelopmentGroup/biosteam/blob/master/biosteam/facilities/_process_water_center.py#LL185-LL186, why is there no RO-grade water in the 'Makeup water flow rate'?

l) In https://github.com/BioSTEAMDevelopmentGroup/Bioindustrial-Park/blob/master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL130-LL133, the water mass of 1kg/h seems too small? And 47 degrees and 3.9atm seem to correspond to the temperature pressure of the 535 stream on page 125 of the corn stover 2011 report (Humbird et.al), which is the filtered liquid stream after filter press, not the recycled_water stream into the filter press?

yalinli2 commented 1 year ago

Yes

a) Are cooling tower and ChilledWaterPackage for reusing cooling water and chilled water?

No

If I purchase cooling water and chilled water, do I still need to add cooling tower and ChilledWaterPackage in the process?

Yes, you don't need to add a PWC if you manually redirect the streams

b) I have checked the source code of the process water center, and I understand that the process water center is used to calculate the amount of makeup water needed, so if I use the process water generated by one unit as the process water required by another unit, can I directly recycle the process water stream from one unit to the another unit (i.e. process water stream as recycle stream)? The same is true for RO grade water. If so, is it OK to not add process water center?

Heat utilities are calculated within individual units, not by the WWTC as a whole. As I mentioned above, I thought at some point there was heat utility calculation in units like AD, but now it doesn't seem to be there, so I'll need @yoelcortes to clarify this

c) The cost of wastewater treatment does not seem to include the cost of heat utilities (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL139-LL141). I guess it may be because the corn stover model does not need to purchase heat utilities. But if other processes need to purchase heat utilities, and if the cost of wastewater treatment does not include the cost of heat utilities, isn't that a little bit wrong?

AD includes four steps and the first one is hydrolysis while complex organics like protein are broken down, you can search for some AD readings

d) In anaerobic digestion of corn stover model (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL87-LL120), oligomers, Z_mobilis, T. reesei, protein, enzyme, cellulase are also converted into WWTsludge, methane and carbon dioxide with conversion of 91%, but these components are all insoluble solids, so is it right that they convert into WWTsludge, methane and carbon dioxide like soluble components?

This is the split, not the composition, I think chemically cellulose are glucan are treated as the same in the module. The Humbird report used these two interchangeably.

e) The class AnaerobicDigestion in wastewater conventional.py sets cellulose=0.76 (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL225), shouldn't it be Glucan? Why is there cellulose in chemicals of corn stover model? Isn't glucan used?

I feel like cellulase is the enzyme used for hydrolysis here - I'm not exactly sure why two were created, but it could be that they exist because multiple biorefinery models (not just corn stover) are using this WWTP, so another enzyme might be used in another biorefinery.

f) Class AnaerobicDigestion sets cellulase=0.07084, enzyme=0.7391, denaturedenzyme=0.7391 (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL236), the fraction of cellulase seems to be the fraction of dissolved state, while the Enzyme component seems to be insoluble, so does the enzyme and cellulase dissolve in water and is the enzyme and cellulase solid or liquid? What's the difference between cellulase and enzyme and denaturedenzyme enzyme, and which one is used for enzymatic hydrolysis?

The temperature will likely be dependent on the outside temperature, see https://www.nrel.gov/docs/fy11osti/51838.pdf, here copy is used mainly to represent the composition, without considering too much on the temperature - temperature of the process might not be actively controlled at all.

g) Why is aerobic digestion carried out at 35 degrees (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL302-LL304)? Is 25 degrees more reasonable?

Theoretically it should be nitrates, and if there's nitric acid there should be reaction, if you send in an PR I'd happily review/merge it, thanks!

h) Aerobic_digestion_reactions and combustion use get_combustion_reaction (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL134), in get_combustion_reaction, why is N converted to nitrogen instead of nitrogen oxides, while like sulfur and carbon, converted to the corresponding oxides? Besides, isn't aerobic digestion supposed to convert N to nitrates? The addition of sodium hydroxide to R602 does not appear to be involved in the neutralization of nitric acid?

MW of ash is set to 1 for convenience. We could choose something else, but it won't make any differences cost-wise. Ash is just a filler chemical for things we don't really rigorously accounted for.

i) Why does Glucolig convert to Ash in R602 of the corn stover model? Why is the molecular weight of ash set to 1 in master/biorefineries/cane/chemicals.py#LL56

Yea it's physically not possible - but again it doesn't make any difference... for such a big model there's no way to accurately account for everything, you'll have to let small things go.

j) In BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL309, there is no oxygen in the vent stream, is this reasonable? Aerobic vent flow only contains water, nitrogen and carbon dioxide, why not include other gases, such as sulfur dioxide? And is it unreasonable to put all carbon dioxide into vent?

network_priority defines the priority of facility units in simulation, the smaller the number, the higher the priority.

k) In BioSTEAMDevelopmentGroup/biosteam@master/biosteam/facilities/_process_water_center.py#LL74, what does network_priority = 2 mean?

I'm not sure, @yoelcortes ? Also @zasddsgg if you really feel that PWC is wrong, you could write your own PWC and send in a PR, thanks!

And where does the excess water stream go (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/facilities/_process_water_center.py#LL180)? In BioSTEAMDevelopmentGroup/biosteam@master/biosteam/facilities/_process_water_center.py#LL182-LL183, why is the process water flow rate the amount of process water required in the process (excluding makeup water) plus the amount of water in the excess_water flow? Should it not be the amount of process water (excluding makeup water) required in the process minus the amount of water in the excess_water flow? Why is there no RO-grade water in the 'Process water flow rate'? In BioSTEAMDevelopmentGroup/biosteam@master/biosteam/facilities/_process_water_center.py#LL185-LL186, why is there no RO-grade water in the 'Makeup water flow rate'?

The mass is probably updated upon simulation, not sure about the T/P tho, need to check with @yoelcortes

l) In master/biorefineries/cellulosic/systems/cellulosic_ethanol.py#LL130-LL133, the water mass of 1kg/h seems too small? And 47 degrees and 3.9atm seem to correspond to the temperature pressure of the 535 stream on page 125 of the corn stover 2011 report (Humbird et.al), which is the filtered liquid stream after filter press, not the recycled_water stream into the filter press?

yalinli2 commented 1 year ago

@zasddsgg please do understand that a lot of times we might miss on small things so that we can focus on things we care, we cannot really spend infinite amount of time to get everything perfectly right - and like George Box said "All models are wrong, some are useful". We often use metrics like MESP to make sure we are not too far off, and once we feel we are in the ballpark range, we move on to the next project. If you feel something is off, please send in an PR and we'd happily review/accept them. Thanks!

PS - above is my personal opinion.

zasddsgg commented 1 year ago

Thank you very much for your answers and suggestions on the model.

In https://www.nrel.gov/docs/fy11osti/51838.pdf, the aerobic digestion of outlet flows temperature is 25 degrees (127 pages, stream 620), so the aerobic digestion occurs under 25 degrees. But the outlet flow temperature of aerobic digestion unit (R602) in the conventional_wastewater_treatment_system is 35 degrees, it seems that aerobic digestion seems to be carried out at 35 degrees, but in fact, should it be carried out at 25 degrees?

The temperature will likely be dependent on the outside temperature, see https://www.nrel.gov/docs/fy11osti/51838.pdf, here copy is used mainly to represent the composition, without considering too much on the temperature - temperature of the process might not be actively controlled at all.

The combustion reaction seems to be directly called in aerobic digestion reaction (BioSTEAMDevelopmentGroup/biosteam@master/biosteam/wastewater/conventional.py#LL134), so I can't seem to directly modify the reaction that occurs in aerobic digestion.

Theoretically it should be nitrates, and if there's nitric acid there should be reaction, if you send in an PR I'd happily review/merge it, thanks!

yalinli2 commented 1 year ago

Hi @zasddsgg , for aerobic digestion, since the aerobic digestion unit does not have code updating the temperature, it's basically copying the temperature of the inlet following AD. You can add in code to update the outlet to 25°C. You can directly edit the unit in BioSTEAM (including the reactions). I'm not sure if we allow external collaborators to create a branch, but you can always fork BioSTEAM and send in a PR. Thank you!

zasddsgg commented 1 year ago

Thanks for your help and answer. I got it. Wish you a good day.