In computational science software is the central platform. It serves both to develop new ideas and algorithms, but also to test them on application-relevant problems, which in turn frequently needs to new research directions from the uncovered flaws and insufficiencies.
Even more so in the interdisciplinary research setting of the MatMat group software also serves as the scaffolding, which coordinates and collects the advances from various disciplinary communities. With this in mind a primary focus in our software projects is thus to make our codes accessible across research backgrounds and in this way facilitate cross-community fertilisation. Our software is open-source, see epfl-matmat on github, and often developed in collaboration with contributors across the globe.
The Density-Functional ToolKit is a Julia-based code for plane-wave density-functional theory simulations, which our group co-develops and employs to conduct the majority of our research (see Self-adapting simulations and Estimation of simulation error). DFTK was started in 2019 and despite only 7500 lines of code we unlocked a sizable feature set. This includes an efficiency to routinely treat systems beyond 1000 electrons (using MPI / GPU parallelisation) and at the same time support for arbitrary reduced models (e.g. analytical potentials, Gross-Pitaevskii-type problems, reduced dimensionality). Non-standard features include built-in support for automatic differentation and arbitrary precision, which make DFTK the ideal prototyping platform for solid-state DFT methods.
For some introductory material about DFTK, see the DFTK documentation.
Our group participates in ongoing community efforts to build the software infrastructure required for atomistic modelling in julia, such as the ones grouped within the JuliaMolSim github organisation.
Most importantly this includes AtomsBase, a package providing a common interface for atomic structures for other Julia packages to use. With AtomsBase packages for parsing structure files (e.g. AtomsIO), for visiualising structures or for running simulations (such as DFTK) can seamlessly integrate, allowing a data-flow of atomistic structures in a completely user-transparent way.
With ReducedBasis we developed a Julia package to accelerate the setting, where one wishes to solve a parametrised eigenproblems for a number of parameter instances with low to medium precision. Our main interest for developing this package is our work on quantum spin systems, where the strength of interaction between the spins are the parameters of the problem. In turn solving a single eigenproblem requires expensive methods, for example tensor network approaches (MPS, DMRG), which can easily take hours to days per instantce. With ReducedBasis we manage to drastically reduce the number of parameter instances where the eigenproblem needs to be solved for standard tasks (e.g. phase diagrams). The code makes it easy to swap the considered eigenproblem or the underlying solvers, such that we believe this package to be useful beyond its original purpose.
Other projects where we participate and regularly contribute include:
adc-connect: Hybrid python/C++ for rapid development of algebraic-diagrammatic construction methods (ADC), a Greens-function-based approach for computational spectroscopy. Contributions: Michael initialised the project in 2018.
ddx: Domain-decomposition-based approach to linear-scaling continuum solvation models for molecular quantum chemistry. Contributions: Python/C interfaces and integration with Psi4 and adcc.
Psi4: Open-source quantum-chemistry software suite. Contributions: Interfaces to adcc and ddx, smaller fixes.
QCEngine: Unified programmable python interface for a number of quantum-chemistry software packages. Contributions: adcc interface.
|||M. F. Herbst, A. Levitt, E. Cancès. JuliaCon Proceedings. 3, 69 (2021). DOI https://doi.org/10.21105/jcon.00069|
|||P. Brehmer, M. F. Herbst, S. Wessel, M. Rizzi, B. Stamm. Reduced basis surrogates for quantum spin systems based on tensor networks. arXiv 2304.13587|