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 2024: Add exact solvers #4

Closed
msricher opened this issue Feb 1, 2024 · 2 comments
Closed

GSoC 2024: Add exact solvers #4

msricher opened this issue Feb 1, 2024 · 2 comments
Labels
draft Draft issue enhancement New feature or request gsoc Google Summer of Code project

Comments

@msricher
Copy link
Collaborator

msricher commented Feb 1, 2024

Description

Add an exact non-linear solver for systems of simultaneous equilibria to the NICE (“N-species ICE-table”) Julia module.

📚 Package Description and Impact

A system of simultaneous equilibria’s steady state can be computed by solving a system of nonlinear equations, although for non-trivial systems, a very good guess at the equilibrium reaction extents is required for this. Kinetic Monte Carlo (KMC) methods are often used, then, to stochastically solve this type of system. The KMC method is slow, however, and cannot arrive at the exact solution, although the result of a KMC computation can be used as an initial guess to then solve the system exactly. Currently, NICE features the KMC method, but not the exact method. This project will entail writing the exact method’s objective function and its Jacobian, and then making use of a nonlinear solver Julia module to program the exact method into NICE.

👷 What will you do?

Using the existing NICE reaction system structure, you will write the objective and Jacobian function for the exact equilibrium solution. You will also find a suitable Julia module for nonlinear optimization, and using this, write the function that runs the exact method. You will also write a method that first runs the KMC method, and then uses its output as an initial guess to the exact solver. Finally, you must test these methods.

🏁 Expected Outcomes

  1. Implement exact solver objective and Jacobian functions
  2. Use a nonlinear optimizer library to program the exact method
  3. Write a hybrid method using the result of the KMC method as the guess for the exact method
  4. Test each new function and method you have implemented
Required skills Julia
Preferred skills chemical equilibria and chemical kinetics, nonlinear optimization and objective/Jacobian functions
Project size 90 hours, Small
Difficulty Easy to Medium

🙋 Mentors

Michelle Richer richer.m_at_queensu_dot_ca @msricher
Paul Ayers ayers_at_mcmaster_dot_ca @PaulWAyers
@msricher msricher added enhancement New feature or request gsoc Google Summer of Code project draft Draft issue labels Feb 1, 2024
@Charlie-1-3
Copy link

Dear @msricher and @PaulWAyers ,

My name is Ayush Rai and I am currently pursuing a B.Tech+M.Tech degree in Mathematics and Computational Sciences at IITBHU, Varanasi. I am reaching out to express my interest in contributing to QC-Devs through GSoC 2024.

I have a passion for open-source development and have some experience in group theory and mathematical modeling. I have also completed internships in creating Python modules and developing web APIs and backends. I am proficient in Python and enjoy implementing mathematical theories in other fields. I believe this skill and interest align well with the project.

I would be grateful if you could guide me in understanding the codebase by assigning some beginner-friendly tasks. Additionally, I would like to connect with mentors and other community members, so please share the Slack, Element, Discord, or any other communication channel link.

Thank you for your time and consideration.

Best regards,
Ayush Rai

@msricher
Copy link
Collaborator Author

You will need to write a proposal when the application begins (March 18th), based on the template on our website. Often, until then, 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. (That's always helpful, too, as the internships can be quite competitive.) This NICE project is rather small, but there may be other good first issues to work on elsewhere (theochem/gbasis, theochem/grid, theochem/modelhamiltonian, etc.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft Draft issue enhancement New feature or request gsoc Google Summer of Code project
Projects
None yet
Development

No branches or pull requests

2 participants