GSoC 2025: Alternative Spin representation
: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
- 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*} $$
- Develop support for general XYZ Heisenberg models
- 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 |
Hi, @RichRick1 I'm a Python developer, I would like to contribute to this project.
Hi @asterisk-ragavan! Please send me an email and I will provide some additional resources on how you can contribute to the project.
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!
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 😊
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.
Hii, @RichRick1 & @PaulWAyers I'm excited to contribute to QC-Devs, so what i have to ?
Hii @RichRick1, please provide some resources, for me to start contributing to this project.
@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 :)
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:
-
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?
-
When building S^+ and S^−, should we handle floating-point precision issues for larger spins using a tolerance check for near-zero values?
-
Should we enforce a consistent data type like np.complex128 for all spin matrices, or is flexibility preferred?
-
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?
-
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?
-
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 @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
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
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
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
Hello @m-fer-am @IsaiahChoi @adyaabba please write me an email and I will share some resources with you
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:
- 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?
- When building S^+ and S^−, should we handle floating-point precision issues for larger spins using a tolerance check for near-zero values?
- Should we enforce a consistent data type like np.complex128 for all spin matrices, or is flexibility preferred?
- 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?
- 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?
- 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
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.
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: @.***>
Hello @IsaiahChoi @Muneeb-Ahmad-404! Please send me an email and I will share some useful resources with you.
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
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.