Skip to content

ABACUS SOC graph_data.npz seems incompatible with the public Uni-HamGNN predictor (so3 expects Lon/Loff) #97

Description

@hjunxi22

Hello HamGNN developers,

I am trying to deploy the public Uni-HamGNN inference workflow on a Bohrium cloud node with the ABACUS interface. I can complete the ABACUS preprocessing path and generate both non-SOC and SOC graph_data.npz, but the public Uni-HamGNN predictor currently fails on the SOC input.

I checked the code path and it looks like the public predictor I loaded uses soc_basis='so3', while the public ABACUS SOC graph_data_gen_abacus.py output does not provide Lon/Loff.

Related issues I checked first:

Environment

  • Repo: QuantumLab-ZY/HamGNN
  • Commit used on our side: 92d28352fb3320ee97700eef11dad897d0d4c129
  • DFT backend: ABACUS
  • Use case: public inference only, not retraining
  • Public weights tested:
    • predictor.pkl
    • uni-hamgnn_2_1.pkl

Minimal reproduction

  1. Generate non-SOC and SOC ABACUS graph_data.npz with the public ABACUS interface.
  2. Run Uni-HamiltonianPredictor.py with the public predictor.
  3. The non-SOC path is fine, but the SOC path fails before prediction.

Exact error

RuntimeError: Loaded Uni-HamGNN predictor uses soc_basis='so3', but the supplied ABACUS SOC graph_data does not contain Lon/Loff. The public ABACUS graph_data generator currently outputs Hon/Hoff/iHon/iHoff-style tensors, while the loaded predictor expects SO(3) angular-momentum tensors (Lon/Loff).

What I found from source inspection

  • hamgnn/models/hamgnn_output.py has both so3 and su2 SOC branches.
  • In the so3 branch, the model explicitly reads data.Lon and data.Loff.
  • In the public DFT_interfaces/abacus/graph_data_gen_abacus.py SOC output path, I can see Hon/Hoff/iHon/iHoff/..., but not Lon/Loff.
  • DFT_interfaces/abacus/band_cal.py also currently raises NotImplementedError when soc_switch=True.

My questions

  1. Is there a public ABACUS-compatible Uni-HamGNN predictor/checkpoint that should be used with soc_basis='su2'?
  2. If yes, could you share the correct download link and the matching config example?
  3. If no public checkpoint is available yet, should ABACUS SOC inference currently be treated as unsupported in the public release, with only ABACUS non-SOC being supported?
  4. For ABACUS SOC, is the intended public path:
    • export Lon/Loff from graph_data_gen_abacus.py, or
    • use a separate su2 predictor instead of the public so3 predictor?

Thanks. If helpful, I can also provide a small ABACUS SOC graph_data.npz sample or the full traceback/log bundle.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions