pub struct GmresOptions {
pub max_iter: usize,
pub rtol: f64,
pub max_restarts: usize,
pub verbose: bool,
pub check_true_residual: bool,
}Expand description
Options for GMRES solver.
Fields§
§max_iter: usizeMaximum number of iterations (restart cycle length). Default: 100
rtol: f64Convergence tolerance for relative residual norm.
The solver stops when ||r|| / ||b|| < rtol.
Default: 1e-10
max_restarts: usizeMaximum number of restarts. Total iterations = max_iter * max_restarts. Default: 10
verbose: boolWhether to print convergence information. Default: false
check_true_residual: boolWhen true, verify convergence by computing the true residual ||b - A*x|| / ||b||
before declaring convergence. This prevents false convergence caused by
truncation corrupting the Krylov basis orthogonality (see Issue #207).
Costs one additional apply_a call when convergence is detected.
Default: false
Trait Implementations§
Source§impl Clone for GmresOptions
impl Clone for GmresOptions
Source§fn clone(&self) -> GmresOptions
fn clone(&self) -> GmresOptions
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GmresOptions
impl Debug for GmresOptions
Auto Trait Implementations§
impl Freeze for GmresOptions
impl RefUnwindSafe for GmresOptions
impl Send for GmresOptions
impl Sync for GmresOptions
impl Unpin for GmresOptions
impl UnwindSafe for GmresOptions
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more