BioSTEAMDevelopmentGroup / Bioindustrial-Park

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

Consultation on missing information when creating chemicals #83

Closed zasddsgg closed 9 months ago

zasddsgg commented 9 months ago

Hello, I encountered some problems with missing information when creating a chemical, could I ask you how to solve them? Thanks for your help.

a)The thermodynamic data of penicillin seems to be incomplete, lacking information such as Tb, Hf, heat capacity, LHV, HHV, combustion, etc. Is there any way to complete these datas? The code is as follows: import biosteam as bst Penicillin = bst.Chemical('Penicillin') Penicillin

b) Can BioSTEAM estimate above missing properties based on the structure or smiles of penicillin (just like National Institute of Science and Technology ThermoDataEngine or group contribution method in Aspen plus)?

c) There are two ways to create a chemical: bst.Chemica(' xxx ') or tmo.Chemical(' xxx '), is there any difference between them?

d) The Penicillin reference phase is solid. If I want to separate Penicillin dissolved in organic solvent from other organic matters dissolved in organic solvent by distillation column, do I need to set the penicillin reference phase to liquid state and change the enthalpy of formation to enthalpy of formation in the liquid state when I create penicillin? Or is it only created with bst.Chemical('Penicillin') without any specific modifications and separated it in a distillation column?

Thanks for your help. Wish you a good day.

yoelcortes commented 9 months ago

@zasddsgg,

Please find the answers to your questions here:

a) Pass the data:

bst.Chemical('Penicillin', Hf=Hf, Tb=Tb, ...)

Given Hf and the formula, LHV and HHV will be estimated.

b) Not yet.

c) These are exactly the same

d) You can set the state to solid or liquid to ignore other phases. If you do not set the state, it will participate in vapor-liquid equilibrium and you will need to make sure there is a valid Psat model: bst.Chemical('Penicillin', phase='l' ...)

Hope this helps!