Comments (3)
Hi,
My current focus is actually toying with refactoring the library into multiple libraries. Thermo contained too much unrelated functionality and the the scope is huge! Classes like Mixture and Chemical have been a huge challenge to be maintainable - frankly they over-promise by providing a default way to do things. It is not very encouraging to get bug reports complaining someone's table in the back of a textbook disagrees with thermo by 1%, even in the case thermo
is more accurate.
The load time of thermo
is huge also, lazy loading needs to be a part of its future. I have fluids
loading in 10 ms now, and hope to get the feature set of thermo in a similar time frame.
Phase equilibrium continues to be in my focus also - it is very challenging to get the right answers, and the literature is full of active developments in that area. I released an incomplete set of answers once with not great abstractions, and I do not plan on doing so ago.
Flowsheeting applications are really cool. I am generally interested in providing correlations and letting users build their own models for such high level stuff - trying to make it easier for the state of the art to advance in other fields like catalysis, or heat exchanger design. Understanding completely the model you build is a huge advantage that I really think helps people do a better job. Some other things, like a PH flash for flash drums, I have well underway and are planned to be a core feature set at some point. I am interested in helping with modeling but more importantly to me, as a field Chemical Engineering has struggled to get new correlations out and distributed. So for example if someone comes up with a new correlation for estimating flash drum holdups, I hope that could make its way into fluids.separator
.
I am doing my best to keep fluids
and ht
fully maintained and adding new functionality periodically while I work on the future of thermo
. Please note that I am working hard but I do not have a time frame for major updates. I'm not sure what to say about the development status - releasing a fully featured library is often a more challenging aspect than developing something and I think that is the case here.
I am also trying to catch up on the new technologies that have came up in Python lately, starting with my fluids
library. I have started adding type stubs - which is very exciting to me; as well as a strange new world.
I guess if you or someone else have lots of spare time to please PM me and I will try to put you to use working on the upgrade.
Sincerely,
Caleb
from thermo.
Hello,
thanks for your reply! I still need to go through more thermo code, but brief comments so far:
- Thermo as a Python library has been around for long enough that some people might depend on it as-is and don't want it changed. Maybe best to start a new library effort?
- Splitting high level functionality of thermo to another libraries is good idea, keep base lib focus clear. But where to draw the line?
- Change to explicit operation (require user to select a method or allow "any" or raise error) is the right way to go.
- Lazy loading (or late evaluation in general) sounds good, if it does not make code complex. In Python, speed is not a top priority.
- Type annotations (https://docs.python.org/3/library/typing.html) is good idea (code should be written for readability)
- Phase equilibria is huge field, I agree. Separate library is likely good idea, and its development should be thought of as highly experimental and prone to changes along the way.
- I am interested in this open source development work, but only if it is done in public, so that people have opportunity to build and fork on even unfinished work.
Thanks!
BR,
Tuomo
from thermo.
For anyone reaching this issue in the future, a new release with a whole bunch more features and documentation is out as of yesterday, April 14, 2021. Hopefully the library will be much easier to maintain in the future, and allow it to grow with less pain.
from thermo.
Related Issues (20)
- Flashing with H2 throws nonsense `ValueError: math domain error` HOT 2
- `'FAILED from hot start TP'` when `hot_start` is the exact solution HOT 3
- Need example/method for Txy, Pxy, and xy diagrams for binary systems HOT 2
- Bug when calculating Liquid Heat Capacity HOT 1
- Completing activity coefficient partial derivatives HOT 6
- pyinstaller error: CEOSLiquid is not defined HOT 3
- errors when using calcium in mixtures HOT 4
- AttributeError: 'PR' object has no attribute 'S_dep_g' HOT 1
- Which EOS to use for supercritical H2? HOT 3
- Flash calculations: Differences in entropy HOT 4
- Question regarding hydrogen `HeatCapacityGas.T_limits` for `COOLPROP` method HOT 3
- Compute speed of sound of a mixture with a cubic eos HOT 8
- Better HeatCapacityLiquid Extrapolation for Supercritical Temperatures HOT 3
- CoolProp vs thermo HOT 2
- Gas phase mixture enthalpy values decreasing with increased pressure HOT 3
- Data for CAS# 64742-48-9 (Petroleum Naptha) missing HOT 4
- Certain properties missing from nitrogen gas HOT 4
- Mixture diffusion coefficient HOT 1
- PT_surface_special fails for mixture PR78MIX due to missing Tc and Pc attributes HOT 1
- Example for P-T diagrams?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from thermo.