[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