Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::LinearSolvePolicy Struct Reference

Configuration for linear system solve backend and algorithm. More...

#include <Linalg.hpp>

Public Member Functions

LinearSolvePolicyset_tolerance (double value)
LinearSolvePolicyset_max_iterations (int value)
LinearSolvePolicyset_gmres_restart (int value)
LinearSolvePolicyset_preconditioner_hook (std::function< NumericVector(const NumericVector &)> hook)
LinearSolvePolicyset_symbolic_solver (const std::string &solver, const casadi::Dict &opts=casadi::Dict())

Static Public Member Functions

static LinearSolvePolicy dense (DenseLinearSolver solver=DenseLinearSolver::ColPivHouseholderQR)
static LinearSolvePolicy sparse_direct (SparseDirectLinearSolver solver=SparseDirectLinearSolver::SparseLU)
static LinearSolvePolicy iterative (IterativeKrylovSolver solver=IterativeKrylovSolver::BiCGSTAB, IterativePreconditioner preconditioner=IterativePreconditioner::Diagonal)

Public Attributes

LinearSolveBackend backend = LinearSolveBackend::Dense
DenseLinearSolver dense_solver = DenseLinearSolver::ColPivHouseholderQR
SparseDirectLinearSolver sparse_direct_solver = SparseDirectLinearSolver::SparseLU
IterativeKrylovSolver iterative_solver = IterativeKrylovSolver::BiCGSTAB
IterativePreconditioner iterative_preconditioner = IterativePreconditioner::Diagonal
double tolerance = 1e-10
int max_iterations = 500
int gmres_restart = 30
std::function< NumericVector(const NumericVector &)> preconditioner_hook
std::string symbolic_linear_solver
casadi::Dict symbolic_options

Detailed Description

Configuration for linear system solve backend and algorithm.

See also
solve

Member Function Documentation

◆ dense()

LinearSolvePolicy janus::LinearSolvePolicy::dense ( DenseLinearSolver solver = DenseLinearSolver::ColPivHouseholderQR)
inlinestatic

◆ iterative()

LinearSolvePolicy janus::LinearSolvePolicy::iterative ( IterativeKrylovSolver solver = IterativeKrylovSolver::BiCGSTAB,
IterativePreconditioner preconditioner = IterativePreconditioner::Diagonal )
inlinestatic

◆ set_gmres_restart()

LinearSolvePolicy & janus::LinearSolvePolicy::set_gmres_restart ( int value)
inline

◆ set_max_iterations()

LinearSolvePolicy & janus::LinearSolvePolicy::set_max_iterations ( int value)
inline

◆ set_preconditioner_hook()

LinearSolvePolicy & janus::LinearSolvePolicy::set_preconditioner_hook ( std::function< NumericVector(const NumericVector &)> hook)
inline

◆ set_symbolic_solver()

LinearSolvePolicy & janus::LinearSolvePolicy::set_symbolic_solver ( const std::string & solver,
const casadi::Dict & opts = casadi::Dict() )
inline

◆ set_tolerance()

LinearSolvePolicy & janus::LinearSolvePolicy::set_tolerance ( double value)
inline

◆ sparse_direct()

LinearSolvePolicy janus::LinearSolvePolicy::sparse_direct ( SparseDirectLinearSolver solver = SparseDirectLinearSolver::SparseLU)
inlinestatic

Member Data Documentation

◆ backend

LinearSolveBackend janus::LinearSolvePolicy::backend = LinearSolveBackend::Dense

◆ dense_solver

DenseLinearSolver janus::LinearSolvePolicy::dense_solver = DenseLinearSolver::ColPivHouseholderQR

◆ gmres_restart

int janus::LinearSolvePolicy::gmres_restart = 30

◆ iterative_preconditioner

IterativePreconditioner janus::LinearSolvePolicy::iterative_preconditioner = IterativePreconditioner::Diagonal

◆ iterative_solver

IterativeKrylovSolver janus::LinearSolvePolicy::iterative_solver = IterativeKrylovSolver::BiCGSTAB

◆ max_iterations

int janus::LinearSolvePolicy::max_iterations = 500

◆ preconditioner_hook

std::function<NumericVector(const NumericVector &)> janus::LinearSolvePolicy::preconditioner_hook

◆ sparse_direct_solver

SparseDirectLinearSolver janus::LinearSolvePolicy::sparse_direct_solver = SparseDirectLinearSolver::SparseLU

◆ symbolic_linear_solver

std::string janus::LinearSolvePolicy::symbolic_linear_solver

◆ symbolic_options

casadi::Dict janus::LinearSolvePolicy::symbolic_options

◆ tolerance

double janus::LinearSolvePolicy::tolerance = 1e-10

The documentation for this struct was generated from the following file: