Software for interdisciplinary research in materials modelling
Working side-by-side with mathematicians and application scientists (see also collaborations) on a daily basis has allowed me to learn how to mediate and lower barriers between the disciplines. Apart from problems in the terminologies used in the individual subjects a frequent issue is the lack of software, which allows multiple communities to join forces in one program package. One central effort is mine is therefore to provide flexible codes that enable researchers to develop methods synergically across scientific fields.
Density-functional ToolKit (DFTK)
The Density-Functional ToolKit is a flexible Julia code for density-functional theory (DFT) simulations, which I co-develop with Antoine Levitt. After less than three years of development and with less than 7000 lines of code DFTK features an efficiency which allows the routine treatment of systems beyond 800 electrons. At the same time arbitrary reduced models (e.g. analytical potentials, Gross-Pitaevskii-type problems, reduced dimensionality) can be constructed, such that the code supports testing and developing novel algorithms in the settings accessible to rigorous numerical analysis or uncertainty quantification. Additional features such as built-in support for automatic differentation or arbitrary precision make DFTK the ideal prototyping platform for solid-state DFT methods. This makes DFTK a central component in many of my collaborations including the MIT Center for Exascale Simulation of Material Interfaces in Extreme Environments, the CMU Accelerated Computational Electrochemical systems Discovery project and the ERC Synergy Extreme-scale Mathematically-based Computational Chemistry.
ADC connect (adcc)
In collaboration with the Dreuw group at Heidelberg University we recently published the adcc (ADC connect) python/C++ code. The aim of adcc is to facilitate the development of novel excited-states methods based on the algebraic-diagrammatic construction scheme for the polarisation propagator (ADC). The code has already been involved in a number of recent publications, including a recent publication in which we proposed an iterative scheme to characterise and remove the error introduced by the core-valance separation approximation (a standard technique to simulate X-ray spectroscopy and core excitations.
Other projects I have contributed to include:
- AtomsBase.jl: Community effort to provide a common interface for atomic structures in Julia
- molsturm: Proof-of-concept quantum-chemistry program for basis-function-agnostic quantum chemistry.
- Psi4: Open-source quantum-chemistry software suite
- Q-Chem: Commercial quantum-chemistry software suite
- QCEngine: Unified programmable python interface for a number of quantum-chemistry software packages
- Daniel G. A. Smith, Anabelle T. Lolinco, Zachary L. Glick and others. Quantum Chemistry Common Driver and Databases (QCDB) and Quantum Chemistry Engine (QCEngine): Automation and Interoperability among Computational Chemistry Programs. Journal of Chemical Physics, 155, 204801 (2021). DOI 10.1063/5.0059356 [code] Blog article.
- Michael F. Herbst, Antoine Levitt and Eric Cancès. DFTK: A Julian approach for simulating electrons in solids. JuliaCon Proceedings, 3, 69 (2021). DOI 10.21105/jcon.00069 [slides] [code] Blog article.
- Michael F. Herbst, Maximilian Scheurer, Thomas Fransson, Dirk R. Rehn and Andreas Dreuw. adcc: A versatile toolkit for rapid development of algebraic-diagrammatic construction methods. WIREs Computational Molecular Science, 10, e1462 (2020). DOI 10.1002/wcms.1462 [code] Blog article.