Closed mattldawson closed 2 months ago
We already have singularity checks. They are present in the LU Decomposition, so I don't think we need to change the Factor function. But we do have to change the LinearFactor
function in rosenbrock to actually use the singularity check that we already have
There is a flag in
RosenbrockSolverParameters
to allow checking for singularity, but it currently doesn't do anything. Check for singularity when this flag is enabled.Acceptance Criteria
RosenbrockSolverParameters::check_singularity_
flag istrue
Ideas
LinearSolver::SafeFactor()
function that checks for singularity during the factoring, and can be called here: https://github.com/NCAR/micm/blob/e076450a72532f1c780b47fc4e16a44dd8ba5e2b/include/micm/solver/rosenbrock.inl#L262-L263JitLinearSolver
andCudaLinearSolver
could probably overrideSafeFactor
and just throw a "not yet implemented" error until we decide this would be useful to implement with JIT and/or on the GPUs