[petsc-users] Assembling a finite element matrix in parallel

Justin Dong jsd1 at rice.edu
Sun Apr 27 04:14:20 CDT 2014

Hi all,

I'm currently coding a finite element problem in PETSc. I'm computing all
of the matrices by myself and would prefer to do it that way. I want to
parallelize the assembly of the global matrices. This is a simplified
version of the assembly routine (pseudocode):

for (k = 0; k < nelements; ++k)
    get_index(k,ie,je); /* ie and je are arrays that indicate where to
place A_local */

    MatSetValues(A_global, nlocal, ie, nlocal, je, A_local, ADD_VALUES);

This is for DG finite elements and I know the matrix easily be assembled in
parallel. Even on my laptop, this would allow me to significantly speed up
my code. The only problem is, I'm not sure how to do this in PETSc. I'd
assume I need to use MatCreateMPIAIJ instead of MatCreateSeqAIJ, but wasn't
able to find any using tutorials on how I might do this.

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

More information about the petsc-users mailing list