[petsc-users] Local sizes when creating PETSC MatIS

Stefano Zampini stefano.zampini at gmail.com
Fri Jun 14 07:24:20 CDT 2019


Jose,

The local size of the matrix (the one you use in MatSetSizes) tells Petsc what is the size of the local portion of the vectors involved in matrix vector products.
It has nothing to do with the size of the local Neumann problem needed by MatIS. These are inferred from the local to global mapping of the degrees of freedom
In your case, the  l2g object needs to map all the dofs that corresponds to the local mesh to their global dof numbering (you can take a look here https://epubs.siam.org/doi/abs/10.1137/15M1025785 <https://epubs.siam.org/doi/abs/10.1137/15M1025785>)

MatCreate(comm,&A)
MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,N,N)
MatSetType(A,MATIS)
MatSetLocalToGlobalMapping(A,l2g,l2g)// this creates the local Neumann matrices

For n = 1: number_of_local_elements
  Construct element matrix
  // you have two alternitives
  MatSetValuesLocal(A, // using local ordering of dofs
  //or MatSetValues(A, // using global ordering of dofs
end

> On Jun 14, 2019, at 5:09 AM, José Lorenzo via petsc-users <petsc-users at mcs.anl.gov> wrote:
> 
> I am working with Nedelec Finite Elements and using ghost vectors to store the ghost values of the solution in the edges that do not belong to current processor.
> 
> Since I have a large contrast in material properties I would like to try the PCBDDC preconditioner in PETSC. Apparently, my matrix needs to be of type MatIS, but I don't get to understand how MatCreateIS would work in my particular case, although I did have a look at mat/ex3.c and ksp/ex59.c
> 
> I set the local size m to the number of edges in current processor, but I do not know whether I should include the number of ghost edges. And for the local size n should I use the total number of DOFs or proceed as with m? 
> 
> 
> 
> Thanks,
> 
> Jose
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190614/8c491af5/attachment.html>


More information about the petsc-users mailing list