mpqcval(3)

NAME
mpqcval - Validating MPQC
 After you compile MPQC, you should run it through the validation suite. You should also run the validation suite if you upgrade your operating system software, since this could change shared libraries that are linking with MPQC and could affect the results.

The validation suite is in src/bin/mpqc/validate. The input files are divided into several categories:

h2o These are simple tests that exercise many of MPQC's features.

h2omp2
    Tests that further exercise MP2.

h2ofrq
    Tests of H2O frequencies with a variety of methods.

mbpt
    These tests exercise MP2 as well as the open-shell perturbation theory methods. The various available algorithms are tested as well.

ckpt
    Tests the checkpoint and restart capabilities.

symm1
    Tests of point group symmetry.

symm2
    More point group symmetry tests. These use basis sets with higher angular momentum than symm1#.

symm3
    Tests automatic point group determination.

basis1
    A variety of basis sets are tested for first row atoms along with hydrogen and helium.

basis2
    Basis sets test for second row atoms.

methods
    Tests the self-consistent-field methods and the density functional theory functionals.

clscf
    More tests of methods based on CLSCF.

hsosscf
    More tests of methods based on HSOSSCF.

uscf
    More tests of methods based on UnrestrictedSCF.

dft More tests of the CLKS method.

To generate the input files change into the src/bin/mpqc/validate subdirectory of your object directory (where you compiled MPQC) and type make inputs. This will create a run subdirectory containing MPQC input files ending with the .in suffix. Files ending with a .qci suffix will also be placed in the run directory. These contain a description of the calculation that is used by the utility program that checks the results of the validation suite.

Next you need to run the calculations. You might want to start with the h2o input files first since they shouldn't take too long to run. For the ckpt calculations you should run the calculations alphabetically by input file name. This ensures that the checkpoint files will be created before they are needed.

While the test calculations are running you can begin monitoring the results by typing make checkrun in the src/bin/mpqc/validate directory. This will first do some consistency checks between pairs of files selected from the ckpt, dft, mbpt, symm1, and symm2 groups of calculations (see below for a discussion of the output for comparison of two files). Then each file is individually checked. An ok is printed next the test name, if it looks like the calculation made it to the end. A missing means the output file could not be found. A failed means that the output file has problems (or the calculation may still be running).

Next you will want to see if your compiled MPQC produces the same answer as ours. Note that our reference validation suite has not been verified relative to an independent code, except for a few spot checks. If you find that MPQC doesn't produce the same answer as another quantum chemistry program that you trust, then please promptly notify us and send all the details. The reference validation suite is distributed separately from MPQC. Obtain it (hopefully it is available where you got the source code) and untar it in the src/bin/mpqc/validate subdirectory of your MPQC object code directory. This will create the ref subdirectory. Now you can type make check and outputs in the ref and run directories will be pairwise compared.

When files are pairwise compared first the status (ok, missing, or failed) for each file is printed. If both statuses are ok then an E: is printed followed by the number of digits to which the energies agree. If they agree to all digits 99 is printed. If a gradient was computed, then Grad: is printed followed by the number of digits to which the gradients in least agreement agree. Other properties checked in this way include frequencies, diagnostics, and populations.

If two numbers do not agree to the expected accuracy, then an asterisk, *, is printed after the number of digits in agreement.

Finally, you can do a detailed comparison of the contents of the ref and run subdirectories by typing make diff.