← Back

Module precond

trait Preconditioner

Preconditioner trait

Source: precond.joule:11

fn apply(&self, r: &[f64]) -> Vec<f64>;

Apply preconditioner: z = M^(-1) * r

Source: precond.joule:13

struct IdentityPreconditioner;

Identity preconditioner (no preconditioning)

Source: precond.joule:21

fn new() -> Self

Source: precond.joule:24

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:30

struct JacobiPreconditioner

Jacobi (diagonal) preconditioner: M = diag(A)

Source: precond.joule:40

fn new(a: &CsrMatrix) -> Self

Source: precond.joule:47

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:59

struct SsorPreconditioner

SSOR (Symmetric Successive Over-Relaxation) preconditioner

Source: precond.joule:71

fn new(a: &CsrMatrix, omega: f64) -> Self

Source: precond.joule:81

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:112

struct Ilu0Preconditioner

ILU(0) preconditioner (no fill-in)

Source: precond.joule:155

fn new(a: &CsrMatrix) -> Self

Source: precond.joule:168

fn solve_l(&self, b: &[f64]) -> Vec<f64>

Source: precond.joule:226

fn solve_u(&self, b: &[f64]) -> Vec<f64>

Source: precond.joule:244

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:270

struct Ic0Preconditioner

IC(0) preconditioner for SPD matrices

Source: precond.joule:281

fn new(a: &CsrMatrix) -> Self

Source: precond.joule:291

fn solve_l(&self, b: &[f64]) -> Vec<f64>

Source: precond.joule:351

fn solve_lt(&self, b: &[f64]) -> Vec<f64>

Source: precond.joule:376

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:414

struct PolynomialPreconditioner

Polynomial preconditioner based on Chebyshev or Neumann series

Source: precond.joule:425

fn neumann(a: &CsrMatrix, degree: usize) -> Self

Source: precond.joule:434

fn chebyshev(a: &CsrMatrix, degree: usize, lambda_min: f64, lambda_max: f64) -> Self

Create polynomial preconditioner with Chebyshev coefficients

Source: precond.joule:446

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:466

struct BlockJacobiPreconditioner

Block Jacobi preconditioner

Source: precond.joule:493

fn new(a: &CsrMatrix, block_size: usize) -> Self

Source: precond.joule:500

fn apply(&self, r: &[f64]) -> Vec<f64>

Source: precond.joule:533

fn invert_dense(a: &[Vec<f64>]) -> Vec<Vec<f64>>

Invert dense matrix using Gauss-Jordan elimination

Source: precond.joule:561

fn make_test_matrix() -> CsrMatrix

Source: precond.joule:620

fn test_jacobi_precond()

Source: precond.joule:630

fn test_identity_precond()

Source: precond.joule:644