[petsc-users] DM misuse causes massive memory leak?

Jeremy Theler jeremy at seamplex.com
Thu Dec 30 07:05:50 CST 2021

Hola Jesús

You were lucky you got 20x. See



"For large problems you MUST preallocate memory or you will get
TERRIBLE performance, see the users' manual chapter on matrices. "


On Wed, 2021-12-29 at 22:12 +0000, Ferrand, Jesus A. wrote:
> Dear PETSc Team:
> I have a question about DM andPetscSection. Say I import a mesh (for
> FEM purposes) and create aDMPlex for it. I then usePetscSections to
> set degrees of freedom per "point" (by point I mean vertices, lines,
> faces, and cells). I then usePetscSectionGetStorageSize() to get the
> size of the global stiffness matrix (K) needed for my FEM problem.
> One last detail, this K I populate inside a rather large loop using
> an element stiffness matrix function of my own. Instead of
> usingDMCreateMatrix(), I manually created aMat using MatCreate(),
> MatSetType(),MatSetSizes(), and MatSetUp(). I come to find that said
> loop is painfully slow when I use the manually created matrix, but
> 20x faster when I use the Mat coming out ofDMCreateMatrix().
> My question is then: Is the manual Mat a noob mistake and is it
> somehow creating a memory leak with K? Just in case it's something
> else I'm attaching the code. The loop that populates K is between
> lines 221 and 278. Anything related to DM, DMPlex, and PetscSection
> is between lines 117 and 180.
> Machine Type: HP Laptop
> C-compiler: Gnu C
> OS: Ubuntu 20.04
> PETSc version: 3.16.0
> MPI Implementation: MPICH
> Hope you all had a Merry Christmas and that you will have a happy and
> productive New Year. :D
> Sincerely:
> J.A. Ferrand
> Embry-Riddle Aeronautical University - Daytona Beach FL
> M.Sc. Aerospace Engineering | May 2022
> B.Sc. Aerospace Engineering
> B.Sc. Computational Mathematics
> Sigma Gamma Tau 
> Tau Beta Pi
> Honors Program
> Phone: (386)-843-1829
> Email(s): ferranj2 at my.erau.edu
>    jesus.ferrand at gmail.com

More information about the petsc-users mailing list