Coder Social home page Coder Social logo

nice.jl's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nice.jl's Issues

GSoC 2024: Add exact solvers

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

NICE and NICE.jl give different results

Based on Hasan's tests, NICE and NICE.jl give different results.

We should figure out what's going on. His presentation is Thursday, and I doubt I'll have time to look at it before then. @msricher do you think you could see what's off? @mmg870630 might be helpful too.

Marco, this is a net-event kinetic-Monte-Carlo code we've been working on in the group.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.