/pychemqt

pychemqt intended as a free software tool for calculation and design of unit operations in chemical engineering. The goal is to obtain an equivalent free software to CHEMCAD or hysys. It is written in python using qt as graphics libraries, so is cross-platform.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Build Status coveralls.io analysis codecov.io analysis Code Quality Documentation Status

Introduction

pychemqt is intended to be a free software tool for calculation and design of unit operations in chemical engineering. The goal is to develop free software equivalent to CHEMCAD or hysys. It is written in python using qt as a graphics library, so that it is cross-platform.

Dependencies

  • python3, version 3.x required
  • pyqt binding, support both PyQt5 and PyQt6
  • Numpy-scipy: python library for mathematical computation
  • matplotlib: python library for graphical representation of data
  • iapws: python library for thermodynamic properties of water by IAPWS standards

Optional applications that are required for pychemqt to work with full functionality:

  • freesteam: package for calculating thermodynamic properties of water by IAPWS-IF97
  • coolprop: package for calculating thermodynamic properties using multiparameter equations of state, required 6.x version.
  • python-refprop: package for calculating thermodynamic properties using refprop NIST application
  • openbabel: used to show compound extended formula in database
  • ezodf: package for integration with OpenDocument spreadsheet (ods)
  • openpyxl: package for integration with Microsoft Excel 2007/2010 (xlsx)
  • xlwt: package for integration with Microsoft Excel 97/2000/XP/2003 (xls)
  • reportlab: package to export pdf reports
  • PyQt5-Qscintilla: Custom code viewer and editor with syntax highlight

Features

The development is slow, so the software in in pre-alpha status, with many bugs and with only a few features implemented:

  • UI with support for flow diagrams
  • Database with 800 components
  • Definition of custom compounds
  • Stream definition with temperature, pressure and composition
  • Thermodynamic EoS:
    • Redlich-Kwong (RK)
    • Soave-Redlich-Kwong (SRK)
    • Modified Soave-Redlich-Kwong (MSRK)
    • Peng-Robinson (PR)
    • Peng-Robinson-Stryjek-Vera (PRSV)
    • Benedict-Webb-Rubin-Starling (BWRS)
    • Lee-Kesler
    • EoS multi-parameter type Setzmann-Wagner for several pure fluids
    • GERG EoS for mixtures (Partial)
  • Equipment:
    • Divider
    • Mixer
    • Valve
    • Pipe (Partial)
    • Compressor
    • Expander
    • Pump
    • Generic Heat Exchanger (without design)
    • Double Pipe Heat Exchanger (Partial)
    • Shell and Tube Heat Exchanger (Partial)
    • Fired Heater Heat Exchanger
    • Flash LV
    • Distillation column (simple method FUG)
    • Ciclon
    • Gravity Chamber
    • ElectricPrecipitator
    • Baghouse
    • Spreadsheet equipment (ods,xlsx)
  • Tools
  • Configurable: Units system, property correlation, EoS to use...
  • Internationalization support: english, spanish.

TODO

  • Make more equations of state available
  • Improve the gui
  • Add more equipment: complete heat exchanger, distillation columns, reactors...
  • Clean code and debug bugs
  • Add testing of libraries
  • Improve documentation

For any suggestions, comments, bugs ... you can contact me at email.