https://github.com/membrizard/pyvaporation
The solution for modelling pervaporation membrane performance based on experimental data
https://github.com/membrizard/pyvaporation
chemical-engineering diffusion environmental-engineering heat-capacity membranes modelling-tool pervaporation physics process-simulation python scientific scipy thermodynamics uniquac vapor-liquid-equilibrium vaporisation-heat vapour-pressure
Last synced: 4 months ago
JSON representation
The solution for modelling pervaporation membrane performance based on experimental data
- Host: GitHub
- URL: https://github.com/membrizard/pyvaporation
- Owner: Membrizard
- License: apache-2.0
- Created: 2022-04-22T13:39:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-18T13:43:42.000Z (almost 2 years ago)
- Last Synced: 2024-12-20T06:06:45.471Z (4 months ago)
- Topics: chemical-engineering, diffusion, environmental-engineering, heat-capacity, membranes, modelling-tool, pervaporation, physics, process-simulation, python, scientific, scipy, thermodynamics, uniquac, vapor-liquid-equilibrium, vaporisation-heat, vapour-pressure
- Language: Jupyter Notebook
- Homepage: https:\\pervaporation-modelling.com
- Size: 3.42 MB
- Stars: 75
- Watchers: 1
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Citation: CITATION.cff
Awesome Lists containing this project
README

For simplification of the package usage we have built the [Pervaporation Modelling App](https://pervaporation-modelling.com)
The app allows performing basic calculations available in the package using a User-friendly web-based UI.
This solution is designed specifically to assist Researchers in the field of Pervaporation membranes development.
By means of the proposed instrument one can easily model a performance of a particular membrane with known permeance (Pi - GPU, SI, kg/(m2 * h * kPa)) and apparent energy of transport activiation (Ea - J/mol) values for each component of a considered binary mixture, if the transport is considered Ideal (Permeances are not dependent on the mixture composition)Or, given that the diffusion curve set of a non-ideal process is measured one can model the non-ideal process in isothermal or non-isothermal (adiabatic) mode.
Non-isothermal modelling for both type of processes supports self-cooling mode, or temperature program mode.The comprehensive review of the theoretical background, applicability and code-examples may be found [here](https://doi.org/10.3390/membranes12080784)
# Following mixtures are Currently built into the solution:
(Current version supports only binary mixtures)* H2O/MeOH
* H2O/EtOH
* H2O/IPOH
* H2O/Acetic acid
* MeOH/toluene
* MeOH/Methyl-tert-butyl ether
* MeOH/Dimethylcarbonate
* EtOH/Ethyl-tert-butyl ether# Assumptions and applicability
* The activity coefficients of the binary mixture are calculated by means of NRTL or UNIQUAC model
* Saturated vapour pressure could be assessed using Antoine or Frost equations
* Vaporisation/Condensation heat values are calculated using Clapeyron-Clausius equation
* Specific heat capacities are calculated using polynomial approximation
* The ideal modelling process is applicable only for the processes, where permeance values do not depend significantly on mixture composition
* The non-ideal modelling is performed only on the basis of specified diffusion curves (Fluxes/Permeances of each component as a function of first component concentration in feed)
* Non-Ideal modelling supports non-linear dependencies of permeances and activation energies on feed composition
* Non-Isothermal processes support pre-defined temperature program (feed temperature as a function of process time may be specified for process modelling)# Installation
Requirements:
python 3.7 or higher
To install:
```
pip install pyvaporation
```# Code examples
You can run `code-examples.ipynb` from `github.com/Membrizard/PyVaporation/code-examples.ipynb`
in order to check the package functionality.# Hints for general usage
* Pre-configured default membranes are located in
```
./tests/default_membranes
```
* VLE data used to fit UNIQUAC Parameters of default mixtures is located in
```
./tests/VLE_data
```
* VLE data for a mixture could be fitted with a UNIQUAC model using
```
fit_vle(
data: VLEPoints,
method: typing.Optional[str] = None,
) -> UNIQUACParameters
```
* To run automated tests for all the modules:
```
python -m pytest -sv tests/
```