pub struct CoupledSolver {
pub tolerance: f64,
pub max_iter: usize,
pub relaxation: f64,
}Expand description
Multiphysics coupled solver strategies.
Provides operator splitting, staggered scheme, and monolithic Newton iteration.
Fields§
§tolerance: f64Convergence tolerance.
max_iter: usizeMaximum iterations.
relaxation: f64Relaxation parameter ω for successive substitution (0 < ω ≤ 1).
Implementations§
Source§impl CoupledSolver
impl CoupledSolver
Sourcepub fn new(tolerance: f64, max_iter: usize, relaxation: f64) -> Self
pub fn new(tolerance: f64, max_iter: usize, relaxation: f64) -> Self
Creates a new coupled solver.
Sourcepub fn operator_split<FA, FB>(
&self,
a0: f64,
b0: f64,
solve_a: FA,
solve_b: FB,
) -> (f64, f64, usize)
pub fn operator_split<FA, FB>( &self, a0: f64, b0: f64, solve_a: FA, solve_b: FB, ) -> (f64, f64, usize)
Operator splitting: alternately solve field A then field B.
solve_a(b) -> a and solve_b(a) -> b are the individual field solvers.
Returns the converged (a, b) pair and number of iterations.
Auto Trait Implementations§
impl Freeze for CoupledSolver
impl RefUnwindSafe for CoupledSolver
impl Send for CoupledSolver
impl Sync for CoupledSolver
impl Unpin for CoupledSolver
impl UnsafeUnpin for CoupledSolver
impl UnwindSafe for CoupledSolver
Blanket Implementations§
Source§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