NERSC and ILDG for non-SU(3) configuration checkpoints #377
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes this issue : #376 so that the NERSC header is more Nc-aware. Checked the NERSC_GAUGE and NERSC_GAUGE_2x2 against my implementation in GLU for SU(2) (and checked that I didn't break the SU(3) config writer/reader), where NERSC_GAUGE is understood to be logically just the first row for SU(2).
I changed the normalisation for the trace (function LinkTrace) in:
./Grid/qcd/utils/WilsonLoops.h
from 3 to Nc. This matches the convention used in other parts of the code, such as the average plaquette.
While compiling the tests for Nc=2 a couple of files will not compile:
./tests/core/Test_lie_generators.cc
./tests/core/Test_reunitarise.cc
as they have specific calls to SU3:: for gauge-field stuff and then call peeks and pokes that are Nc-aware so these obviously break. Lazily, I just guard these with an #ifdef Nc==3 block. A similar problem, that I resolved better was with the #if #else block in
./tests/solver/Test_coarse_even_odd.cc
As I compiled without the lime library I found out that several other tests simply fail to compile, so I #ifdef'd them out or switched them to natively-supported options, these were:
./tests/lanczos/Test_compressed_lanczos.cc
./tests/lanczos/Test_dwf_compressed_lanczos_reorg.cc
./tests/solver/Test_dwf_mrhs_cg.cc
./tests/hmc/Test_hmc_ScalarActionNxN.cc
./tests/hmc/Test_hmc_WG_Production.cc
I added a 5 into the configure.ac for the helper argument as the code says this is suported.
I deleted Version.h and Config.h from the HFILES ./Grid/Makefile.am as Config.h is included elsewhere and included like this break the compilation for generic, non-simd builds and I am not entirely sure what the purpose of Version.h really is here. This issue has been discussed in #227 and #289