The command line switch '-debug' can be used to enable it.
Also change the warning and error output to not use XML.
Structured output (XML) would be fine going to an auxilliary file, but not to stdout.
This change should not affect nexus.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6901 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Achieve 2X on large systems. Never slowdown on small systems.
The old code path is kept and can be access by
input sample: <coefficient size="57" id="updetC" algorithm="legacy">
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6868 e5b18d87-469d-4833-9cc0-8cdfa06e9491
The finite difference step size (delta) can be adjusted,
as can the relative tolerance used for the pass/fail decision.
Example:
<qmc method="wftest">
<delta>0.01</delta>
<tolerance>0.1</tolerance>
</qmc>
Especially for single precision splines, the delta may need to be lowered
from the default value (0.0001).
The relative error as a function of the step size is not output by default,
but can be enabled using the "delta_output" element.
Example:
<qmc method="wftest">
<delta_output>
<file>delta2.dat</file>
<particle_index>1</particle_index>
<gradient_index>0</gradient_index>
</delta_output>
</qmc>
The "file", "particle_index", and "gradient_index" parameters are all optional.
The default file name is "delta.dat", the default particle index is 0, and default
gradient component index is 0.
The graph is best visualized using a log-log scale.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6866 e5b18d87-469d-4833-9cc0-8cdfa06e9491
The estimator compares the integral of the square of the gradient with
the Laplacian. It should be zero if the sampling is correct and
there are no discontinuities in the wavefunction.
It is defined in ConservedEnergy.h.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6839 e5b18d87-469d-4833-9cc0-8cdfa06e9491
The set of lone charges (loneQ) is collected atom-by-atom.
In a positively charged system, not all of them will actually be present.
Change the while loop to terminate if all the electrons have been assigned.
Add a test case and a 30 second timeout to the converter tests.
(Failing example came from Paul Yang)
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6810 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Put failure output in separate file (wf_fail.dat) to keep the stdout cleaner.
Also test subcomponents of the wavefunction (to help pinpoint problems).
Still to do is to detect and adjust the delta and tolerance settings for
single precision splines.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6801 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This lessens the dependence on the choice of delta, and should make it
more reliable to compare with the analytic derivative.
Remove the test using a sequence of delta values, as it is not needed.
Move a number of the routines related to finite differences to a separate class.
What did not seem to work:
- Using a higher order formula for the derivatives. It had lower error for large
delta, but ran into numerical problems sooner. The problem of choosing the
correct value for delta remained.
- Computing higher order derivatives to estimate the rough size of the error term
in the finite difference formula and to provide a guide for the right tolerance
for comparison. Unfortunately, these are even more sensitive to the right
choice of delta.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6795 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Create two separate functions - the first generates a set of points
at which to evaluate log psi. The second uses the evaluated points
to then compute the finite difference approximations.
The rationale is that it will be easier to reuse when comparing
derivatives for pieces of the wavefunction.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6794 e5b18d87-469d-4833-9cc0-8cdfa06e9491
In particular, the L type orbital from Gamess is not handled. Return an
error rather than silently generating an incorrect wavefunction file.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6786 e5b18d87-469d-4833-9cc0-8cdfa06e9491
The basic wavefunction test (runBasicTest) has these checks:
- finite different gradient and Laplacian
- single delta value against a single tolerance
- ensure error decreases with a sequence of decreasing delta values
- ratio for trial move
The initial tolerances may be appropriate for double precision, but do fail for
single precision wavefunctions. Should get the target precision
of the wavefunction and adjust these values appropriately.
Plotting the error vs. delta is helpful in understanding whether deviations are
a finite difference/precision issue or an actual code issue. There is code to
output this data, but it is off by default. It might be useful to add an
input file option to turn this on.
Other TODO items:
- test wavefunction components separately
- add check for complex wavefunction ratio
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6765 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This is a change from the previous behavior that would run wavefunction tests
as a default option if no other driver name matched. Now an error is raised
if the driver name is unknown.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6762 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Output arguments to functions need to be dereferenced before setting them.
The previous code worked because the caller used the same name (TEST_ADDED)
as in the function code. The SET command was directly setting the caller's
variable (eg, the TEST_ADDED parameter could have been removed from the RUN_QMC_APP
definition and it would still work, which is not the behavior we want.)
With the change, the function is actually setting the variable that is
given as a parameter in the caller.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6758 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Tests work for non-MPI builds.
Increased the default per-test timeout because it was too small for the long tests.
Use a more compact description of the scalar checks.
Add logic so that if a QMC run is not added, subsequent scalar checks are also
not added.
Added an output variable to RUN_QMC_APP so calling code can determine
if the test was added or not (due to to number of MPI processes)
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6757 e5b18d87-469d-4833-9cc0-8cdfa06e9491
The WILL_FAIL property in CTest does not work with program exits due
to exceptions. With this change, expected test failures are handled
properly.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6749 e5b18d87-469d-4833-9cc0-8cdfa06e9491
--local_channel allows to specify the local channel choice instead of the default when converting BFD pp.
--g_ref allows to convert heavy elements with 5 channels in the pp.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6702 e5b18d87-469d-4833-9cc0-8cdfa06e9491