Tamaas’ footprint in the tribology community
Tamaas, the open-source, high-performance rough contact simulation library, is slowly seeing adoption in the academic and industrial tribology communities. Since its first public release in 2019, after 4 years of git-recorded history, and longer prior apocryphal development, Tamaas has been used outside of its research “birthplace” to study contact of non-Gaussian surfaces, benchmark a spherical cap harmonic analysis method for non-flat rough surfaces, validate finite-element rough contact solutions, investigate conductivity of rough contacts, gain insights in elastic-plastic rock contacts and ice friction, probably among other uses that I am not aware of.
The December 2023 cover story of Tribology & Lubrication Technology, the magazine of the Society of Tribologists and Lubrication Engineers, mentions Tamaas as a positive example of open-source code in the tribology community, which is still very closed when it comes to modeling efforts.
This is the perfect occasion for me to talk about the evolution of Tamaas: what new features were added since the first public release, what is the state of Tamaas’ support (human and financial), and what developments are planned for its future.
PhD work — Development at LSMS on volumetric elastic-plastic contact
When Guillaume Anciaux shared his code with the Computational Solid Mechanics Laboratory, and Ramin Aghababaei chose the name Tamaas, at the start of my PhD thesis in 2016, the library was only capable of solving normal elastic contact of rough surfaces. The first year of development saw the addition of adhesive and saturated contact solvers by Valentine Rey and associated friction solvers by myself (later reimplemented in the new core by Son Pham-Ba). In the middle of 2017 I started reimplementing the core of the library in anticipation of the 3D developments necessary for elastic-plastic contact. After the derivation of the Fourier-space Mindlin solution in December 2017, 2018 saw the implementation of the Fourier-accelerated volume integral method, which was presented at ECCOMAS 2018 in Glasgow.
The last year of my PhD was dedicated to polishing the code (e.g. with a symbolic, compile-time integration library, expolit, now part of Tamaas’ source tree), creating the documentation, preparing a Python package installable with pip. In fall of 2019, a Zenodo release, coinciding with the submission of my thesis manuscript and the preprint submission of my article on crack nucleation in rough contacts, marked the first public release of Tamaas.
Post-PhD work — Improving usability and performance
This first release, version 2.0.0, marks a soft feature freeze in terms of modeling abilities, but the start of significant improvements to quality of life and performance features.
Since version 2.0.0, feature improvements are documented in the
year 2020 marks the publication of the JOSS
article, the transition to Gitlab, the
improvement of ease of use of the build-system, and most importantly a working
MPI implementation. In 2021, the Python interface of core objects was reworked
to be more Pythonic, and input-output routines were improved. In 2022, a good
number of utility functions were added, the
interface was implemented for a number of Tamaas’ integral operators, allowing
seamless integration with Scipy’s linear solvers. Finally, new modeling features
and performance improvements were added in 2023: among them the ability to
simulate non-periodic contact, as well the possibility of modeling contact with
heterogeneous materials. An Anderson-mixing iteration was implemented,
drastically improving the reliability and performance of elastic-plastic contact
simulations, and more of Tamaas’ internals were exposed on the user-facing
Python API, giving more flexibility in prototyping new simulation procedures.
Having found a permanent academic position in an institution supportive of high-performance mechanics simulation codes (Basilisk and the PARIS Simulator Code, among many others, are supported by ∂’Alembert), the future of Tamaas as an, open, active tribology research project is secure!
I cannot discuss new modeling efforts in store for Tamaas yet (research proposals in the pipeline), but several major technical improvements are planned for the near future:
- Integration with the PETSc matrix-free API and solvers (linear, non-linear and constrainted) is in the works. Tamaas’ solvers are good but rather limited, and Scipy’s solvers are not parallel. PETSc implements robust solvers that can be used in an MPI context, and is used by much larger projects than Tamaas (e.g. Akantu, FEniCS and MoFEM).
- MFront is a tool that generates optimized code for constitutive laws written in a domain-specific language. It boasts a large number of tested constitutive laws, and has been successfully integrated in codes like FEniCS. With the recent rework of materials classes in Tamaas, an MFront integration could drastically improve the modeling capabilities of Tamaas.
- The MPI implementation has been very robust thus far (I have pushed elastic simulations upwards of 1 billion DOFs and elastic-plastic simulations larger than 150 million DOFs) and should soon make it out of experimental.
- In the long-term, consolidation efforts are planned with other open-source packages for contact simulations, like SurfaceTopography and ContactEngineering. The latter is an open-platform cojointly developed by the groups of Lars Pastewka and Tevis Jacobs for the multi-scale analysis of rough surface measurements. A recent plugin system should allow the integration of Tamaas among the analysis methods available!
More than ever, contributions are welcome! Modeling research in tribology is becoming more and more diverse, and Tamaas aims to be a base platform to support this complex endeavor. I wholeheartedly encourage researchers using Tamaas to share their code with the community, or even better, contribute their code back to Tamaas.