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:


The changelog can be consulted here.

Seeking help

You can ask your questions on c4science 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.


To contribute code to Tamaas, you can use Arcanist to send code differentials. In a nutshell, the process to contribute is:

  1. Create a branch for the modifications you wish to submit

  2. Work on your branch (commits + run tests)

  3. arc diff to send your code for review

  4. Commit any requested changes

  5. arc diff to send your modifications

For reviewers:

  1. Checkout a code differential using arc patch D???

  2. Accept the code differential on c4science.

  3. arc land to merge the differential

  4. Profit with arc anoid

Bug reports

You can also contribute to Tamaas by reporting any bugs you find here if you have an account on c4science.