QMCPACK / qmcpack

Main repository for QMCPACK, an open-source production level many-body ab initio Quantum Monte Carlo code for computing the electronic structure of atoms, molecules, and solids with full performance portable GPU support
http://www.qmcpack.org
Other
295 stars 138 forks source link

Add documentation and test for eigensolver option. #5006

Closed markdewing closed 4 months ago

markdewing commented 4 months ago

Add a short test and documentation for the eigensolver option added in #4990 .

The existing tests cover the default inverse option. The added test is a copy of optm-batch-OneShiftOnly-general.xml, but using the general eigensolver.

What type(s) of changes does this code introduce?

Delete the items that do not apply

Does this introduce a breaking change?

What systems has this change been tested on?

desktop

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.

ye-luo commented 4 months ago

Test this please

markdewing commented 4 months ago

Do you want a deterministic test to check that the right code path is being followed? A unit test for that would be difficult, but a deterministic test that checks for the right strings in the output could work.

prckent commented 4 months ago

The second would work.

ye-luo commented 4 months ago

It is hard to maintain optimization tests in deterministic tests. I would request a unit test which setup a few matrices and then call the general and inverse routine and the result should be fully determinsitic. https://github.com/QMCPACK/qmcpack/pull/4990 added what I was thinking of.

prckent commented 4 months ago

Test this please

prckent commented 4 months ago

Fatal Error. Aborting at QMCDriverFactory::createQMCDriver : method="linear_batch" is not safe with CPU mixed precision. Please use full precision build instead. Hmm. Wasn't aware of this one/had forgotten. CMakeLists just needs protecting.

Coverage uploads failed due to rate limits.

markdewing commented 4 months ago

The other option is to add "not safe with CPU mixed precision" to the passing regular expression list. Do you have a preference between this and guarding the CMake?

markdewing commented 4 months ago

Or, check the value of SUCCESS_STATUS_MP and set WILL_FAIL appropriately. That's probably the closest to the existing solution.

prckent commented 4 months ago

The latter one (SUCCESS STATUS MP, WILL FAIL) seems simplest and also checks that the code bails as expected.

prckent commented 4 months ago

Test this please

prckent commented 4 months ago

Test this please