Thank you for your answer! Please see below for comments/questions. On 05.04.18 12:53, Matthew Knepley wrote: > On Thu, Apr 5, 2018 at 6:39 AM, Robert Speck <r.sp...@fz-juelich.de > <mailto:r.sp...@fz-juelich.de>> wrote: > > Hi! > > I would like to use petsc4py for my own Python library. Installation > went well, first tests (serial and parallel) look good. > > Here is what I want to do: I have my own time-stepping playground and I > want petsc4py to be one of my backbones for the data types and (linear > or non-linear, serial or parallel) solvers. I don't want to use PETSc's > time-steppers, at least not for now. So, I saw in some examples, in > particular the ones shipped with petsc4py, that the standard way of > running one of PETSc's solvers is a bunch of setup routines, then > setting the right-hand side and solve. > > Now, I don't want to rerun the whole setup part each time I call the > solver. I know that I can change the right-hand side without having to > do so, but what if I change a parameter of my operator like, say, the > time-step size or some material parameter? > > Take the simplest case: Say I have my own implicit Euler written in > Python. I know the right-hand side F of my ODE, so in each step I want > to solve "I - dt*F". But the time-step changes every now and then, so I > cannot pre-assemble everything once and for all (or I don't want to). > What do I need to rerun before I can use the solver again, what can I > reuse? Could I just assemble F and combine it with the identity and the > parameter dt right before I call the solver? How would that look like? > > I'm pretty new to PETSc and to petsc4py, so please forgive any stupidity > or ignorance in these questions. I'm happy to take any advice, links to > examples or previous questions. Thanks! > > > For linear solves which stay the same size, you just have to call > SetOperators > again with the new operator.
OK, this sounds straightforward. Thanks! > > For nonlinear solves which stay the same size, you do nothing. "nothing" in terms of "nothing you can do" or "nothing you have to do"? > > If the system size changes, it generally better to create the object. What does this mean? Thanks again! -Robert- ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------