Skip to content

Energy difference between total energies for wavefunction using hybrid C2R and C2C representation of spline #5963

Description

@fyzibxm

Describe the bug
Difference in total energies calculated using hybrid C2R and C2C representation of spline of wavefunction. First observed for rather large bilayer heterostructure (GrMoS2) calculating expected energy difference in DMC between different states, GS using real hybrid and EX using complex hybrid representation comparing to non hybrid differences, subsequently reduced just to small graphene supercell (12 unit cell) and comparing just GS for real and complex with and without hybrid rep for VMC energies.

To Reproduce
All runs are copied to OLCF /lustre/orion/mat201/world-shared/brndiar/hybrid-bug
qmca energies (eV):

difference for hybrid rep
complex/hybrid/qmc series 1 -3699.309368 +/- 0.018067 1866.704581 +/- 1.300452 0.5046
complex/hybrid-patched/batch-4.2/qmc series 1 -3699.476471 +/- 0.012745 2128.588869 +/- 8.075983 0.5754
complex/hybrid-patched/qmc series 1 -3699.489952 +/- 0.012274 2118.320382 +/- 2.598431 0.5726
real/hybrid/qmc series 1 -3699.855098 +/- 0.016589 2335.605611 +/- 5.976172 0.6313

no difference without hybrid rep
complex/qmc series 1 -3699.733354 +/- 0.011550 1827.619036 +/- 1.790855 0.4940
complex/patched/qmc series 1 -3699.956620 +/- 0.010278 2091.714849 +/- 12.463772 0.5653
real/batch-4.2/qmc series 1 -3699.934053 +/- 0.011538 2081.696419 +/- 5.166362 0.5626
real/qmc series 1 -3699.951925 +/- 0.011387 2077.847896 +/- 3.287861 0.5616

energy for real with and without hybrid rep are not expected to be equal because hybrid parameters was just set and not properly chosen to minimize energy and variance

parameter for hybrid for carbon was

            <parameter name="cutoff_radius" > 1 </parameter>
            <parameter name="lmax" >          4 </parameter>

meshfactor 0.5
totalwalker count was set to 112000 to directly see difference in 1sigma of variance and not just statistically.

Expected behavior
No energy difference within error bars between real and complex representation for system where state respect k -k symmetry

System:
Leonardo CPU partition
Tested for 3.17.1 legacy and 4.2 batch versions.
I have put all calculation on OLCF storage /lustre/orion/mat201/world-shared/brndiar/hybrid-bug

Additional context
in qmca results there are calculation called patched. During performing complex calculation for graphene I have found that threshold for state ordering operator in src/QMCWaveFunctions/BandInfo.h is to large to occupied K K' valence band properly (see spline bandinfo file where ordering is K VB K CB K'VB K'CB expected is K VB K'VB K CB K'CB, bands 46 to 49) that's why all complex calculation with large threshold do not calculated GS as real calculation where K VB K' VB is replaced with twice K VB due to k -k symmetry. And for such small system, gap on graphene is not properly closed due to finite size, that's why there is difference. For patched calculations I have changed the comparison threshold to 1e-12 which produced proper GS. I'm not sure if this is also a significant new issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions