Closed CalebBell closed 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.
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...
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.
This was great a job you did Yoel! I really appreciate it.
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