Closed msricher closed 5 months ago
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
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.)
Description
Add an exact non-linear solver for systems of simultaneous equilibria to the NICE (“N-species ICE-table”) Julia module.
:books: 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.
:construction_worker: 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.
:checkered_flag: Expected Outcomes
:raising_hand: Mentors