Skip to content

Add Quantum Drude Oscillator Notebook#1506

Open
king-p3nguin wants to merge 2 commits intoClassiq:mainfrom
king-p3nguin:quantum_drude_oscillator
Open

Add Quantum Drude Oscillator Notebook#1506
king-p3nguin wants to merge 2 commits intoClassiq:mainfrom
king-p3nguin:quantum_drude_oscillator

Conversation

@king-p3nguin
Copy link
Contributor

@king-p3nguin king-p3nguin commented Mar 1, 2026

PR Description

I added a notebook for solving the quantum Drude oscillator model.

The notebook includes:

  • Implementation QDO Hamiltonian with quadratic coupling in classiq
  • Demonstration of ground state energy calculation of QDO Hamiltonian using VQE

*This notebook was created during an internship at Classiq Japan

Some notes

  • Please make sure that the notebook runs successfully with the latest Classiq version.

  • Please make sure that you placed the files in an appropriate folder

    • And that the file names are clear, descriptive, and match the notebook content.
      • Note that we require the file names of .ipynb and .qmod to be unique across this repository.
    • Plus, please make sure that all required files are included: .qmod, .synthesis_options.json, .metadata.json
    • And that images are embedded inside the notebook, not added as external files
  • If applicable, please include link to the paper on which the notebook is based, in the notebook itself.

  • Please use rebase on your branch (no merge commits)

  • Please link this PR to the relevant issue

  • Please make sure to run pre-commit when commiting changes

    • If you're using git in the terminal, make sure to install pre-commit via running pip install pre-commit followed by pre-commit install
    • Note that Classiq runs automatic code linting. Meaning that one of the tests verifies the output of pre-commit.
    • Also note that pre-commit may minorly alter some files. Make sure to git add the changes done by pre-commit

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@github-actions
Copy link

github-actions bot commented Mar 1, 2026

🔥 New notebook just dropped!

@amir-naveh , @TomerGoldfriend — come check out this shiny new addition to our repo.

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

Excellent intro, well writen.


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

I would add a formal definition for k (like in the get_rightmost_zero_pos function)

Also, please change the ket and bra to | \rangle and \langle |, since the documentation doesn't support ket and bra.


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

I would show why one of these is correct by a simple calculation, or omit the print statement.

and add a statement that they are indeed hermitian conjugates (or omit one of them)


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

It is better to add an assert statement in both m=1 and m=2, the m=1 is clear but in the m=2 it is hard to compare. You can create an object (for example for m=2) x1x2_analytical = ((np.sqrt(3)+2)/4) Pauli.X(0)*Pauli.X(2) + ....

and then assert that x1x2 is close to x1x2_analytical.


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

Here, it might simplify the derivation to not that a^dagger a is diagonal in the fock basis and then just evaluate |n><n| in term of the Z and I pauli operators


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

This should be modified to fit the update way to minimize and perform VQE.

If you have any questions, let me know:)


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

I'm missing a bit of motivation, why are you comparing this?

Is this just a benchmark?

In the beginning you mentioned 3 molecules so it is worth motivating this calculation and emphasis what it infers.


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

Analyse the results, shortly, and connect it to the calculation above


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

Explain what this plot implies, and why do we see the results we see...


Reply via ReviewNB

@@ -0,0 +1,1091 @@
{
Copy link
Collaborator

@roie-d-classiq roie-d-classiq Mar 3, 2026

Choose a reason for hiding this comment

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

Again, these results should be explained/analyzed.

In addition, I would add a comparison of the 3 molecules to showcase the many-body dispersion phenomena and exemplify what you say in the beginning "  however, the total force does not simply triple when a third molecule is introduced" this is super interesting and would be really nice to show how the drude model supports this.

The notebook is well written, interesting and clear!

Thanks for the contribution:)


Reply via ReviewNB

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants