Skip to content

symbolica-dev/symbolica-ode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Symbolica-ode

Symbolica website Zulip Chat symbolica-ode repository Codecov

Construct blazing-fast, optimized ODE systems and evolve them using Symbolica and Sundials.

Examples

Construct and evolve the Brusselator system:

use symbolica::{evaluate::FunctionMap, parse};
use symbolica_ode::{ARKodeSolver, ODESystem};

fn main() {
    let fu = parse!("1 - (w + 1)*u + v*u^2");
    let fv = parse!("w*u - v*u^2");
    let fw = parse!("100*(3.4 - w) - u*w");

    let system = vec![fu.clone(), fv.clone(), fw.clone()];
    let params = vec![parse!("u"), parse!("v"), parse!("w")];
    let function_map = FunctionMap::new();

    let ode_system =
        ODESystem::new(system, params, function_map).expect("Failed to create ODE system");

    let mut ark_solver = ARKodeSolver::new(ode_system, &[1.2, 3.1, 3.0], 0.0)
        .expect("Failed to create ARKode solver");

    let res = ark_solver.evolve(10.0, 0.1);

    println!("Final state at t=10.0: {:?}", res);
}

About

Optimize and evolve ODE systems with Symbolica's algebraic engine and Sundials' ODE solvers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages