Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GSoC 2025: Transformed Cubic Grids #264

Open
PaulWAyers opened this issue Feb 10, 2025 · 9 comments
Open

GSoC 2025: Transformed Cubic Grids #264

PaulWAyers opened this issue Feb 10, 2025 · 9 comments
Labels
gsoc Possible Google Summer of Code Project

Comments

@PaulWAyers
Copy link
Member

PaulWAyers commented Feb 10, 2025

Description

One disadvantage of Becke-style molecular grids is that, due to overlapping atomic grids, there are numerous grid points that have very small, but nonnegligible, weights. Our strategy to overcome this issue is to use a cubic grid, but transform it to real space in such a way that points are concentrated where the integrands of interest are large and/or rapidly changing. The goal of this project is add this functionality to Grid. One nice facet of this approach is that it is easy to adaptively refine a cubic grid, and ergo a transformed cubic grid. This allows for adaptive quadrature to be implemented without too much pain.

📚 Package Description and Impact

Grid is a pure Python library for numerical integration, interpolation and differentiation of interest for the quantum chemistry community.

👷 What will you do?

A more detailed description of this project is available in issue #15 . The basic idea is to take a cubic grid, and then perform a transformation based on a probability distribution function, using the conditional distribution method.

🏁 Expected Outcomes

  1. Refresh pull request Transformed cube (#15) #96 and merge it.
  2. Implement adaptive transformed cubic grid.
  3. Write comprehensive tests and documentation for all new functionality.
  4. Write tutorial Jupyter notebooks that show how to use the new functionality.
Required skills Python, OOP
Preferred skills Be comfortable with math and numerical algorithms. Experience with scientific programming can help
Project size 175 hours, Medium
Difficulty Medium 🤔

🙋 Mentors

Marco Martínez-González mmg870630_at_gmail_dot_com @marco-2023
Farnaz Heidar-Zadeh farnaz_dot_heidarzadeh_at_queensu_dot_ca @FarnazH
Ali Tehrani 19at27_at_queensu_dot_ca @Ali-Tehrani
@PaulWAyers PaulWAyers added the gsoc Possible Google Summer of Code Project label Feb 10, 2025
@Sim43
Copy link

Sim43 commented Feb 23, 2025

Hi can I work on this?

@PaulWAyers
Copy link
Member Author

Hi can I work on this?

Of course. We have not yet heard from GSoC about approval (or not) for this year. Presuming you would like to do it as part of GSoC, you should look at the guidelines. We always have a few people who end up taking on a GSoC project without actually doing GSoC, so we are happy to support that too.

Note that we cannot promise anyone a GSoC position or anything of that sort. We can only say we support anyone who wishes to contribute to the best of our ability and capacity.

@Sim43
Copy link

Sim43 commented Feb 25, 2025

Thank you! I am always looking to work on coding projects as a hobby. GSoC or not, I am still willing.

@TahaValiji
Copy link

Hey mentors, How can I work on this project.?
Please guide me.

@PaulWAyers
Copy link
Member Author

The first step is to read the guidelines. Then you'll need to start to understand the project, looking at the algorithm and the existing code, so that you can write a proposal.

@SophiaLi20
Copy link

hey @PaulWAyers , Thank you for the guidance! I'll begin by reviewing the guidelines and exploring the existing implementation, especially the transformation approach for cubic grids. I'll also go through issue #15 and PR #96 to understand the current state and areas for improvement.
I wanted to clarify—do I need to make a contribution to the project before submitting my proposal, or is a well-drafted proposal sufficient? Let me know how I should proceed.
Looking forward to your guidance on this

@PaulWAyers
Copy link
Member Author

A well-drafted proposal is submitted. Sometimes someone has made a pull request, which can be useful, but as I recall last year the two successful applicants had not made a pull request (certainly not a merged pull request) at the time they were accepted by GSoC. In general, we are mostly looking for skilled applicants who have the ability to write cogent proposals that demonstrate understanding and perspective on the problem. The example proposal linked to at
https://qcdevs.org/join/qcdevs_gsoc/
is useful.

@SophiaLi20
Copy link

Hey @PaulWAyers ,
thanks for sharing this! It’s really helpful to know that a well-written proposal is the main focus rather than making a PR early on.
I’ve been diving into issue #15 and PR #96 to get a better understanding of how the transformation approach is currently implemented and where improvements can be made. I’ll make sure my proposal reflects a solid grasp of the problem and possible solutions.
Do you think it would be useful to highlight any specific edge cases or challenges in the transformation process? Also, if there are key aspects you’d recommend emphasizing in the proposal, I’d love to hear your thoughts.
Looking forward to your insights!

@PaulWAyers
Copy link
Member Author

The transformation process is, I believe, relatively straightforward. The edge case I know is when the point is not bracketed, and one needs to bracket it. (The other edge case is where the solver doesn't converge, which can always be fixed by increasing the number of iterations or switching to a brute-strength solver like the bisection method). Neither should not be an issue in the adaptive algorithm, where a (very!) good guess is always available for the solver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc Possible Google Summer of Code Project
Projects
None yet
Development

No branches or pull requests

4 participants