On 2023/10/4 02:47, Matthew Knepley wrote:
On Tue, Oct 3, 2023 at 1:51 PM Gong Ding <[email protected]> wrote:
Hi all,
I'd like to do a special jacobian precondition during the snes
iteration, for which jacobian matrix and RHS vector must be
modified explicitly.
In the SNESComputeJacobian, the preconditioner P is built after
assembly of jacobian matrix.
I need to multiply P to J and RHS vector explicitly as left
precondition before the solve stage of J*dx = rhs.
What you are proposing is exactly what PETSc does with left
preconditioning, multiplies both sides by the preconditioner. What do
you want to change?
I'd like to multiply precondition matrix into jacobian matrix, and do LU
factorization to jacobian matrix. not with iterative method. Something like
Kelley, C. T. "Newton's Method in Three Precisions." /arXiv preprint
arXiv:2307.16051/ (2023).
BTW: does petsc have the plan to support multi-precision?
Thanks,
Matt
However, I find that petsc evaluates function before jacobian, so P*RHS
vector can not be processed at SNESComputeFunction.
As a result, I must find a hook function after SNESComputeJacobian and
before the solve stage.
Any suggest?
Gong Ding
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/
<http://www.cse.buffalo.edu/~knepley/>