8 Testing Mrcc

Once you have successfully installed Mrcc, you may wish to test the correctness of the installation. For that purpose, numerous test jobs are at your disposal. The corresponding input files can be found in the MTEST directory created at the installation, where a test script, mtest, is also available. Your only task is to change to the MTEST directory and execute the mtest script. (Please do not forget to add the directory where the Mrcc executables are located to your PATH environment variable.) The test jobs will be automatically executed and you will receive feedback about the results of the tests. The corresponding output files will be left in the MTEST directory, and you can also check them. If all the tests complete successfully, your installation is correct with high probability.

The execution of the test jobs will take for a couple of hours. If you want to run the test on another machine, e.g., on a node of a cluster, you should copy the entire MTEST directory to that machine and start the mtest script there.

Please note that there are some test jobs that allocate a small amount of memory to test the out-of-core algorithms of the program (MINP_*smallmem). These test jobs run with four threads by default when testing OpenMP-parallel executables (i.e., the build.mrcc script was run with the -pOMP switch) with the mtest script. If you run these test jobs with more than four threads, some of them will fail since the memory requirement for OpenMP-parallel runs grows with the number of threads. In this case, the failure of these tests does not indicate a problem with your installation.

Testing of the MPI-parallel executables is also supported. The mtest script automatically detects MPI-parallel executables in PATH if the build.mrcc script was run with the -pMPI switch and runs the appropriate MPI-parallel test jobs (MINP_*_MPI).

To test other external libraries, two switches can be used. With the -l switch, Libxc test jobs (containing _Libxc in the name) are also run, while with the -p switch, the PCMSolver library is also tested (_PCM in the file name). The two options can also be used at the same time, i.e., if mtest is invoked as mtest -l -p, all the test jobs will be executed.

Testing of the features available with external semi-empirical and MM programs, such as ONIOM models including semi-empirical layers or RISM solvation calculations, is also automated. The mtest script automatically searches for those programs, and the corresponding test jobs are executed if they are available.

Please note that you can also create your own test jobs, e.g., if you modify the code, compile the program with new compiler versions, or use unusual combination of keywords. To that end you should calculate a reliable energy for your test job (e.g., using a stable compiler version), include the test keyword and the calculated energy to the MINP file (see the description of the keyword for more details), and copy the MINP file to the MTEST directory renaming it as MINP_$<$job_name$>$. Then the new job will be automatically executed when the mtest script is invoked next time.