QmcpackInput does not model series numbers correctly
- Dominant language
- C++
- Stars
- 403
- Forks
- 154
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 82
Description
**Describe the bug**
Nexus `QmcpackInput` models non-AFQMC QMC output series as consecutive numbers after calculation-loop expansion. This does not represent
QMCPACK qmc section `append="yes"` semantics: an appended QMC section continues the preceding output series rather than creating a new `sNNN` series.
This also prevents downstream tools such as qdens from reliably associating an output `*.sNNN.stat.h5` file with the QMC section that produced it when `append="yes"` is present.
**To Reproduce**
Steps to reproduce the behavior:
1. Use current `develop`.
2. Parse an input such as:
```xml
```
3. Call:
```python
QmcpackInput("case.xml").get_output_info("qmc")
```
4. Nexus reports output series 5, 6, while QMCPACK appends the second section to series 5.
Expected behavior
Nexus should provide a well-defined representation of QMCPACK’s output-series semantics, including loops and append="yes" sections.
get_output_info() and any section-scoped metadata API should either use that representation consistently or clearly document intentional
limitations.
System:
- system name: Linux development container
- modules loaded: none
- other systems where this is reproducible: expected to be platform independent
Additional context:
This was discovered fixing qdens to be able to accept batched estimator blocks. Currently it for instance will not function correctly if the QMCPACK run producing the hdf5 output has qmcsection that use append. qdens is only one consumer affected by incorrect representation and modeling of QMCPACK input semantics. Any fix should have broad Nexus regression coverage because output-info results are used by Nexus workflow/output-file handling so there are perhaps other nexus functionality that depend on this inaccurate modeling of the input semantic.
I generated this issue with the help of an agent and gpt-5.6-terra
Contributor guide
Research direction
Start with the XML reproduction and QmcpackInput("case.xml").get_output_info("qmc"), then trace the section-scoped metadata consumed by qdens. Compare loop expansion with qmc sections using append="yes" and identify the existing output-series representation. Done means append and loop semantics are represented consistently, with broad Nexus regression coverage for output-info and workflow handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- hpc, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100