[petsc-users] petsc4py: reuse setup for multiple solver calls?
Robert Speck
r.speck at fz-juelich.de
Fri Apr 6 00:48:33 CDT 2018
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.speck at fz-juelich.de
> <mailto:r.speck at 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
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
More information about the petsc-users
mailing list