Parallel computing in SNES
Hello PETSc, I want to substitute the existing nonlinear solver codes with SNES. The existing code is Parallel computing. My FormFunction and FormJacobian is attached in file Res_Jac.cpp. The global tangent matrix assembly and residual function assembly are both implemented by invoking user pointers. The following is the message, we can find that SNES just iterate once. I think the problem is input solution Vec y doesn't link to Residual Vec f, because my update is stored in the user variables. If I use const PetscScalar *yy; VecGetArrayRead(y, &yy); the value of yy is not identical to Vec y, because there are multi thread. So, my problem is how to assembly residual and tangent in parallel environment? David Jiawei LUO LIANG 南方科技大学/学生/研究生/2024 广东省深圳市南山区学苑大道1088号
On Tue, Dec 10, 2024 at 4:32 AM David Jiawei LUO LIANG < [email protected]> wrote:
Hello PETSc,
I want to substitute the existing nonlinear solver codes with SNES.
The existing code is Parallel computing.
My FormFunction and FormJacobian is attached in file Res_Jac.cpp.
The global tangent matrix assembly and residual function assembly are both implemented by invoking user pointers.
The following is the message, we can find that SNES just iterate once.
I think the problem is input solution Vec y doesn't link to Residual Vec f, because my update is stored in the user variables. If I use const PetscScalar *yy; VecGetArrayRead(y, &yy); the value of yy is not identical to Vec y, because there are multi thread.
So, my problem is how to assembly residual and tangent in parallel environment?
I am having trouble understanding your question. 1) Can you run with -snes_monitor -snes_converged_reason -ksp_monitor_true_residual -ksp_converged_reason -snes_view and send the output? 2) You have the line VecCopy(user->gassem_ptr->G, f); which looks like it puts the values of your G into f, so I am not sure what the problem is. THanks, Matt
David Jiawei LUO LIANG
南方科技大学/学生/研究生/2024
广东省深圳市南山区学苑大道1088号
-- 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCf... <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfs... >
participants (2)
-
David Jiawei LUO LIANG -
Matthew Knepley