oscillator_no_sensi/
oscillator_no_sensi.rs1use cvode_wrap::*;
2
3fn main() {
4 let y0 = [0., 1.];
5 fn f(_t: Realtype, y: &[Realtype; 2], ydot: &mut [Realtype; 2], k: &Realtype) -> RhsResult {
7 *ydot = [y[1], -y[0] * k];
8 RhsResult::Ok
9 }
10 let mut solver = SolverNoSensi::new(
12 LinearMultistepMethod::Adams,
13 f,
14 0.,
15 &y0,
16 1e-4,
17 AbsTolerance::scalar(1e-4),
18 1e-2,
19 )
20 .unwrap();
21 let ts: Vec<_> = (1..100).collect();
23 println!("0,{},{}", y0[0], y0[1]);
24 for &t in &ts {
25 let (_tret, &[x, xdot]) = solver.step(t as _, StepKind::Normal).unwrap();
26 println!("{},{},{}", t, x, xdot);
27 }
28}