This is an auxiliary program for the Heidelberg MCTDH Package. It converts a potential energy surface into MLPF format, which can be used by MCTDH as a multi-layer operator in ML-MCTDH runs. Compared to potentials fitted by regular Potfit, MLPF potentials are much more compact, so that ML-MCTDH will run much more efficiently, especially if high-accuracy fits are used. For more information and details, see my paper, also available on arXiv.
Support for MLPF in MCTDH exists currently in a development branch, and is planned to be released with version 8.6.
If you use MLPF for your research, you are requested to cite the following paper:
Frank Otto, "Multi-Layer Potfit: An Accurate Potential Representation for Efficient High-Dimensional Quantum Dynamics." J. Chem. Phys. 140, 014106, (2014)
This is the README for MLPF. It and the rest of the documentation are stored in the doc/
subdirectory in Markdown format. For convenience, the documentation is also available in HTML format. Please point your web browser to the README.html
inside doc/
.
If you are using MCTDH, chances are very high that all of the prerequisites are already installed. For reference, this is the software required to build MLPF:
Before first compiling, copy the file local.mk.sample
into local.mk
and edit it, following the comments inside. This is for specifying the compiler and its options, and how to link with BLAS/LAPACK on your system.
To compile, simply run make
. To compile faster, use make -j N
, where N is the number of CPU cores you want to use. This will create a number of executables in the subdirectory bin/
, namely:
To run the MLPF fitting program, use
mlpf inputfile
where the syntax of the inputfile is described in the input file documentation. The generated output files are:
mlpf.dat
-- a binary file containing the MLPF-format potential, which can be read by MCTDH using the mlpf
-statement in the operator file.log
-- a log file, containing information about estimated errors and the number of single-particle potentials for each mode.tree.dot
-- (optional) an input file for Graphviz's dot utility, to display the mode hierarchy.To convert a potential in MLPF format into Natpot format, use
mlpf2npot mlpf.dat modc
where mlpf.dat is the output file of mlpf
, and modc is an integer which specifies the number of the contracted mode. It generates a file called natpot which can be used by several utilities in the MCTDH suite.
To get some information about a full-grid potential, stored in a vpot
or vpot2
file, use
vinfo vpotfile
where vpotfile is the filename of the full-grid potential. It prints out some statistical information about the potential: maximum, minimum, mean, standard deviation, and the L2 norm.