Thank you very much for your reply. I think my statement may not be very clear. I want to know why the linear residual increases at gmres restart. I think I should have no problem with the residual evaluation function, because after setting a large gmres restart, the results are also in line with expectations. Thanks, Yingjie
Matthew Knepley <knep...@gmail.com> 于2019年3月20日周三 下午8:00写道: > On Wed, Mar 20, 2019 at 6:53 AM Yingjie Wu via petsc-users < > petsc-users@mcs.anl.gov> wrote: > >> Dear PETSc developers: >> Hi, >> Recently, I used PETSc to solve a non-linear PDEs for thermodynamic >> problems. In the process of solving, I found the following two phenomena, >> hoping to get some help and suggestions. >> >> 1. Because my problem involves a lot of physical parameters, it needs to >> call a series of functions, and can not analytically construct Jacobian >> matrix, so I use - snes_mf_operator to solve it, and give an approximate >> Jacobian matrix as a preconditioner. Because of the large dimension of the >> problem and the magnitude difference of the physical variables involved, it >> is found that the linear step residuals will increase at each restart >> (default 30th linear step) . This problem can be solved by setting a large >> number of restart steps. I would like to ask the reasons for this >> phenomenon? What knowledge or articles should I learn if I want to find out >> this problem? >> > > Make sure you non-dimensionalize the problem first, so that any scale > differences are real and not the result of units. > > >> 2. In my problem model, there are many physical fields (variables are >> realized by finite difference method), and the magnitude of variables >> varies greatly. Is there any Scaling interface or function in Petsc? >> > > That is what Jacobi does. > > Thanks, > > Matt > > >> Thanks, >> Yingjie >> > > > -- > 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/> >