Welcome to the hamopy documentation

Hamopy is a python package for the numerical simulation of one-dimensional heat, air and moisture (HAM) transfer in porous materials. Its principle is the finite-element resolution of the HAM conservation equations. The only requirement to run it is a fairly recent version of SciPy.

The original field of application is the hygrothermal modelling of building materials, although the code is not restricted to it.

Hamopy makes good use of its open-source nature, and gives users complete control over the simulation process. One can:

  • add new materials and customise the equations defining their properties,
  • account for water flow and storage in both liquid and vapor states,
  • include time-dependent boundary conditions,
  • work with fully coupled hygrothermal transfer, or with thermal transfer only (saves time),
  • easily automate many simulations for sensitivity analyses, evolutionary algorithms and such.

Any contribution into improving hamopy is welcome, as to make open-source HAM modelling available and understandable by all.


hamopy may be installed by running

pip install hamopy

Alternatively, you can download and install hamopy by cloning the GitHub repository and running:

python setup.py install

How things work

Once hamopy is detected by your Python installation, this is basically how a simulation is run:

from hamopy.algorithm import calcul
results = calcul(mesh, clim, init, time)

The first line imports the main algorithm of hamopy, the second line runs the simulation under specified conditions (the mesh, clim, init and time objects) and stores results as a python dictionary.

Of course, some questions remain unanswered, which is what this page is for.

User guide


  • Hamstad BM 3: 3rd benchmark exercise of the Hamstad package
  • Hamstad BM 5: 5th benchmark exercise of the Hamstad package