419#if MOCHI_LANGUAGE_CPP20
VerbosityLevel
Verbosity levels for solvers and optimizers.
@ Warning
Errors and warnings.
PreconditionerType
Preconditioner types for the linear solver.
@ ILU0
Incomplete LU factorization with zero fill-in.
@ ColoredSSOR
[Experimental] Colored symmetric successive over-relaxation (SSOR) preconditioner.
@ Jacobi
Jacobi preconditioner.
@ AMG
Algebraic multigrid (AMG).
@ SSOR
Symmetric successive over-relaxation (SSOR) preconditioner.
@ Default
Default preconditioner type.
@ IC0
Incomplete Cholesky factorization with zero fill-in.
@ SymInverse
Symmetric inverse preconditioner based on the dense LDLt factorization without pivoting.
@ PerActor
Domain decomposition preconditioner, where each actor is a subdomain.
@ BlockJacobi
Block Jacobi preconditioner with block size of 3.
@ BlockSSOR
Block symmetric successive over-relaxation (SSOR) preconditioner with block size of 3.
LinearSolverConvergenceNorm
Norm types for the stopping criteria of the linear solver.
@ ResidualPreconditionerInduced
Preconditioner-induced norm of the residual: where .
@ PreconditionedResidualL2
L2-norm of the preconditioned residual: where .
@ Default
Default linear solver convergence norm.
@ ResidualL2
L2-norm of the residual: .
LinearSolverType
Linear solver types.
@ CudaGMRES
CUDA GMRES solver.
@ ExperimentalCudaSparseCholesky
[Experimental] CUDA sparse Cholesky factorization.
@ CG
Conjugate Gradient (CG) solver.
@ AugmentedCG
[Experimental] Augmented CG solver with Krylov subspace recycling.
@ Default
Default solver type.
@ LU
Direct solver based on the dense LU factorization without pivoting.
@ AsyncCG
[Experimental] Asynchronous CG solver.
@ LDLT
Direct solver based on the LDLt factorization without pivoting.
@ GMRES
Generalized Minimal Residual (GMRES) solver.
@ ExperimentalCudaSparseLDLT
[Experimental] CUDA sparse LDLt factorization.
@ MINRES
Minimal Residual (MINRES) solver.
@ ExperimentalCudaSparseLU
[Experimental] CUDA sparse LU factorization.
@ ParallelCG
[Experimental] Parallel CG solver.
constexpr int kAutoLinearSolverMaxIter
Sentinel value for LinearSolverParams::maxIter that lets Mochi automatically select the maximum numbe...
@ Auto
Automatic collider type selection based on the actor's shape.
@ None
Invalid actor type.
@ Count
Number of actor type enum values.
#define MOCHI_ENUM_COUNT(name)
#define MOCHI_STRUCT_END()
#define MOCHI_ENUM_BEGIN(name)
#define MOCHI_FIELD(name)
#define MOCHI_STRUCT_BEGIN(name)
#define MOCHI_ENUM_ITEM(name)
Parameters for the linear solve performed in each iteration of the non-linear solver.
real absTol
Absolute residual norm tolerance for convergence.
LinearSolverType solverType
Linear solver type.
VerbosityLevel verbosity
Verbosity level for logging output.
LinearSolverConvergenceNorm normType
Norm used for the stopping criteria.
bool abortIfNotSpd
Abort solve if matrix is not SPD.
PreconditionerType preconditionerType
Preconditioner type.
real relTol
Relative residual norm tolerance for convergence, relative to the initial residual.
real relDivTol
Relative residual norm tolerance for divergence, relative to the initial residual.
int maxIter
Maximum number of linear solver iterations.
int restartSize
Krylov subspace dimension before restarting.
bool operator==(LinearSolverParams const &) const =default