<div>Hello PETSc,</div><div><br></div><div>I want to substitute the existing nonlinear solver codes with SNES. </div><div><br></div><div>The existing code is Parallel computing.</div><div><br></div><div>My FormFunction and FormJacobian is attached in file Res_Jac.cpp. </div><div><br></div><div>The global tangent matrix assembly and residual function assembly are both implemented by invoking user pointers. </div><div><br></div><div>The following is the message, we can find that SNES just iterate once. </div><div><br></div><div><font><img src="cid:C30690D0@0F60110C.7F0A586700000000.jpg"></font></div><div><font><br></font></div><div><font>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.</font></div><div>If I use </div><div><sign signid="99"><div><font>const PetscScalar *yy;</font></div><div><font>VecGetArrayRead(y, &yy); </font></div><div>the value of yy is not identical to Vec y, because there are multi thread.</div><div><br></div><div>So, my problem is how to assembly residual and tangent in parallel environment?</div><div><font><br></font><font><br></font><font><br></font><font><br></font><div style="color:#909090;font-family:Arial Narrow;font-size:12px"></div></div><div style="font-size:14px;font-family:Verdana;color:#000;" class="signRealArea"><div><div class="logo" style="width:305px;height:35px;line-height:35px;margin:20px 0 0 0;"><img src="https://exmail.qq.com/cgi-bin/viewfile?type=logo&domain=mail.sustech.edu.cn" onerror=""></div><div class="c_detail" style="margin:10px 0 0 0;"><h4 class="name" style="margin:0;font-size:14px;font-weight:bold;line-height:28px;zoom:1;">David Jiawei LUO LIANG</h4><p class="position" style="margin:0;line-height:22px;color:#a0a0a0;"></p><p class="department" style="margin:0;line-height:22px;color:#a0a0a0;">南方科技大学/学生/研究生/2024</p><p class="phone" style="margin:0;line-height:22px;color:#a0a0a0;"></p><p class="addr" style="margin:0;line-height:22px;color:#a0a0a0;">广东省深圳市南山区学苑大道1088号</p></div></div></div></sign></div><div> </div><div><tincludetail><!--<![endif]--></tincludetail></div><!--<![endif]-->