[petsc-users] ML and linear elasticity

Mark F. Adams mark.adams at columbia.edu
Mon Apr 2 11:01:38 CDT 2012


On Apr 2, 2012, at 11:37 AM, Karin&NiKo wrote:

> Dear Jed and Mark.
> 
> Thank you for your quick answers.
> 1. I am stuck to petsc-3.2 since I am using PETSc in a production software. For the next release, I'll give GAMG a try (I have been a satisfied user of Prometheus).

3.2 should work ... 

> 2. It seems to me that ML does not support block matrices, doesn't it?

The ML interface does get the block size of the matrix.  So it does the right thing.

Mark

> 3. I would like to give ML the information about the vector nature of my problem in order that all 3 dofs of a given node be treated in the same manner (in the coarsening phase for instance).
> 
> Nicolas
> 
> 2012/4/2 Mark F. Adams <mark.adams at columbia.edu>
> FYI, you can try GAMG also.  It uses the same algorithm as ML:
> 
> Here are parameters:
> 
> -pc_type gamg 
> -pc_gamg_type agg 
> -pc_gamg_agg_nsmooths 1     ! this is good for elliptic problems
> -pc_gamg_verbose 2                ! this will help me to give a quick sanity check
> -pc_gamg_threshold .05           ! for 3D problems this parameter can be useful for optimization
> -pc_gamg_coarse_eq_limit 50  ! a detail but you can keep in your input deck
> 
> The vector Lapacian has 6 null space vectors (3 translational, 3 rotational).  GAMG will construct these with the a setCoordinates method (see the ksp tutorial example ex56.c).   If you prefer to give me the null space vectors explicitly there is the MatSetNearNullSpace() method that Jed mentioned.  GAMG has not implemented this but I should at some point so if you want to use it I can implement it.
> 
> If you do not give it coordinates it will construct the 3 translational null space vectors (don't need anything to compute these) and it can be OK.  At least a good place to start.
> 
> Mark
> 
> On Apr 2, 2012, at 10:44 AM, Jed Brown wrote:
> 
>> On Mon, Apr 2, 2012 at 06:59, Karin&NiKo <niko.karin at gmail.com> wrote:
>> I would like to use ML as a preconditioner for a linear elasticity problem.
>> I wonder if there is a way to indicate ML that it is dealing with a vector problem. 
>> I know that when using Prometheus, one must use a block matrix, and I would like to know if there is a trick 
>> in order to use ML in an optimal manner for vector problems.
>> 
>> 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.)
> 
> 

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


More information about the petsc-users mailing list