You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Implement exact solver objective and Jacobian functions
Use a nonlinear optimizer library to program the exact method
Write a hybrid method using the result of the KMC method as the guess for the exact method
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
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.
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.
📚 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
🙋 Mentors
The text was updated successfully, but these errors were encountered: