<div dir="ltr">Hi all,<div><br></div><div>Good day!</div><div><br></div><div>I am trying to solve an optimization problem where I need to solve multiple successive linear systems inside each optimization loop. The matrices are based on the same grid, but their data structure will change for each linear system.</div><div><br></div><div>Currently I am doing it by setting up just one single KSP object. Then call KSPSetOperators() and KSPSolve() for each solve. This means the KSP object is solving the successive linear systems one by one, and in the next optimization iteration, it starts all over again. </div><div><br></div><div>I am wondering that should I use separate KSP objects for each linear system so that during optimization the same KSP will be specialized in solving its corresponding system all the time? </div><div><br></div><div>I use non-zero initial guess, so I pay attention to use different x vectors for different linear systems, so that the x vectors from the previous iteration can be used as initial guesses for linear systems in the next iteration. Not sure whether some similar thing should also be done for KSP?</div><div><br></div><div>Thanks for your kind help!</div><div><br></div><div>Best regards,</div><div>Kai</div><div><br></div></div>