Git Product home page Git Product logo

Comments (3)

CalebBell avatar CalebBell commented on June 18, 2024

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.

tkeskita avatar tkeskita commented on June 18, 2024

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.

CalebBell avatar CalebBell commented on June 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.