[petsc-users] Index set with zero size

Tim Kroeger tim.kroeger at cevis.uni-bremen.de
Tue Nov 9 08:43:57 CST 2010


On Tue, 9 Nov 2010, Jed Brown wrote:

> On Tue, Nov 9, 2010 at 14:41, Tim Kroeger <tim.kroeger at cevis.uni-bremen.de> wrote:
>       I had a look into src/mat/impls/submat/submat.c (of petsc-3.1-p4) and found that MatMultAdd_SubMatrix()
>       internally calls MatMult() (line 155), not MatMultAdd().  Later in that method, some VecAYPX() is called
>       (line 159), which might do the required addition.  Can you please confirm whether
> 
> 
> Ah, I missed that you called MatGetSubMatrix on a MatShell in which you hadn't implemented MatGetSubMatrix,
> therefore you had a MatSubMatrix.

Sorry for not pointing this our more clearly.

> Looking at MatMultAdd_SubMatrix, I see that the code is wrong if v2==v3.  We don't have "weighted scatters", so I
> think it needs to get another work vector for a correct answer with "left scaling" and v2==v3.  I'll fix this in 3.1
> and -dev, but I might not get to it today.

Okay, I implemented a workaround on user side (using a temporary 
vector and MatMult()).  This seems to resolve the problem now.  I'll 
leave it like this in the libMesh part, so that libMesh remains 
compatible with PETSc-3.1-p4.  Nevertheless, if you fix this within a 
few days and launch PETSc-3.1-p5 with this fix (or just send me a 
patch), let me know, I can then test it.

Best Regards,

Tim

-- 
Dr. Tim Kroeger
CeVis -- Center of Complex Systems and Visualization
University of Bremen              tim.kroeger at cevis.uni-bremen.de
Universitaetsallee 29             tim.kroeger at mevis.fraunhofer.de
D-28359 Bremen                             Phone +49-421-218-7710
Germany                                    Fax   +49-421-218-4236


More information about the petsc-users mailing list