MinervaLab is a collection of interactive simulations of Thermodynamics and Statistical Physics developed in order to provide both teachers and students with a tool to visualize some specially difficult concepts related to this subjects.
Notebooks can be executed directly on Binder just by click on the file paths of the table below.
Theoretical explanations about phase transitions and van der Waals isotherms can be found in Read the Docs (in Basque).
A Product Breakdown Structure (PBS) system has been used during the development of this proyect, assigning a unique code to every concept/program/element. The following chart can be useful as a guide to understand the names of the variables used along all the programs.
PBS # | Concept | File path | Description |
---|---|---|---|
#110-000 | Van der Waals equation of state | apps/van_der_waals | A collection of programs aimed to visualize the different aspects of the phase transitions of a gas that follows the Van der Waals equation of state. |
#111-000 | Maxwell’s construction on van der Waals isotherms | apps/van_der_waals/p_v_2D.ipynb | A two-dimensional representation of the p(v,T) space during a gas-liquid phase transition (using reduced variables). |
#112-000 | Visualization of molar volume during a liquid-gas phase transition | apps/van_der_waals/phase_transition_volume.ipynb | A visualization of how each phase volume changes during a phase transition. |
#113-000 | Critical points for various fluids | apps/van_der_waals/critical_points.ipynb | An interactive database of Van der Waals equation's a and b parameters that allows to visualize the critical points of a sort of elements. |
#114-000 | Effect of a and b in van der Waals isotherms | apps/van_der_waals/effect_of_a_and_b.ipynb | A sort of representations of p(v,T) which gives the opportunity to interact with the a and b parameters in absolute variables. |
#115-000 | Compare elements’ isotherms | apps/van_der_waals/compare_elements.ipynb | A program which allows to compare the p(v,T) isotherms for a given sort of elements. |
#116-000 | Van der Waals isotherms in 3D | apps/van_der_waals/p_v_T_3D.ipynb | A three-dimensional representation of the p(v,T) space during a gas-liquid phase transition (using reduced variables). |
#117-000 | Chemical potential of a van der Waals real gas | apps/van_der_waals/chemical_potential.ipynb | A program that allows to construct the chemical potential starting from the p(v,T) space. |
#118-000 | Mathematical analysis of the van der Waals isotherms | apps/van_der_waals/mathematical_analysis.ipynb | A visualization of Vander Waals' equation of state from a analytical point of view. |
#119-000 | Mathematical analysis of the effect of a and b parameters | apps/van_der_waals/parameters_analysis.ipynb | A visualization of Vander Waals' equation of state from a analytical point of view in order to study the effect of a and b parameters on the mathematical function. |
#11A-000 | Stability condition on van der Waals isotherms | apps/van_der_waals/stability.ipynb | A visualization of dp/dv in order to study the stability of the system. |
#11B-000 | p-T plane and Gibbs free energy | apps/van_der_waals/p_T_2D.ipynb | An interactive visualization of the p(T) plane and the Gibbs free energy for a gas-liquid phase transition. |
#11C-000 | Effect of a and b in van der Waals isotherms (reduced variables) | apps/van_der_waals/effect_of_a_and_b_reduced.ipynb | A sort of representations of p(v,T) which gives the opportunity to interact with the a and b parameters in reduced variables. |
#11D-000 | Change in molar entropy during a first-order phase transition | apps/van_der_waals/entropy.ipynb | The aim of this notebook is to visualize the change in molar entropy during a first-orden liquid-gas transition. |
bqplot
(version = 0.11.6)ipywidgets
scipy
numpy
[1][2]pip
matplotlib
[3]qgrid
ipyvolume
pandas
[4]appmode
LaTeX is required to generate matplotlib figures. Further information can be found in the files inside binder
folder.
-
Install
virtualenv
and create a new virtual environment to isolate MinervaLab: virtualenv installation guide. -
Activate the virtual environment and install Jupyter in it: install Jupyter using pip
-
Install all the dependencies listed in the section Dependencies. Some may require to activate them as a Jupyter extension.
-
Git clone (using
git clone https://github.com/jongablop/MinervaLab.git
) or download the repo. -
Put it in the root of the new virtual environment and start Jupyter:
cd MinervaLab
jupyter notebook
This software is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
[1] Travis E. Oliphant. A guide to NumPy, USA: Trelgol Publishing, (2006).
[2] Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux. The NumPy Array: A Structure for Efficient Numerical Computation, Computing in Science & Engineering, 13, 22-30 (2011), DOI:10.1109/MCSE.2011.37 (publisher link)
[3] J. D. Hunter, Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, vol. 9, no. 3, pp. 90-95, 2007
[4] Wes McKinney. Data Structures for Statistical Computing in Python, Proceedings of the 9th Python in Science Conference, 51-56 (2010) (publisher link)
Fernando Pérez and Brian E. Granger. IPython: A System for Interactive Scientific Computing, Computing in Science & Engineering, 9, 21-29 (2007), DOI:10.1109/MCSE.2007.53 (publisher link)