Welcome
TRIQS (Toolbox for Research on Interacting Quantum Systems) is a scientific software library providing various building blocks that facilitate the implementation and developement of new tools and algorithms for the study of interacting quantum systems.
TRIQS provides efficient implementations in C++ and exposes its functionality through high-level interfaces in Python. This paradigm allows our users to quickly develop new ideas and algorithms, while benefiting from the performance of a compiled language.
TRIQS started in 2005 as a collaboration between IPhT Saclay and Ecole Polytechnique, and has since seen contributions from a large number of research groups around the world. The initial publication Comput. Phys. Commun. 196 398 has been cited by more than 300 peer-reviewed publications.
TRIQS is free software distributed under the GPL license.
TRIQS applications
Within the broader TRIQS ecosystem we provide various TRIQS applications that assemble the TRIQS library components to provide full-fleged and cutting-edge implementations of different many-body algorithms. They allow for example to solve a generic quantum impurity model or to run a complete DFT+DMFT calculation.
The TRIQS library and applications have enabled researchers to address topics as diverse as:
Spin-Orbit Coupling and Electronic Correlations in Sr2RuO4, Phys. Rev. Lett. 120 126401
Late transition metal oxides with infinite-layer structure: Nickelates versus cuprates, Phys. Rev. B 101 081110
Many-Body Electronic Structure of NdNiO2 and CaCuO2 Phys. Rev. X 10 021061
Tracking the Footprints of Spin Fluctuations: A MultiMethod, MultiMessenger Study of the Two-Dimensional Hubbard Model Phys. Rev. X 11, 011058
Linear resistivity and Sachdev-Ye-Kitaev (SYK) spin liquid behavior in a quantum critical metal with spin-1/2 fermions Proc. Natl. Acad. Sci. USA 117, 18341
Various other TRIQS related research publications can be found through a targeted Google Scholar search.
Core libraries
The TRIQS library is built on a set of stand-alone core libraries providing important functionalities:
TRIQS/h5 : a high-level C++ interface to the hdf5 library
TRIQS/mpi : a high-level C++ interface to the Message Passing Interface
TRIQS/itertools : a C++ library to create and adapt C++ ranges
TRIQS/nda : a C++ library providing an efficient and flexible multi-dimensional array class
Numerical Algorithms
TRIQS provides implementations of advanced numerical algorithms that are directly relevant to the study of interacting quantum systems, for example:
Orthogonal polynomial representation of imaginary-time Green’s functions Phys. Rev. B 84 075145
Discrete Lehmann representation of imaginary time Green’s functions Phys. Rev. B 105 235115 through the cppdlr library arXiv.2404.02334
Constrained residual minimization Dyson Solver arXiv:2310.01266
Please cite the relevant papers when using these algorithms in your research.
TRIQS Community
Connect with fellow users and developers through our TRIQS Slack Workspace, where you can share insights, ask questions, and get involved in the development of TRIQS and applications. We also provide information about new software releases and events such as summer schools and our annual TRIQS Community Meeting. We look forward to welcoming you to our community!
Where to start?
First, visit our Install section to obtain the TRIQS library.
We then strongly recommend first-time users to go through the extensive set of Jupyter Notebook tutorials provided on GitHub. You can run the notebooks either in an interactive Binder Session on the web or run them locally after setting up TRIQS on your computer.
To get an overview of the main TRIQS classes and their organizations, you can browse through the ready-to-use code snippets of our User guide section.
After those steps, you will be familiar with the library and can use the complete Documentation to answer your questions.
If you experience any problem with the library, we have set up a platform for discussions with other users and developers through the Github Discussions forum. You can also post an issue on the TRIQS GitHub.
Finally, if you want to contribute to the project, please check our Contributing section.