theochem/ModelHamiltonian

GSoC 2024: API and interface improvement

Closed this issue · 14 comments

Description

Improve API and tests and code utilities of the existing Model Hamiltonian package.

📚 Package Description and Impact

In many cases, the true many-electron Hamiltonian is intractable to solve, so model Hamiltonians that capture key features of the physicochemical system qualitatively. Classic examples include the (extended) Hubbard, Ising, and Heisenberg model Hamiltonians. The goal of the package is to build a framework for constructing Model Hamiltonians and outputting them into a format that is conducive to traditional packages for solving the quantum many-body problem.

👷 What will you do?

In our group we have already implemented API for generating occupation- and spin- based Hamiltonians. However, there are other type of so-called occupation-and-spin based hamiltonians that play a crucial role in research. Your main goal would be to implement these types of model Hamiltonins. Fear not, contributor, you don’t need to know all the frustrating details of quantum chemistry.

🏁 Expected Outcomes

  1. Implement dictionary-base database to integrate some standard constants that describes various atoms and connectivity types between them
  2. Create an API that integrates together existing pieces for building occupation- and spin- based hamiltonians.
  3. Write tests for implemented API.
  4. Code utilities to output model Hamiltonians into formats conducive to external programs, including FCIDump and Triqs.
Required skills Python, OOP
Preferred skills Be comfortable with math, physics. Experience with scientific programming, quantum chemistry would be huge plus
Project size 175 hours, Medium
Difficulty Medium 😉

🙋 Mentors

Valerii Chuiko valerachuiko_at_gmail_dot_com @RichRick1
Paul Ayers ayers_at_mcmaster_dot_ca @PaulWAyers

Hey @RichRick1 and @PaulWAyers
I'm Aashi Jain, an enthusiastic third-year engineering student with a passion for open-source development and backend technologies. I'm excited about the opportunity to contribute to the ModelHamiltonian project under GSOC'24.
I won't say I am an expert in quantum chemistry but I am comfortable with maths and physics. Could you assign me some beginner-friendly tasks to help me get familiar with the codebase? Also, if there's a Slack or Discord channel for communication, I'd love to join. Also any related resources to know more about the project if available!
Thank you!

Hello @aashi-ihsaa! Thanks a lot for reaching to us.
Our organization just applied to participate in GSoC and we will find out if we are eligible in a week. We will message you once the decision is made :)
We really appreciate your early application!

Hello Every one @RichRick1 , @PaulWAyers

I'm Samadou Ouro-agorouko, currently a 3rd-year undergraduate student majoring in Physics. While I have a passion for software development, I also acknowledge that I am not yet an expert in the field. My background in physics has given me some understanding of quantum chemistry topics such as molecular orbital theory and Schrödinger's equations for interpreting the wave function of a particle 𝚿.

I am eager to learn and contribute to this project for GSoC 2024 under your guidance. Thank you for having me here !

Hi @RichRick1 , @PaulWAyers,

I am Dhrumil Raigagla, a final year undergrad pursuing B.Tech in Information Technology at VJTI, Mumbai. I am an open source enthusiast and want to contribute to QC-Devs in GSoC 2024.

Prior to this, I have done some internships and have worked on creating python modules as well as developing web-apis and web backend.
I am proficient in python and have a deep passion for maths and mathematical theories. This skill and interest of mine aligns very well with the project.

Can you guide me to get started and understand the codebase, by assigning some beginner-friendly tasks?
Also, I wish to connect with you mentors and other members of the community, so, it would be beneficial if you can provide Slack, Element, Discord or any other communication channel link.

Thank you!

Dear @aashi-ihsaa @Bakugo90 @Dhrumil07,
Thanks for reaching to us! We recently found out we are approved for GSoC 2024. This is the first time we've applied as an independent organization, so, according to GSoC policy, we will probably get 1 - 3 students. (We do not know how many students we will get until later.)
The basic procedure is that you need to write a proposal for a project, based on the template on our web site. Often people go on and start working, either on the project or on a "good first issue" to become familiar with the QC-Devs ecosystem, before starting.
Please, write me an email to valerachuiko_at_gmail_dot_com, so I can share some resources and discuss further steps.

@RichRick1 , @PaulWAyers

Greetings,

As a computer engineering student with an interest for quantum computation and software development, I find contributing to refining the API, tests, and code utilities an opportunity that particularly matches my background and that could help me enhance my skills,

I have submitted an expression of interest and a proposal following the guidelines that you have provided, is there any further step to follow? How could I become more familiar with the project? I am exploring the already present documentation and API here on GitHub,

Awaiting the opportunity,

Alessia

Hello @aleconca,
Sound great that you're also interested in QC-dev. I think @RichRick1 is super busy at the moment but here's what he had to say;

Often people go on and start working, either on the project or on a "good first issue" to become familiar with the QC-Devs ecosystem, before starting.

Qc-dev, it's a whole ecosystem, to familiarize yourself you can start by contributing to this repository by resolving issues or to others like Gbasis or AtomDB etc. ...

Thanks a lot! I will go through the ecosystem and look around for some issues :)

@RichRick1 @PaulWAyers
Greetings Everyone!

I'm Himanshu Sharma, an undergraduate studying physics at IIT Kanpur, India. I have a keen interest in Quantum Computation and Quantum Mechanics; with a preliminary background in Quantum Chemistry and a proficiency in Python. While I am relatively new to the world of open source, I have experience with Git and GitHub via my involvement in diverse Python projects. My interest in research in Quantum Mechanics combined with my passion for programming and technology were the driving factors for wanting to contribute to the Model Hamiltonian package.

I've started exploring the code base and reading the theoretical introduction to the algorithms and methods, and have also written to you on the provided email ID. Could you offer some pointers on how to proceed with navigating the code base and suggest resources and books that might aid my contribution?

Looking forward to learning and contributing!

Hi @BlakkTyger! It great to hear that you expressed interest in working on Model Hamiltonian project. Please, send me an email at valerachuiko_at_gmail_dot_com and I'll share some useful resources.

Hey @RichRick1 I sent a mail regarding the requirements about the project as stated before , can you look into it because I am interested in developing an interface/ api for the given model . I have some experience working with APIs and developing them using python . Will be comfortable in working with any language based on the requirements.

@lgsurith I've responded via email! Thanks for you patience :)

Hello @RichRick1 , I hope this message finds you well. I wanted to let you know that I've sent you an email expressing my interest in the "Improving Model Hamiltonian Package" project for the Google Summer of Code 2024. I'm looking forward to the possibility of contributing to the project and would appreciate any guidance you can provide. Thank you.

Hello @RichRick1 ,

I'm Giovanni, a student of Engineering Physics, currently pursuing a dual degree in Artificial Intelligence and Imaging at Institut Polytechnique de Paris. My research experience lies in tackling problems related to the models you mentioned, with a particular focus on simulating their behavior and optimizing their computational time.

I am enthusiastic about open-source technologies, so I believe that I contribute effectively to the project's objectives.

I've just sent you an email expressing my interest in the project.

Best regards