Menu

About.History

Burkhard Schmidt

History of WavePacket

Prehistory (Fortran 77)

The original concept of WavePacket has been designed by Burkhard Schmidt who has been continuously developing this package ever since. After an inspiring visit to the group of Prof. R. B. Gerber at the Fritz-Haber center of molecular dynamics at the Hebrew University of Jerusalem in 1993, the earliest versions of WavePacket have been written in Fortran 77 (Version 1). During the following years this work was continued in the theoretical chemistry group of Prof. J. Manz at the Free University Berlin (Germany). Over the years a number of students contributed substantially to the project, most notably Karin Finger and Stefan Schulz. The final Fortran 77 version comprises more than 19,000 lines of code (Version 2).

History (Fortran 90)

Since the year 1999, the development of WavePacket has been transferred to the BioComputing group of Prof. Ch. Schütte at the Zuse Institute Berlin and the Mathematical Institute of the Free University. With the help of Illia Horenko and Christian Salzmann, WavePacket was rewritten in Fortran 90 to benefit from the advanced concepts of modularity and the extensive support of array manipulations. At the same time, WavePacket was complemented by additional programs for classical and quantum-classical dynamics. The final Fortran 90 version comprises more than 20,000 lines of code (Version 3).

Classic times (Matlab)

A first version of WavePacket based on the Matlab environment was developed during my course work in the summer of 2004. A first complete version was released on the Web in late 2005. The help of Konrad von Volkmann and Christian Salzmann in constructing an interface to the previous Fortran versions is acknowledged. During the following years, the WavePacket software project was directed by Burkhard Schmidt (Mathematical Institute of the Freie Universität Berlin) and Ulf Lorenz (then at Center of Molecular Movies in Copenhagen, now at Universität Potsdam). The latter one joined the WavePacket development in November 2007, and implemented general DVR (discrete variable representation) schemes by using Matlab classes and objects. This led to a first version completely written in Matlab, which comprises more than 8,500 lines of code (Version 4). Subsequent activities focused on the (optimal) control of open quantum systems and at dimension reduction (Version 5).

Modern times (OOP)

The introduction of generalized DVR methods required a significant restructuring of large parts of the code, thus introducing object-oriented concepts for the first time. Furthermore, we wanted to make the code even more flexible to cover the growing diversity of physical/chemical systems simulated with WavePacket. To this end, we decided to split the WavePacket project into the following two sub-project.

  1. The Matlab sub-project aims at further converting the original code, in order to gradually become more object-oriented. These efforts led to the release of version 6 in December 2018. Within this version we could realize fully classical, hybrid quantum-classical and fully quantum-mechanical simulations, for the first time on an equal footing. Further development of this Matlab-Version is mainly done by Burkhard Schmidt, see also the Wiki pages of the Matlab-version. Since 2021 there are ongoing efforts to make the Matlab-Version compatible with Octave leading to the publication of version 7.

  2. The C++ sub-project aims at a complete rewrite extensively based on object-orientated concepts from the beginning. Further development is mainly done by Ulf Lorenz, see also the Wiki pages of the C++-version. Since 2021 there are ongoing efforts to interface the C++ version with Python first published in version 0.3.4.

  3. As a complement to the two versions of WavePacket described above, we are also offering (since late 2022) a special version named WaveTrain, which strongly builds on low-rank tensor train decomposition techniques. Within the strict limitation of this version to systems with a chain-like topology with nearest-neighbor interactions only, it has the potential to break the curse of dimensionality, i.e. the exponential growth of the computational effort with the number of degrees of freedom.


Related

Wiki: Home