Skip to content

add neutron scattering tutorial - #5274

Merged
henryzou50 merged 75 commits into
mainfrom
kjs/neutron-scattering
Jul 8, 2026
Merged

add neutron scattering tutorial#5274
henryzou50 merged 75 commits into
mainfrom
kjs/neutron-scattering

Conversation

@kevinsung

@kevinsung kevinsung commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

corresponding paper: https://arxiv.org/abs/2603.15608

produced with assistance from Claude

kevinsung and others added 2 commits June 15, 2026 19:12
Co-authored-by: nathanearnestnoble <51792809+nathanearnestnoble@users.noreply.github.com>
@kevinsung
kevinsung requested a review from a team June 15, 2026 19:54
@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

- make Next steps links root-relative and match actual page titles
- remove unneeded cspell ignore words (eigsh, Aer's, XLA)
- add TUT_SNS job tag to the hardware estimator
- copyedits: spell out DMRG, DD, and TREX on first use, lowercase
  "approximate quantum compiling", reword a few em dashes and "via",
  fix a double space and an en dash
henryzou50
henryzou50 previously approved these changes Jul 2, 2026

@henryzou50 henryzou50 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for the changes, this tutorial looks great!

I pushed a commit with some small copyedits (root-relative Next steps links, trimming unused words from the cspell ignore list, a TUT_SNS job tag, and a few wording fixes in line with earlier review comments), so the checks should pass now. None of it touches code that affects results.

Beyond that, here are a few things I noted that could be changed or adjusted, let me know what you think.

Commentary/results

  • The intro's caveat only covers the AQC fidelity, but the printed ground-state ansatz fidelity also drops sharply (0.984 at 10 qubits → 0.646 at 50) with no explanation, so readers might think their ground-state prep failed. Suggest adding a sentence to the large-scale intro noting the ~0.65 fidelity is expected, and that increasing gs_n_layers or maxiter improves it at additional classical cost.
  • The text says the two-layer ansatz is used "where higher fidelity is needed," yet its printed fidelities (k=7–10: 0.67–0.77) are lower than the one-layer ones (k=1–6: 0.81–1.0). That's expected, as later time steps are just harder to compress, but a short sentence saying so would keep it from reading as a regression.
  • The large-scale section ends at the plots with no discussion. One or two closing sentences pointing out the continuum boundaries and the intensity at q = π would be nice here

Step 2c runtime for k > 6

When I ran the notebook, Step 2c only completed overnight, which matches the committed outputs: the one-layer stage (k=1–6) takes ~28 minutes, but the two-layer stage (k=7–10) takes ~5.3 hours (k=7 alone is ~3 hours, maybe because the stage boundary resets to fresh initial parameters and it runs all ~100 L-BFGS-B iterations on the 3412-parameter ansatz). That puts Step 2c at ~6 hours end to end.

Is there a way to shorten this, or should we expect it to always take this long to get good results?

Index placement (question for @abbycross)

The new entry is inserted at the top of the Observable estimation section in both _toc.json and index.mdx, whereas #5280 appended its tutorial at the end of the section. Which placement do we want?

- Explained in the large-scale intro that the lower fidelities at 50 qubits (~0.65 ground state, ~0.7 AQC) are expected, and which knobs improve them.
- Clarified that the two-layer AQC fidelities being lower than the one-layer ones is not a regression (later steps are harder to compress).
- Added a short closing discussion after the hardware plots tying the measured DSF back to the two-spinon continuum.
henryzou50
henryzou50 previously approved these changes Jul 2, 2026

@henryzou50 henryzou50 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Since Kevin is away, I applied the following commentary revisions as I mentioned before:

  • Explained in the large-scale intro that the lower fidelities at 50 qubits (~0.65 ground state, ~0.7 AQC) are expected, and which knobs improve them.
  • Clarified that the two-layer AQC fidelities being lower than the one-layer ones is not a regression (later steps are harder to compress).
  • Added a short closing discussion after the hardware plots tying the measured DSF back to the two-spinon continuum.

This tutorial LGTM! Let me know if you want to do a quick pass on this @nathanearnestnoble

@henryzou50

Copy link
Copy Markdown
Collaborator

@abbycross This is approved by me and @nathanearnestnoble, if you'd like to take a final quick pass before merge, now's a great time. Since your review, the main updates are commentary revisions on the 50-qubit results, a Step 2c runtime note, and copyedits.

Also, whenever you get a chance, could you weigh in on the index placement question above? This entry currently sits at the top of the Observable estimation section in _toc.json and index.mdx, while #5280 appended its tutorial at the end. Happy to adjust to whichever convention you'd like.

@abbycross

Copy link
Copy Markdown
Collaborator

@abbycross This is approved by me and @nathanearnestnoble, if you'd like to take a final quick pass before merge, now's a great time. Since your review, the main updates are commentary revisions on the 50-qubit results, a Step 2c runtime note, and copyedits.

Also, whenever you get a chance, could you weigh in on the index placement question above? This entry currently sits at the top of the Observable estimation section in _toc.json and index.mdx, while #5280 appended its tutorial at the end. Happy to adjust to whichever convention you'd like.

Hi and apologies for the delay in response - I'm still sorting through notifications after being OOO! The index placement is totally whatever you and Nate think makes sense. I normally add new tutorials at the end of the index/toc sections, but only because I haven't been asked to make a title more prominent or place in a specific order. Feel free to keep it where you think it makes most sense!

I will take a final look through. Thanks for pinging me.

Comment thread docs/tutorials/simulate-neutron-scattering.ipynb Outdated
Comment thread docs/tutorials/simulate-neutron-scattering.ipynb Outdated
Co-authored-by: abbycross <across@us.ibm.com>
@abbycross
abbycross dismissed stale reviews from nathanearnestnoble and henryzou50 via d373580 July 8, 2026 17:31

@abbycross abbycross left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks! 👍

@henryzou50

Copy link
Copy Markdown
Collaborator

Thanks @abbycross and no worries! Appreciate your reviews and suggestions! Having this one at top of the index is fine for me as it is a tutorial that we want to promote.

@henryzou50
henryzou50 added this pull request to the merge queue Jul 8, 2026
Merged via the queue into main with commit b6ec69d Jul 8, 2026
5 checks passed
@henryzou50
henryzou50 deleted the kjs/neutron-scattering branch July 8, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants