1
1
/** \page mpqcval Validating MPQC
3
After you compile MPQC, you should run it through the validation suite.
3
After you compile MPQC, you should run the validation suite.
4
4
You should also run the validation suite if you upgrade your operating
5
5
system software, since this could change shared libraries that are linking
6
6
with MPQC and could affect the results.
8
The validation suite is in <tt>src/bin/mpqc/validate</tt>. The
9
input files are divided into several categories:
7
Note that the reference validation suite has not been verified
8
relative to an independent code, except for a few spot checks. If you find
9
that MPQC doesn't produce the same answer as another quantum chemistry
10
program that you trust, then please promptly notify us and send all the
13
The top-level Makefile has several targets that can be used to check
14
an MPQC build. MPQC must be built before one of these targets is used:
16
<dt><tt>check</tt><dd>The same as <tt>check0</tt> below. This
17
is only available from the top-level directory
18
and <tt>src/bin/mpqc/validate</tt>.
19
<dt><tt>check0</tt><dd>Run the smallest MPQC verification suite.
20
It tests basic functionality. This
21
is only available from the top-level directory
22
and <tt>src/bin/mpqc/validate</tt>.
23
<dt><tt>check1</tt><dd>Run the intermediate MPQC verification suite.
24
It runs most of the tests, only leaving out
25
very expensive runs. This
26
is only available from the top-level directory
27
and <tt>src/bin/mpqc/validate</tt>.
28
<dt><tt>check2</tt><dd>Run the complete MPQC verification suite.
29
Depending on the compilation and runtime
30
environment, tests that are not expected
31
to work will be omitted. This
32
is only available from the top-level directory
33
and <tt>src/bin/mpqc/validate</tt>.
34
<dt><tt>check_clean</tt><dd>Remove MPQC verification suite output files.
35
This is only available from the top-level directory
36
and <tt>src/bin/mpqc/validate</tt>.
37
<dt><tt>testbuild</tt><dd>Verify that a variety of small test programs
38
compile. If static libraries are used, this
39
will require a substantial amount of disk space.
40
<dt><tt>testrun</tt><dd>Run a variety of small test programs. This
41
will build them if necessary.
44
The check targets will run mpqc with the mpqcrun (see \ref mpqcrun)
45
command. You can give arguments to mpqcrun by setting
46
the <tt>MPQCRUN_ARGS</tt> variable on the make command line.
48
The verification suite is in <tt>src/bin/mpqc/validate</tt>. After running
49
it, the output files can be found in <tt>src/bin/mpqc/validate/run</tt>.
50
The check targets will compare outputs that your build produced to
51
the reference files in <tt>src/bin/mpqc/validate/ref</tt>. The input files
52
can be found with the reference files.
53
For each comparison, first the status (<tt>ok</tt>,
54
<tt>missing</tt>, or <tt>failed</tt>) for each file is printed. If both
55
statuses are <tt>ok</tt> then an <tt>E:</tt> is printed followed by the
56
number of digits to which the energies agree. If they agree to all digits
57
<tt>99</tt> is printed. If a gradient was computed, then <tt>Grad:</tt> is
58
printed followed by the number of digits to which the gradients in least
59
agreement agree. Other properties checked in this way include frequencies,
60
diagnostics, and populations.
62
If two numbers do not agree to the expected accuracy, then an asterisk,
63
<tt>*</tt>, is printed after the number of digits in agreement.
65
Finally, you can do a detailed comparison of the contents of the
66
<tt>ref</tt> and <tt>run</tt> subdirectories by typing <tt>make diff</tt>.
68
The input files in the verification suite are divided into several categories:
11
70
<dt><tt>h2o</tt><dd>These are simple tests that exercise many of MPQC's
46
104
<dt><tt>dft</tt><dd>More tests of the CLKS method.
106
<dt><tt>mp2r12</tt><dd>More tests of MP2-R12.
108
<dt><tt>ccaintv3</tt><dd>Tests of embedded CCA integrals components using <tt>intv3</tt>.
110
<dt><tt>ccacints</tt><dd>Tests of embedded CCA integrals components using <tt>cints</tt>.
50
To generate the input files change into the
51
<tt>src/bin/mpqc/validate</tt> subdirectory of your object directory (where
52
you compiled MPQC) and type <tt>make inputs</tt>. This will create a
53
<tt>run</tt> subdirectory containing MPQC input files ending with the
54
<tt>.in</tt> suffix. Files ending with a <tt>.qci</tt> suffix will also be
55
placed in the <tt>run</tt> directory. These contain a description of the
56
calculation that is used by the utility program that checks the results of
59
Next you need to run the calculations. You might want to start with the
60
<tt>h2o</tt> input files first since they shouldn't take too long to run.
61
For the <tt>ckpt</tt> calculations you should run the calculations
62
alphabetically by input file name. This ensures that the checkpoint files
63
will be created before they are needed.
65
While the test calculations are running you can begin monitoring the
66
results by typing <tt>make checkrun</tt> in the
67
<tt>src/bin/mpqc/validate</tt> directory. This will first do some
68
consistency checks between pairs of files selected from the <tt>ckpt</tt>,
69
<tt>dft</tt>, <tt>mbpt</tt>, <tt>symm1</tt>, and <tt>symm2</tt> groups of
70
calculations (see below for a discussion of the output for comparison of
71
two files). Then each file is individually checked. An <tt>ok</tt> is
72
printed next the test name, if it looks like the calculation made it to the
73
end. A <tt>missing</tt> means the output file could not be found. A
74
<tt>failed</tt> means that the output file has problems (or the calculation
75
may still be running).
77
Next you will want to see if your compiled MPQC produces the same answer
78
as ours. Note that our reference validation suite has not been verified
79
relative to an independent code, except for a few spot checks. If you find
80
that MPQC doesn't produce the same answer as another quantum chemistry
81
program that you trust, then please promptly notify us and send all the
82
details. The reference validation suite is distributed separately from
83
MPQC. Obtain it (hopefully it is available where you got the source code)
84
and untar it in the <tt>src/bin/mpqc/validate</tt> subdirectory of your
85
MPQC object code directory. This will create the <tt>ref</tt>
86
subdirectory. Now you can type <tt>make check</tt> and outputs in the
87
<tt>ref</tt> and <tt>run</tt> directories will be pairwise compared.
89
When files are pairwise compared first the status (<tt>ok</tt>,
90
<tt>missing</tt>, or <tt>failed</tt>) for each file is printed. If both
91
statuses are <tt>ok</tt> then an <tt>E:</tt> is printed followed by the
92
number of digits to which the energies agree. If they agree to all digits
93
<tt>99</tt> is printed. If a gradient was computed, then <tt>Grad:</tt> is
94
printed followed by the number of digits to which the gradients in least
95
agreement agree. Other properties checked in this way include frequencies,
96
diagnostics, and populations.
98
If two numbers do not agree to the expected accuracy, then an asterisk,
99
<tt>*</tt>, is printed after the number of digits in agreement.
101
Finally, you can do a detailed comparison of the contents of the
102
<tt>ref</tt> and <tt>run</tt> subdirectories by typing <tt>make diff</tt>.