Contents of the MNDO Git Repository
Program MNDO is distributed via a Git repository hosted at the Max Planck Institute für Kohlenforschung in Mülheim an der Ruhr that may be accessed by licensed users.
After downloading the repository and a local working copy of its current state, the latest precompiled binary for 64-bit Linux systems with Intel Xeon and compatible processors can be found in the BIN directory. The current executable supports up to 1500 QM atoms and 50 000 point charges and has been built on a system with an older Linux installation so it will run with older kernel versions that might still be in use today.
Directories whose names start with 'test' contain test jobs. Their main purpose is the validation of an executable but they may also serve as example input files. To run the test suite with the precompiled binary, simply cd into the BIN directory and type 'make test' or 'make tests'. The test suite supports execution of jobs parallel to each other using option '-j n' where n is the number of concurrent make processes to be used. For sufficiently new versions of make, option '-O' may be used to prevent terminal messages from different tests getting mingled.
After all jobs have completed, a table will be printed informing the user about the number of successful and failed tests. For some modules these numbers do not add up to the total number of tests because a few tests are being skipped. Especially conical intersection optimizations by penalty function search (like the Ciminelly algorithm) are numerically sensitive and on some system configurations the results may not meet the strict criteria that apply to all calculated energies, so these deviations may be safely ignored. After the test suite has finished, 'make testclean' will remove all output files so that the entire test suite may be run again. Otherwise only the failed test jobs will be repeated.
Only very few central source files (MNDO2020.f, LIMIT.f90, and CONST.f90) from which the executable was built are located in the topmost directory. Most others are distributed over a number of subdirectories with upper-case names. The following table gives a brief overview over folders with source files and test jobs:
Sources | Tests | Description |
---|---|---|
2020 | testjobs | Core functionality (standard input). |
testkeys | Core functionality (keyword input). | |
testmopac6 | Compatibility with MOPAC 6. | |
PS | testps | Fully analytical and semi-analytical derivatives. |
GUGACI | testguga | GUGA-based CI module. |
ES | testes | Dedicated spin-flip single-excitation CI module. |
PSEX | testpsex | Module dealing with multiple excited states for surface crossings, molecular dynamics with surface hopping etc., and Born-Oppenheimer MD. |
HDLCOPT | testhdlc | HDLC optimizer. |
CGDMS | testlindir | Linear-scaling conjugated density matrix search SCF module using full matrices. |
SPARSE | testsparse | Linear-scaling conjugated density matrix search SCF module using sparse matrices. |
SKIT | Original SPARSEKIT sources, for reference purposes only. | |
VB | testvb | Valence-bond module. |
DFTB | testdftb | Semiempirical SCC-DFTB module by Markus Elstner. This code however is not included in the distribution nor in the Git repository. |
SCOSMO | testscosmo | Unfortunately, the SCOSMO implementation in program MNDO is incomplete. |
testanu | contains a suite of 14 benchmark jobs obtained from Ross Nobes (Australian National University, ANU, Canberra) in 1993 to compare the performance of different semiempirical MO codes. Not relevant for validation of program MNDO. | |
MACHINE | Originally, as the name implies, machine-specific sources. Nowadays mainly used for dummy routines replacing modules not included in a distribution. | |
BLAS | Copy of non-optimized original BLAS routines by Jack Dongarra et al. to make compilation of program MNDO work in the absense of an optimized BLAS implementation. | |
LAPACK | Copy of non-optimized original LAPACK routines by Jack Dongarra et al. to make compilation of program MNDO work in the absense of an optimized LAPACK implementation. |
Another folder, mdtools, contains scripts useful for setting up and analyzing surface hopping dynamics calculations, and there is a tutorial (mdtools.doc, which is a text file) that explains usage of these scripts.
To build an executable from the source code, the Intel Fortran Compiler together with the Intel Math Kernel Library (MKL) is recommended for program MNDO. After a fresh download and before starting the build process with 'make -j n', cd to the topmost directory and issue the following commands (in the given order) which require GNU Autoconf and GNU Automake from the GNU Autotools to be installed on your local machine:
- aclocal
- automake --add-missing
- automake
- autoconf
- ./configure
The ./configure script will automatically detect the Intel Fortran compiler, the Intel MKL library and NVIDIA CUDA, and include this information in the Makefile·s. Use './configure --help' to see all configuration options. As the SCOSMO implementation is incomplete and the SCC-DFTB sources have been removed from the repository and the distribution, these modules will be disabled by default.
The commands above need to be executed manually only once for a fresh working copy of the code or after 'make distclean' which deletes all machine-generated files. Dependencies in the Makefile·s ensure that all needed files will be recreated after changing any of the Makfile.am, configure.ac, or program source files. The final product of the build process is an executable named 'mndo2020' in the topmost directory. 'make -j n -O test' or 'make -j n -O tests' (see above) will run the testsuite for this binary.
♦ Imprint ♦ Privacy policy ♦