Skip to content
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

PBC gaussian #706

Merged
merged 31 commits into from
Mar 29, 2018
Merged

PBC gaussian #706

merged 31 commits into from
Mar 29, 2018

Conversation

anbenali
Copy link
Contributor

@anbenali anbenali commented Mar 25, 2018

This is a fully working version with tests. I am still creating tests specially for Real Kpoints different than Gamma.

@anbenali anbenali requested review from ye-luo, jngkim and prckent March 25, 2018 16:51
@ghost ghost assigned anbenali Mar 25, 2018
@ghost ghost added the in progress label Mar 25, 2018
@qmc-robot
Copy link

Can one of the maintainers verify this patch?

1 similar comment
@qmc-robot
Copy link

Can one of the maintainers verify this patch?

@anbenali anbenali changed the title [WIP] Pbc gaussian PBC gaussian Mar 25, 2018
@prckent
Copy link
Contributor

prckent commented Mar 25, 2018

OK to test

@prckent
Copy link
Contributor

prckent commented Mar 25, 2018

Initial trivial comment about the files: can you use a link to C.BFD.xml instead of duplicating the file? Or is this file somehow different from the other C potentials we have used?

LIST(APPEND LONG_DIAMOND_SCALARS "totenergy" "-10.4951 0.0017")
LIST(APPEND LONG_DIAMOND_SCALARS "samples" "192640 0.0")

# Reference VMC run in qmc-ref "-10.496089 0.000159"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this line before all the two lines of LIST and update the value



# Reference DMC run in qmc-ref "-10.531770 0.000937"
LIST(APPEND LONG_DIAMOND_DMC_SCALARS "totenergy" "-10.544774 0.014408")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put consistent value.

)

# Reference DMC run in qmc-ref "-21.845935 +/- 0.003098"
LIST(APPEND DIAMOND_DMC_SCALARS "totenergy" "-21.807657 0.095185")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put consistent value

@ye-luo
Copy link
Contributor

ye-luo commented Mar 26, 2018

Found many inconsistency in CMakeLists.txt for tests.
The reference values need to be set based on the qmc_ref long and wide runs.
The reference error bar should be put based on the short/long runs.
The walkers in the input file should be set 16 and the samples need to computed accordingly.

@jtkrogel
Copy link
Contributor

jtkrogel commented Mar 26, 2018

This is what I generally do for test creation:

  1. Run one very long run (lots of steps and blocks) to generate reference data. This reduces both the error bar and the error bar of the error bar (10x longer than long test, 100x longer than short test).
  2. Reproduce the very long run, but with fewer blocks to save as reference data (scalar.dat files) with the commit.
  3. Use the reference error bar to appropriately estimate the error bar for the long and short tests. These error bars are sqrt(10+1) and sqrt(100+1) times larger than the very long reference.

@prckent
Copy link
Contributor

prckent commented Mar 27, 2018

@jtkrogel gives the appropriate procedure

@ye-luo
Copy link
Contributor

ye-luo commented Mar 28, 2018

I added a How to add tests wikipage to collect our requirements for tests. Let us update that one.

@prckent
Copy link
Contributor

prckent commented Mar 28, 2018

I currently plan to approve this after the tests are updated and the "Master list of required changes:" is then completed, probably this evening. If people have significant concerns that need to be addressed now (vs later updates) then comment soon.

@anbenali
Copy link
Contributor Author

following @prckent comment, the tests are important but they are not needed to check the code.. so reviewers can/should let me know if something in the code seems fishy..

Copy link
Contributor

@ye-luo ye-luo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to prevent merging, I have doubts in the code.

//check the basis set
cur = curRoot->children;
while (cur != NULL)//check the basis set
{
getNodeName(cname,cur);
if (cname == basisset_tag)
if (cname == basisset_tag || H5ReadOnce==true )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anbenali could you send me by email the case that the code will crash without this part of change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

*/
void setPBCImages(std::vector<int> PBCImages)
{
for(int c=0; c<NumCenters; c++)
Copy link
Contributor

@ye-luo ye-luo Mar 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to loop directly LOBasisSet.size(). Similar to the makeClone routine above.
Loop over NumCenters is redundant.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -89,8 +90,14 @@ namespace qmcplusplus
{
return BasisSetSize;
}//=NL.size();
// Set the number of periodic image for the evaluation of the orbitals.
void setPBCImages(std::vector <int> PBCImages)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the naming inconsistency between PBCImages and MaxCell. Choose one.
std::vector is not a good type.
TinyVector<int,3> is better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@anbenali
Copy link
Contributor Author

anbenali commented Mar 29, 2018 via email

@anbenali
Copy link
Contributor Author

anbenali commented Mar 29, 2018 via email

@ye-luo
Copy link
Contributor

ye-luo commented Mar 29, 2018

In this PR, some SPOSetBase routines are copied over to LCAOSetBuilder file and modified for PBC. This is "wrong" in principle. The reason for this situation is that these methods introduced for AoS should not be in the base class but in the builder. This will be fixed after this PR.

@ye-luo
Copy link
Contributor

ye-luo commented Mar 29, 2018

binpad can hold 64 states at maximum and 64 is hard-coded. Need to be replaced.

@anbenali
Copy link
Contributor Author

anbenali commented Mar 29, 2018 via email

@prckent
Copy link
Contributor

prckent commented Mar 29, 2018

For "do later" items, please create GitHub issues as I have just done so that they are not "forgotten"

@prckent prckent merged commit 9465c5f into QMCPACK:develop Mar 29, 2018
@ghost ghost removed the in progress label Mar 29, 2018
@anbenali anbenali deleted the PBC-Gaussian branch June 21, 2018 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants