-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add real-space RMG converter to convert4qmc #3351
Conversation
Can one of the admins verify this patch? |
any tests at all? |
I can add one (or more) to https://github.com/QMCPACK/qmcpack/tree/develop/tests/converter |
#3354 is relevant to this. We probably don't want to hold the PR for that issue to be resolved. |
Ok, I added two tests (2.5 and 5 MB), one spin-polarized and one unpolarized. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Kevin.
Questions on the test choices:
what does the k-point grid in the diamond test case achieve? can we save some filespace by using 1x1x1?
for the o atom case, can we make it even more distinct? it is spin polarized but can we readily support open boundary conditions? (relatively unique feature of rmg, hits more code paths)
Start testing in-house |
Test this please |
In the interest of expediency I was just selecting a subset of the existing RMG example tests; I wanted to use the O atom for a spin-polarized example, and because that was 1x1x1 I thought it might provide better coverage to use a larger grid for the spin-unpolarized test (diamond). The diamond test uses a 4x4x4 grid, but I can change that to 1x1x1 if the grid isn't important (or to 1x1x2 or 2x2x2 if we want something smaller than what we have, but larger than 1x1x1).
I'm not sure I understand the question; I was under the impression that RMG only supported periodic boundary conditions. |
Use the smallest grid for file size. Forget my comments on non-periodic settings. |
@prckent I added some ctest framework and a working example for RMG. I still need to figure out how/where to set the path to the RMG executable (maybe best to just add a cmake variable |
@prckent the RMG testing should be working now as long as |
Is it safe to use v4.2.2 of RMG or do we need to use develop? |
This is now working for me. Will have minor comments only. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Please can you update the logging so that it only prints "Adding RMG tests" as we do with other test categories?
-- Adding integration tests for QMCPACK
Use --log-level=VERBOSE CMake option for details of which tests will be enabled.
Adding estimator tests for QMCPACK
Adding I/O tests for QMCPACK
Adding performance tests for QMCPACK
Adding tests for rmg -> convert4qmc -> QMCPACK workflow
workdir: /home/pk7/projects/qmc/git_QMCPACK_prckent/build_quick/tests/rmg/rmg-Diamond2-1x1x1-gamma-ccECP-np-1
rmg-Diamond2-1x1x1-gamma-ccECP-np-1
adding RMG tests
Adding system tests for QMCPACK
Python dependencies met. Adding PySCF workflow tests
Adding example tests for QMCPACK
Adding Nexus tests
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pk7/projects/qmc/git_QMCPACK_prckent/build_quick
- Not critical but was there a reason to not repurpose an existing pseudopotential file and use your C.qmcpp.xml ?
- Add RMG_BIN in top level readme.md
src/QMCTools/RMGParser.h
Outdated
// This file is distributed under the University of Illinois/NCSA Open Source License. | ||
// See LICENSE file in top directory for details. | ||
// | ||
// Copyright (c) 2016 Jeongnim Kim and QMCPACK developers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
src/QMCTools/RMGParser.h
Outdated
RMGParser(int argc, char** argv); | ||
|
||
std::vector<std::string> ECP_names; | ||
//std::vector<std::string> tags; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove commented lines, including those below
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Working
|
We could discuss the diamond test names as well: Here they are "Diamond2". Elsewhere we have "diamond" and "diamondC". In the performance tests we also have atom and electron counts indicated, which is certainly useful. Edited to add: I suggest to change to just diamondC for now. Otherwise the names are unwieldy. |
CMake/FindRMG.cmake
Outdated
# Locate rmg-cpu | ||
# Take RMG_BIN as hint for location | ||
|
||
find_path(RMG_CPU_DIR rmg-cpu HINTS ${RMG_BIN}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
find_program(RMG_CPU_EXE rmg-cpu HINTS ${RMG_BIN})
and use RMG_CPU_EXE
in tests are more straight forward.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that does look cleaner; I've changed it
@kgasperich What are your plans to update this? I would really like to get it merged and in use in our nightlies. Additional updates can be done in later PRs. The nightly scripts are updated and rmg installed, so these tests should start to run once this is merged. |
@prckent sorry, it fell off my radar after the last meeting, but I've updated it now and brought it up-to-date with develop. |
As just discussed at a meeting on this, the updates will be handled in later PRs so that we can get this in use today. |
Start testing in-house |
Test this please |
I saw binary h5 files are added but we also have ways to generate them. Can we remove those h5 and bake converter test into the workflow test? If we are in favor of merging this as it is. Need to squash to make sure no intermediate files (I saw some in the history) stored in the repo. When these h5 files need updating, they should just be removed. |
I think this is consistent with our QE tests. We can't test the converter without pregenerated files in the repo. |
Proposed changes
This PR adds RMG hdf5 output to the list of formats supported by convert4qmc (this hdf5 output is generated when the RMG input contains
write_qmcpack_restart = "true"
).Handling of pseudopotential files is not perfect, so this should be cleaned up in a later PR (the PP terms in the Hamiltonian in the generated
*.qmc.in-wf{j,noj}.xml
will always referenceX.qmcpp.xml
whereX
is the appropriate element symbol, butconvert4qmc
will not generate/link/move/copy/convert these from the PP files used by RMG).What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
cooley (RHEL 7; x86_64) icc 19.1.0.166
Checklist
Update the following with a yes where the items apply. If you're unsure about any of them, don't hesitate to ask. This is
simply a reminder of what we are going to look for before merging your code.