-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linear solver interfaces #339
Comments
The implementation of BiCGSTAB would be great to have in this crate. On generalisation into traits I would hold on a bit until we know what to expect on differences between the solvers. Maybe each solver should return residuals or other temporaries? Is the input similar between solvers and how does preconditioners fit in? It would be great to see what functionality is common between the solvers before settling on some traits. |
Sounds good - I'll button that implementation up with my best guess at what an iterative solver interface might look like, but without encoding that interface in a trait just yet. |
I have a rough working prototype of serial, sparse-sparse BiCGSTAB here and it's got me thinking about how to structure interfaces to solvers.
It seems like there are a few specific actions that users need regularly that might be supported in different ways by different kinds of solvers -
A
matrix for FEM with deformationA
or rhs into a partially-converged iterative solver to capture a nonlinear updateTo that end, I'm thinking each solver should be associated with both
All pretty vanilla so far.
Now, there's a pretty different pattern of usage between direct and iterative solvers, and I can't think of a way to stuff them into the same trait. So with that, we'd have two traits, say, DirectSolver and IterativeSolver, guiding the implementation of the solver structs, and possibly another two guiding the implementation of the convenience functions.
This leaves us with
@mulimoen - I'm curious what your thoughts are on
The text was updated successfully, but these errors were encountered: