[petsc-users] Reordering of entries in a DMDA

Fabian Jakub Fabian.Jakub at physik.uni-muenchen.de
Wed Apr 21 14:06:59 CDT 2021

Dear Petsc team,

I would like to play with the ordering of a DMDA application.

To be exact, I would like to change the order in which a forward
SOR/Gauss Seidel preconditioner iterates over the domain.

e.g. change from [x,y,z,dof] to [z, yend->ystart, xend->xstart, dof]

As I see it, I could

 a) reorder the application, i.e. how data is stored in the DMDA

 b) apply a mat reordering (happy to have the reordering only happening

 c) or implement a custom PC (or using a PCShell?)

I don't like a) because it would be very laborious and intrusive and I
don't even know if it is worth it.

Implementing a custom PC might give the most freedom but reduces solver
configurability that I like.

And how bad would a SOR be if it were to jump around in memory compared
to the performance and memory needs of a mat reordering?

I wanted to ask if you have any other suggestions and which approach you
would recommend.

Many thanks,


More information about the petsc-users mailing list