Nonlinear solver generalizations - #4537
Conversation
Importantly this both sets the wrapper as initialized and instructs the wrapper not to destroy the PETSc matrix on exit Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…package Co-Authored-By: Claude <noreply@anthropic.com>
|
Still waiting on that MOOSE master merge to get those solid mechanics test fixes! |
|
|
||
| explicit PetscMFFDMatrix(const Parallel::Communicator & comm_in); | ||
|
|
||
| PetscMFFDMatrix & operator=(Mat m); |
There was a problem hiding this comment.
Let's keep this around for backwards compatibility? Pretty specialized so you can deprecate it if you want, but it's been around for two years and was never marked libmesh_experimental().
| void | ||
| PetscMatrixShellMatrix<T>::zero() | ||
| { | ||
| libmesh_error(); |
There was a problem hiding this comment.
Could we libmesh_error_msg("Called a method that is unimplemented for arbitrary shell matrices") or something, here and elsewhere in the new overloads?
|
|
||
| /** | ||
| * An optional matrix to use as the actual Jacobian operator (Amat), distinct from \p matrix | ||
| * (used as the preconditioning matrix, Pmat). See set_operator_matrix(). |
There was a problem hiding this comment.
This seems like the opposite of what I would have expected. implicit_system.h refers to its matrix as the "system matrix" in solves of "Ax=b" at one point, and as the Jacobian matrix at another. Shouldn't that stay "A", and "P" be the new matrix?
I want to use MATSHELL for the Jacobian and possibly MATAIJ for the preconditioning matrix so need to develop some additional support for that use case