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.
MCTDH version 8.5.7 or higher is required to make use of potentials in MLPF format.
In case of problems with this software, please check the Bitbucket repository for a potentially updated version, or to report issues.
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 $MCTDH_DIR/doc/mlpotfit
subdirectory.
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
usual MCTDH bin/binary/$MCTDH_PLATFORM
subdirectory, namely:
To run the MLPF fitting program, use
mlpf inputfile
where the syntax of the inputfile is described in the MLPF 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.