CalebBell / chemicals

chemicals: Chemical database of Chemical Engineering Design Library (ChEDL)
MIT License
186 stars 36 forks source link

reaction.py #8

Closed CalebBell closed 4 years ago

CalebBell commented 4 years ago

What goes in this module?

Here is my local variant of these files. I understand it's pretty important module for biosteam, so I want to make sure this file does what you want. I am quite happy if you want to take the lead on this file! You are doing great work. I am sorry I cannot always get back to you quickly.

reaction.txt test_reaction.txt

yoelcortes commented 4 years ago

Great, I'll take the lead on this one. No worries if you can't get back to me so quickly, your expertise is really helpful and I'm happy that you can still engage yourself in open-source projects like these. I think I'll plan on the following functions:

# This one tries to find any heat of formation, regardless of phase.
# If you prefer, we don't need to implement this one in `chemicals`
# since it just uses the other lookup methods (I can implement it in `thermosteam`)
Hf(CASRN) # -> J/mol, phase 

# `Hf` will call these functions internally until any one is found
# These should be implemented in `chemicals`.
Hfs(CASRN) # -> J/mol
Hfl(CASRN) # -> J/mol
Hfg(CASRN) # -> J/mol

# BioSTEAM's Chemical object will use this one to
# help calculate the heat of formation in the reference phase.
dH_phase(self, T, current_phase, new_phase) # -> J/mol

So the way BioSTEAM would set the heat of formation of a chemical is as follows:

Hf, phase = heat_of_formation(CAS) # Using an alias
self.Hf = Hf + self.dH_phase(298.15, phase, self.phase_ref)

I'll work on this next.

yoelcortes commented 4 years ago

Ahh, I was also meaning to ask, do you know what conditions are our data tables? I know literature reports data at 0, 20, and 25 C. I can also check the literature sources, but I'm not sure where to find them...

CalebBell commented 4 years ago

Hi Yoel,

All the data is nominally at 298.15 K. As you surmise, I would prefer to keep the phase data separate in chemicals. Reconciling the phase data is really great stuff; it's just a lot of work and it's never all done, there is always more work left to do.

CalebBell commented 4 years ago

This was great a job you did Yoel! I really appreciate it.