Re-increased but added to the convergency limit

This commit is contained in:
Connor Johnstone
2023-10-16 14:23:18 -06:00
parent a819724292
commit bae41373ef

View File

@@ -1,5 +1,5 @@
use nalgebra::SVector; use nalgebra::SVector;
use roots::find_root_regula_falsi; use roots::{find_root_regula_falsi, SimpleConvergency};
use super::callback::Callback; use super::callback::Callback;
use super::controller::{Controller, PIController}; use super::controller::{Controller, PIController};
@@ -30,6 +30,7 @@ where
} }
} }
pub fn solve(&mut self) -> Solution<S, D> { pub fn solve(&mut self) -> Solution<S, D> {
let mut convergency = SimpleConvergency{ eps: 1e-14, max_iter: 150 };
let mut times: Vec<f64> = vec![self.ode.t]; let mut times: Vec<f64> = vec![self.ode.t];
let mut states: Vec<SVector<f64, D>> = vec![self.ode.y]; let mut states: Vec<SVector<f64, D>> = vec![self.ode.y];
let mut dense_coefficients: Vec<Vec<SVector<f64, D>>> = Vec::new(); let mut dense_coefficients: Vec<Vec<SVector<f64, D>>> = Vec::new();
@@ -71,7 +72,7 @@ where
let test_y = self.integrator.step(&self.ode, test_t).0; let test_y = self.integrator.step(&self.ode, test_t).0;
(callback.event)(self.ode.t + test_t, test_y, &self.ode.params) (callback.event)(self.ode.t + test_t, test_y, &self.ode.params)
}; };
let root = find_root_regula_falsi(0.0, step, &f, &mut 1e-8).unwrap(); let root = find_root_regula_falsi(0.0, step, &f, &mut convergency).unwrap();
step = root; step = root;
(new_y, _, dense_option) = self.integrator.step(&self.ode, step); (new_y, _, dense_option) = self.integrator.step(&self.ode, step);
(callback.effect)(&mut self.ode); (callback.effect)(&mut self.ode);