An option occurs either at the beginning of the string or will be
preceeded by a space.
Since the regex is getting more complicated, make it a variable.
Add the space to ensure this only matches options where -x is at the beginning.
Issue showed up passing the option "-cxxlib=/path/linux-rhel7-x86_64".
The '-x' in the middle of the expression would satisfy the match condition.
The try_compile feature didn't support the CXX_STANDARD* arguments before
version 3.8. Fortunately, the workaround seems to be fairly easy.
And newer compilers have C++14 (or even 17) as the default standard level, so
the extra flag isn't even necessary.
N_PROCS_BUILD to restrict the number of processors during compilation
N_CONCURRENT_TESTS to restrict the number of tests running simultaneously.
TEST_SITE_NAME, name to be shown on the site column
The diffs are big but primarily I'm moving around the code so the
intel and non-intel paths are less divergent.
Main fix is to check for ffth3.h in mkl/include/fftw, if it is not
there we do not add that include path.
Move some test checking scripts to the tests/scripts directory.
Modify the SIMPLE_RUN_AND_CHECK function to look for the test script first in the
current directory (preserves current behavior) and if not found there, check
in the tests/scripts directory.
Also enable the SHO VMC derivative tests in mixed precision.
Add the 'latdev' estimator value to check_scalars.py and the CMake code
that calls it.
Add a small epsilon to values with an error of exactly 0. This affects
the SHO vmc results for the local energy - the values are constant, but
the averaging processes introduces some numerical error.
The -Wno-undefined-var-template option was added in clang 3.9.
Add a version check so this flag is not added for older versions of clang.
Clang 3.8 and earlier issue a warning about the flag that seems to cause
the C++ 11 check to fail.
Some additional changes from the previous commit for merging gcov files:
With the --long-file-names (-l) and --preserve-paths (-p) options to gcov,
some of the file names would exceed the filesystem limits (255 characters).
One solution for shortening the names is to use the -source-prefix (-s) option
which removes some of the path elements in the name. The shortened path is
used in the file name and in the Source: tag in the file.
This causes problems with gcovr, so the path prefix is restored to the Source:
tag when merging gcov files.
The processing pipeline for gcov files has an extra step - the long file names
are written to the tgcov_*_raw directories, and then merged to the corresponding
tgcov_* directory.
Many files have some executed code related to static initializers. It clutters
the output to have those included in the output, even though they only have one
line in them and it's considered covered. Add files of this type to the files
to be removed in 'remove_unwanted_file'.
The gcov file merge and write does not yet handle branch information, which also
includes function headers. These function headers are necessary for filtering the
static initializers. Add an explicit step to filter the gcov files in the *_raw
directories.
Check a list of python modules to ensure they are installed before adding the estimator tests.
The test for module installation is based on whether the module successully imports or not.
If needed, additional tests of module functionality could be added.
- Enable OpenMP by default (eventually will need to be off by default for Mac, on everywhere else)
- define __forceinclude
- suppress warnings about undefined template variables in src/spline2. The class variables are
defined for several types in the *.cpp files. If they are somehow not present (or if the spline
templates are used for a new type), there will be link errors.
- arithmetic on void pointers is not allowed. Cast to char *, since these are byte-granularity addresses.
1. Implemented SIMPLE_RUN_AND_CHECK function in macros.cmake to run one
input, then run one test script.
2. Incorporated estimator tests in ctest suite.
3. Completed manual entries, including a paragraph on makeClone.
to-do:
1. make symbolic link to tests/solids/bccH_1x1x1_ae/pwscf.pwscf.h5
currently, the links have to be made manually in each estimator test
folder.
Move the coverage flags from the ctest script to the compiler scripts.
Both GCC and Clang support the GCC-style output with the --coverage flag.
Use the ENABLE_GCOV flag to add the compiler coverage flag.
Add a script (run_coverage.sh) to create the gcov files (and HTML reports
if gcovr is present) after a build is done with coverage enabled.
Add CMake module for handling coverage - create gcov files using the 'gcov'
tool, compare different runs, pack up tar files for upload to CDash, etc.
Modify the ctest script to handle coverage. Activate by using the 'coverage' option
to -S (ctest -S ctest_script.cmake,coverage)
Some of the *.BFD.xml files in the test inputs are referenceed using a relative
symbolic link. Using FILE(COPY ...) will keep the link, which then becomes a
dangling link pointing to nothing. The previous method of
'cmake -E copy_directory' converted to link to an actual file copy. The fix is
to treat the psuedopotential files the same as the *.h5 files, and the code
creates a symbolic link to the original file.
Also print a status message with the state of QMC_SYMLINK_TEST_FILES and a short
explanation of the consequences.
The plan is to make DistanceTableData support both AoS (current) and SoA type.
The transition will be rough, since many classes use it. Tackle those
used for the ES computations first. Model Hamiltonians are up to those
who use them. TraceManager is better to be turned off. That has to be
completely rewritten to take advantage of SoA but it will benefit
greatly from the change.
Added in ParticleSet
* setActive(int iat) : signal the iat-particle will be moving; compute
internal data to compute psi.evalGrad
* donePbyP() : signal that the pbyp sweep is done including the substeps
This is not to update the full internal data until needed for
energies.
DistanceTableData
* removed unused data members
* added containers used by SoA types
1, Due to the large file size by the vacuum, the wf h5 is generated by pw.x from a DFT run. Once the h5 is generated, the QMC tests can run independently.
2, Enhanced CMake/run_qe.cmake. when proc2=0, nscf step is skipped.
use examples/solids/dft-inputs to generate h5 and run the tests in tests/solids/LiH_solid_1x1x1_pp
cmake -D QE_BIN=your_qe_binaray_folder .. to activate these tests.
use ctest -R qe to run the tests.
Also includes:
clean up redundant CMake function definitions in examples/CMakeLists.txt tests/system/CMakeLists.txt, move to CMake/macros.cmake
add CMake/run_qe.cmake to run pw.x and pw2qmcpack.x
add utils/clean_and_link_h5.sh to associate QE run and QMCPACK run
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@7076 e5b18d87-469d-4833-9cc0-8cdfa06e9491
checks (via compile) for working MKL VML. Need to add AMD libm, IBM massv etc.
Covers important use case of using gcc with MKL. Doubles speed of many
spline tests due to importance of phase factor calculation
(Numerics/e2iphi.h) in execution profile with low electron count.
Specifically tested:
export MKLROOT=/opt/intel2016/compilers_and_libraries_2016.3.210/linux/mkl
cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBLA_VENDOR=Intel10_64lp_seq -DCMAKE_PREFIX_PATH=$MKLROOT/lib ..
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@7019 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Restore LIBXML2_HOME handling by reintroducing updated version of
previous QMCPACK FindLibxml2 cmake2 script. LIBXML2_HOME location is
prioritized over the default search paths and can therefore avoid the
use of a "bad" libxml on them. Currently required on Cori at
NERSC with Cray CLE 6.0 due to absence of shared libraries. Updated
FindLibxml2QMC script calls standard cmake package if unsuccessful, so
should not change behaviour on other systems.
Libxml2 and any support libraries must be installed locally to
successfully complete the default-on-cray static build.
Detect if on Cray via CRAYPE_VERSION environment variable, since newer
OS no longer sets CRAYOS_VERSION. Tested on edison, cori, titan, eos.
Remove some eos specific wiring, out of date.
Cori currently requires:
export LIBXML2_HOME=/usr/common/software/libxml2/2.9.3/hsw/
cmake -DQMC_EXTRA_LIBS="/usr/common/software/liblzma/20160630/hsw/lib/liblzma.a" ..
This incantation is clearly fragile. Without this update
/usr/lib64/libxml2.so is picked-up and the build will fail on
link. Symptom of not linking liblzma is lots of lzma_ related
functions not being defined. This is a libxml2 build-related issue and
described in many places on the web.
These patches should be of interest to anyone receiving a new Cray.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@7017 e5b18d87-469d-4833-9cc0-8cdfa06e9491
default 1, use SSE intrinsics in einspline.
if 0, avoid SSE intrinsics in einspline.
remove never used HAVE_AVX and HAVE_AVX2 flags in cmake.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6934 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
Gaussian all electron and pseudopotential tests vs Hartree-Fock numerical results
Tests are setup and described in src/QMCApp/test/CMakeLists.txt
+Jaron's comparison tool check_scalars.py
Only tested on Linux/Mac. Will need tidying, shorter macros.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6515 e5b18d87-469d-4833-9cc0-8cdfa06e9491
* Updated FindCUDA.cmake to the lastest version (1227)
* Updated TitanCUDA.cmake to make use of Cray's default C/C++ wrappers
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6350 e5b18d87-469d-4833-9cc0-8cdfa06e9491