[petsc-users] PC HYPRE BoomerAMG options for nodal

Bernardo Rocha bernardomartinsrocha at gmail.com
Tue Feb 14 19:17:55 CST 2017


Thanks a lot for the reply.

​From my understanding and specifically for my problem I would have to use
the AMGSetDofFunc as follows:​

​nsyseq = 3;​
for (i=0; i<nsyseq; i++)
​    ​
for (k=0; k<
​N
​
; k++)
​ // N: number of nodes​
    {

​    ​
eqnIndex[i*
​N
​
+k] = i;
    }
HYPRE_BoomerAMGSetDofFunc(preconditioner, eqnIndex);​

For a system of 3 PDEs (e.g. linear elasticity in 3D​) the default
behaviour of the nodal coarsening in BoomerAMG, considers an array that is
filled with

eqnIndex = ​0 1 2 0 1 2 0 1 2....0 1 2

 > HYPRE_BoomerAMGSetDofFunc

>
>    I could not find an indication of that this is suppose to be setting;
> it is mentioned in the users manual but I don't know what it means. It
> looks like it takes an integer array but I don't even know how long that
> array is.
>
>    If you figure out what it means and can add support for it we'll take
> it as a pull request.


​​OK Barry, I will try to specify the block size of the matrix.
But I'm not sure if the block size would be 3 or N (number of nodes).
This is my ordering of the displacements: [ux1, ux2, ..., uxN, uy1,
uy2,...uyN, uz1, uz2, ..., uzN]


> > HYPRE_BoomerAMGSetNumFunctions
>
>    Set the block size of the matrix; this information is then transferred
> automatically to hypre.  Note that you can set a block size even for AIJ
> matrices.
>
​
​Best regards,
Bernardo​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170214/1fd27134/attachment.html>


More information about the petsc-users mailing list