ModelHamiltonian icon indicating copy to clipboard operation
ModelHamiltonian copied to clipboard

GSoC 2025: Alternative Spin representation

Open RichRick1 opened this issue 10 months ago • 20 comments

:books: Package Description and Impact

This project aims to enhance the Model Hamiltonian package by implementing a new spin representation system. The current implementation's limitations in handling certain spin operators will be addressed through a more flexible and comprehensive approach, enabling support for general XYZ Heisenberg models.

:construction_worker: What will you do?

You will implement a direct spin modeling system using creation and annihilation operators. The key components include:

• Implementation of spin operators ($S_k^+$, $S_k^-$, $S^Z_k$) • Handling of maximum seniority states • Support for different $N_\alpha$ and $N_{\beta}$ electron configurations • Verification of spin algebra commutation relations

:checkered_flag: Expected Outcomes

  1. Implement new spin operator representations

$$ \begin{align*} S_k^+ &= a_{k\alpha}^\dagger a_{k\beta} \ S_k^- &= a_{k\beta}^\dagger a_{k\alpha} \ S^Z_k &= \tfrac{1}{2}\left(a_{k\alpha}^\dagger a_{k\alpha}-a_{k\beta}^\dagger a_{k\beta} \right) \end{align*} $$

  1. Develop support for general XYZ Heisenberg models
  2. Write comprehensive documentation for the new spin representation system
Required skills Python, Linear Algebra, Quantum Mechanics
Preferred skills Experience with quantum chemistry, familiarity with spin operators
Project size 90 hours, Small
Difficulty Medium 🤓

:raising_hand: Mentors

Valerii Chuiko valerachuiko_at_gmail_dot_com @RichRick1
Paul Ayers ayers_at_mcmaster_dot_ca @PaulWAyers

RichRick1 avatar Feb 04 '25 21:02 RichRick1

Hi, @RichRick1 I'm a Python developer, I would like to contribute to this project.

asterisk-ragavan avatar Mar 02 '25 17:03 asterisk-ragavan

Hi @asterisk-ragavan! Please send me an email and I will provide some additional resources on how you can contribute to the project.

RichRick1 avatar Mar 03 '25 16:03 RichRick1

hi @RichRick1! I have sent you an email regarding this PR, including my proposed approach for the implementation. Please let me know if you need any further details. Looking forward to your response!

This project matching what im doing currently, including my one of my coursework based on Quantum Sensing and Metrology, so i decided to make a short outlined approach what to do!

typhonshambo avatar Mar 03 '25 17:03 typhonshambo

Hi @asterisk-ragavan! Please send me an email and I will provide some additional resources on how you can contribute to the project.

@RichRick1 thanks, sent a mail, will go through the document and resource and get back to you 😊

asterisk-ragavan avatar Mar 05 '25 05:03 asterisk-ragavan

Hello, @RichRick1 @PaulWAyers I have send an email with my resume. I am interested in this project. I have some relevant experience with computational chemistry and software design. I have also took quantum mechanics.. chemistry ,linear algebra and python classes.

Inocent-web avatar Mar 09 '25 02:03 Inocent-web

Hii, @RichRick1 & @PaulWAyers I'm excited to contribute to QC-Devs, so what i have to ?

kunalsanga avatar Mar 15 '25 16:03 kunalsanga

Hii @RichRick1, please provide some resources, for me to start contributing to this project.

DankJugal avatar Mar 16 '25 12:03 DankJugal

@kunalsanga @DankJugal Thanks for showing your interest in the MoHa package. Please, write me an email and I can share some useful resources with you :)

RichRick1 avatar Mar 17 '25 19:03 RichRick1

Hi @RichRick1 I've sent an email from id - [email protected] to ask about some resources / help. I also had a few high level technical questions:

  1. Would it be clearer or more efficient to define an explicit mapping (e.g., a dictionary) between indices and m-values, especially for higher-dimensional Hilbert spaces?

  2. When building S^+ and S^−, should we handle floating-point precision issues for larger spins using a tolerance check for near-zero values?

  3. Should we enforce a consistent data type like np.complex128 for all spin matrices, or is flexibility preferred?

  4. Given that the basis ordering impacts matrix structure, what's the best way to validate properties like Hermiticity of Sx,Sy,Sz​ and correct ladder operator normalization?

  5. Would it be worthwhile to implement sparse matrix versions of these operators using scipy.sparse for large spin values, and would that change how we handle the basis?

  6. If symbolic computation support (e.g., with SymPy) is added later, should we design the basis and matrix logic with that in mind now?

I'll be opening a PR and submitting a proposal for this project soon via email. Appreciate your thoughts and guidance!

shah672 avatar Mar 21 '25 16:03 shah672

Hello @RichRick1 and @PaulWAyers,

I’m Adya, and I’m interested in contributing to the Model Hamiltonian project for GSoC 2025. With a background in quantum mechanics, including coursework in Quantum Error Correction and IBM’s quantum information courses, as well as practical experience with Qiskit, I’m eager to contribute to implementing spin operator representations and supporting the XYZ Heisenberg model.

I’d love to discuss how I can start contributing and would appreciate any resources or guidance.

Best, Adya

adyaabba avatar Mar 23 '25 17:03 adyaabba

Would you recommend starting by proposing a Jupyter Notebook tutorial (raising an issue and outlining the structure) or looking for a 'good first issue' to work on? Let me know the best way to begin. Thanks

adyaabba avatar Mar 23 '25 17:03 adyaabba

Hi @RichRick1 and @PaulWAyers,

My name is Fernanda and I would like to join the project for GSoC 2025. I have a master in physics where I studied quantum mechanics, atoimc molecular optics (and learned some about quantum chemistry), the basics of quantum information and Qiskit. I would love to join the project and would appreciate anything feedback or more guidance that you can give offer me.

Best regards, Fernanda

m-fer-am avatar Mar 23 '25 20:03 m-fer-am

Hello @RichRick1 and @PaulWAyers,

I’m Isaiah Choi, and I'd love the chance to contribute to the Model Hamiltonian project for GSoC 2025! I have a background in quantum mechanics, specifically with chemical applications, including coursework like Quantum Mechanics in Spectroscopy and Physical Chemistry. I'm also super interested in coding, with my main experience coming from applying Python to science projects, including data visualization, computer vision, deep learning, reinforcement learning, PyTorch, and machine learning. I would love the chance to start implementing spin operator representations and supporting the XYZ Heisenberg model, especially at an organization like QC-Devs!

I’d love to discuss how I can start contributing and would appreciate any resources or guidance.

Best, Isaiah

IsaiahChoi avatar Mar 24 '25 13:03 IsaiahChoi

Hello @m-fer-am @IsaiahChoi @adyaabba please write me an email and I will share some resources with you

RichRick1 avatar Mar 25 '25 17:03 RichRick1

Hi @RichRick1 I've sent an email from id - [email protected] to ask about some resources / help. I also had a few high level technical questions:

  1. Would it be clearer or more efficient to define an explicit mapping (e.g., a dictionary) between indices and m-values, especially for higher-dimensional Hilbert spaces?
  2. When building S^+ and S^−, should we handle floating-point precision issues for larger spins using a tolerance check for near-zero values?
  3. Should we enforce a consistent data type like np.complex128 for all spin matrices, or is flexibility preferred?
  4. Given that the basis ordering impacts matrix structure, what's the best way to validate properties like Hermiticity of Sx,Sy,Sz​ and correct ladder operator normalization?
  5. Would it be worthwhile to implement sparse matrix versions of these operators using scipy.sparse for large spin values, and would that change how we handle the basis?
  6. If symbolic computation support (e.g., with SymPy) is added later, should we design the basis and matrix logic with that in mind now?

I'll be opening a PR and submitting a proposal for this project soon via email. Appreciate your thoughts and guidance!

Hello @shah672 !

Model hamiltonian isn't really a high-performance library, because in quantum chemistry we ran out of steam while solving hamiltonians way earlier than we start noticing any performance drawbacks when constructing hamiltonians. So I think the only thing that we can consider in the current problem is point 5 that you are mentioned. The rest shouldn't really matter in our case

RichRick1 avatar Mar 25 '25 17:03 RichRick1

Hi @RichRick1 I would be interested in contributing to this project through Google Summer of Code. I have a background in physical/quantum chemistry and some machine learning projects in Python, and would love to learn more about developing code for scientific purposes. I have emailed you to indicate my interest.

michelemyong avatar Mar 27 '25 14:03 michelemyong

Hi Valerii,

Thank you for your response! I have some quantum chemistry background as well as a good amount of applied machine learning projects with Python. I'd love to learn more about the project!

Isaiah

On Tue, Mar 25, 2025 at 1:02 PM Valerii Chuiko @.***> wrote:

Hello @m-fer-am https://github.com/m-fer-am @IsaiahChoi https://github.com/IsaiahChoi @adyaabba https://github.com/adyaabba please write me an email and I will share some resources with you

— Reply to this email directly, view it on GitHub https://github.com/theochem/ModelHamiltonian/issues/150#issuecomment-2751950446, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQQIS53CP7RQXW3C3N2J7N32WGDZPAVCNFSM6AAAAABWPQ4PR2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONJRHE2TANBUGY . You are receiving this because you were mentioned.Message ID: @.***> [image: RichRick1]RichRick1 left a comment (theochem/ModelHamiltonian#150) https://github.com/theochem/ModelHamiltonian/issues/150#issuecomment-2751950446

Hello @m-fer-am https://github.com/m-fer-am @IsaiahChoi https://github.com/IsaiahChoi @adyaabba https://github.com/adyaabba please write me an email and I will share some resources with you

— Reply to this email directly, view it on GitHub https://github.com/theochem/ModelHamiltonian/issues/150#issuecomment-2751950446, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQQIS53CP7RQXW3C3N2J7N32WGDZPAVCNFSM6AAAAABWPQ4PR2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONJRHE2TANBUGY . You are receiving this because you were mentioned.Message ID: @.***>

IsaiahChoi avatar Mar 30 '25 15:03 IsaiahChoi

Hello @IsaiahChoi @Muneeb-Ahmad-404! Please send me an email and I will share some useful resources with you.

RichRick1 avatar Apr 03 '25 16:04 RichRick1

Hello @RichRick1 and @PaulWAyers

I’m Prayas Satkar, and I would love to contribute to the Model Hamiltonian project for GSoC 2025! Having a major in Physics along with a minor in Quantum computing, my background in quantum mechanics and computational physics would beneficial in tackling the fundamental problems behind this project. I have also some experience in working on Ising spin model which involves working with spin operators and Hamiltonian. I'm also super interested in coding, with my main experience coming from applying Python to science projects, including data visualization, PyTorch, and machine learning. I would love the opportunity to start implementing spin operator representations and supporting the XYZ Heisenberg model, especially at an organization like QC-Devs!

I would love to join the project and would appreciate anything feedback or more guidance that you can give offer me.

Best, Prayas

Prayas242 avatar Apr 05 '25 04:04 Prayas242

I added some notes on alternative spins to the repository. I think that in the main documentation we should talk about how we do the spin-ization in the spin-Hamiltonian tutorial. That might be a good first thing to try if you want to work on it, Crystal.

PaulWAyers avatar May 23 '25 17:05 PaulWAyers