Library overview

Tamaas is mainly composed of three components:

  • Random surface generation procedures

  • Model state objects and operators

  • Contact solving procedures

These parts are meant to be independent as well as inter-operable. The first one provides an interface to several stochastic surface generation algorithms described in Random rough surfaces. The second provides an interface to a state object Model (and C++ class tamaas::Model) as well as integral operators based on the state object (see Model and integral operators). Finally, the third part provides contact solving routines that make use of the integral operators for performance (see Solving contact).


The following tutorial notebooks can also be used to learn about Tamaas:


Tamaas is the fruit of a research effort. To give proper credit to its creators and the scientists behind the methods it implements, you can use the tamaas.utils.publications() function at the end of your python scripts. This function scans global variables and prints the relevant citations for the different capabilities of Tamaas used. Note that it may miss citations if some objects are not explicitly stored in named variables, so please examine the relevant publications in doi:10.21105/joss.02121.


The changelog can be consulted here.

Seeking help

You can ask your questions on gitlab using this form. If you do not have an account, you can create one on this page.


Contributions to Tamaas are welcome, whether they are code, bug, or documentation related. Please have a read at the Developer documentation.


Please fork Tamaas and submit your patch as a merge request.

Bug reports

You can also contribute to Tamaas by reporting any bugs you find here if you have an account on gitlab. Please read the FAQ before posting.