The null space (6 for 3D elasticity) and the block size (3 for 3D) is all you 
need for ML (and GAMG).

Mark

On Apr 3, 2012, at 4:02 AM, Karin&NiKo wrote:

> Dear all,
> 
> I am not sure if the definition of the near null space of the operator 
> suffice in order to get an optimal preconditioner for linear elasticity. 
> Considering ML, one must also set the "num_PDEs" attribute, mustn't he? But 
> it seems to me that this attribute cannot be set in the PETSc interface.
> Am I wrong?
> 
> Regards,
> Nicolas
> 
> 2012/4/3 Jed Brown <jedbrown at mcs.anl.gov>
> Well, the KSP can diagonally scale it and we should fix up the near null 
> space. The PC should not need to find out about diagonal scaling. (My 
> opinion.)
> 
> On Apr 2, 2012 4:50 PM, "Mark F. Adams" <mark.adams at columbia.edu> wrote:
> Oh, OK, so you do not explicitly scale the matrix good.  We had a user (John) 
> recently that was using diagonal scaling and was getting failure with GAMG 
> and then GAMG worked and he was no longer using diagonal scaling so I was 
> thinking this was the problem.
> 
> Mark
> 
> On Apr 2, 2012, at 7:40 PM, Barry Smith wrote:
> 
> >
> >  Mark,
> >
> >   Who would be doing the "diagonal scaling". Under normal conditions we 
> > never want to be passing to any preconditioner a diagonally scaled matrix 
> > (for exactly the issue you point out) so why are you worried about that 
> > case?
> >
> >   Barry
> >
> > On Apr 2, 2012, at 6:40 PM, Mark F. Adams wrote:
> >
> >>
> >> On Apr 2, 2012, at 7:24 PM, Jed Brown wrote:
> >>
> >>> On Mon, Apr 2, 2012 at 07:44, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> >>> The block size is used if you don't provide any other information. The 
> >>> preferred approach with petsc-dev is to use MatSetNearNullSpace(). (I'll 
> >>> make sure this is currently working with ML and reply to this message.)
> >>>
> >>> I pushed ML support for user-provided null spaces to petsc-dev. Call 
> >>> MatSetNearNullSpace() to provide the information. You can use 
> >>> MatNullSpaceCreateRigidBody() if you have nodal coordinates.
> >>>
> >>>
> >>> Mark, what is the best way to make PCGAMG use this interface?
> >>
> >> It looks like you are adding this to the Mat, so I can check to see if 
> >> coordinates have been set and if not check the matrix.  This should be 
> >> easy to do; I'll look at the ML code to clone the API.
> >>
> >> One thing to keep in mind is that diagonal scaling breaks the null space 
> >> (ie, the rigid body modes have to be scaled appropriately).  Who owns the 
> >> diagonal scaling? If it is Mat then we might want MatSetNearNullSpace to 
> >> do this, otherwise we should think of a good way to deal with this.  It is 
> >> very error prone to not do the right thing here, we should at least throw 
> >> an error.
> >>
> >>
> >
> >
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120403/24881e71/attachment.htm>

Reply via email to