[petsc-users] DMPLEX project function error
Matthew Knepley
knepley at gmail.com
Fri Oct 12 10:31:18 CDT 2018
On Fri, Oct 12, 2018 at 11:12 AM Ellen M. Price <ellen.price at cfa.harvard.edu>
wrote:
> So I found *that* problem -- turns out that using DMPlexCreateSection
> was messing things up, and it seems PETSc is handling that part
> internally?
DMPlexSection creates the Section based on the discretization information
in the DM (stored in a PetscDS).
If no discretization info is available, then it defaults to P0 I think,
which is what you got.
After discretization info is put into the DM, if I ask for the Section, the
DM will create it automatically if it is missing.
> However, I've run into a related problem now. I need to
> project some field data onto the mesh; it's a static array of
> integration weights, and each one corresponds to a single point in the
> mesh. Based on this answer:
>
> https://lists.mcs.anl.gov/pipermail/petsc-users/2015-December/027964.html
>
> I think I need DMPlexDistributeField.
I don't think that is what you want. That is just sending data around.
You want to define an FEM field. We use DMProject*() for this. These take
as input either
a function of the coordinates (regular function) or another FEM field.
Can you tell me how your function is defined? I mean apart from the
particular data you
have at points.
Thanks,
Matt
> However, *that* function takes a
> section as an argument, and I had to take out the part where I create a
> section to get things working! Calling DMGetDefaultSection or
> DMGetDefaultGlobalSection doesn't seem to help matters, either, because
> then I seem to get a null section?
>
> So I either need to figure out how to set the section properly or how to
> get the section properly. As always, any help is appreciated.
>
> Ellen
>
>
> On 10/11/2018 05:41 PM, Matthew Knepley wrote:
> > On Thu, Oct 11, 2018 at 4:39 PM Ellen M. Price
> > <ellen.price at cfa.harvard.edu <mailto:ellen.price at cfa.harvard.edu>>
> wrote:
> >
> > I was working with a DMPLEX and FEM, following SNES example 12. I get
> > the following error when I call DMProjectFunction, but I don't know
> what
> > it means. Can anyone explain where I might have gone wrong, or at
> least
> > what this error is telling me? I think the point closure size is
> > correct, since my mesh is 3d simplex,
> >
> >
> > Yes, if you have 3D SIMPLEX mesh and are using P1 elements, then you
> > would have
> > 4 dofs in the closure of a cell. The dual space dimension is the number
> > of dual space
> > basis vectors assigned to points in the closure. Since it is 1, it looks
> > like you have a P0
> > dual space. I assume you changed something in ex12?
> >
> > Thanks,
> >
> > Matt
> >
> >
> > but what is the dual space
> > dimension, and where might I have set it incorrectly?
> >
> > [0]PETSC ERROR: Nonconforming object sizes
> > [0]PETSC ERROR: The section point closure size 4 != dual space
> > dimension 1
> > [0]PETSC ERROR: See
> http://www.mcs.anl.gov/petsc/documentation/faq.html
> > for trouble shooting.
> > [0]PETSC ERROR: Petsc Release Version 3.9.2, May, 20, 2018
> > ...
> > [0]PETSC ERROR: Configure options
> > --prefix=/home/eprice/software/petsc-opt --with-hdf5=1
> > --with-hdf5-dir=/home/eprice/software/hdf5-parallel --with-mpe=1
> > --with-mpe-dir=/home/eprice/software/mpe --with-debugging=0
> > LDFLAGS="-pthread -lz" COPTFLAGS="-O3 -march=native -mtune=native"
> > CXXOPTFLAGS="-O3 -march=native -mtune=native" FOPTFLAGS="-O3
> > -march=native -mtune=native" --with-mpi=1
> > --with-mpi-dir=/home/eprice/software/mpich --with-mumps=1
> > --with-mumps-dir=/home/eprice/software/mumps --with-parmetis=1
> > --with-parmetis-dir=/home/eprice/software/parmetis --with-metis=1
> > --with-metis-dir=/home/eprice/software/parmetis --with-ptscotch=1
> > --with-ptscotch-dir=/home/eprice/software/scotch --with-scalapack=1
> > --with-scalapack-dir=/home/eprice/software/scalapack
> > [0]PETSC ERROR: #1 DMProjectLocal_Generic_Plex() line 347 in
> > /h/sabriel0/src/petsc-3.9.2/src/dm/impls/plex/plexproject.c
> > [0]PETSC ERROR: #2 DMProjectFunctionLocal_Plex() line 428 in
> > /h/sabriel0/src/petsc-3.9.2/src/dm/impls/plex/plexproject.c
> > [0]PETSC ERROR: #3 DMProjectFunctionLocal() line 6265 in
> > /h/sabriel0/src/petsc-3.9.2/src/dm/interface/dm.c
> > [0]PETSC ERROR: #4 DMProjectFunction() line 6250 in
> > /h/sabriel0/src/petsc-3.9.2/src/dm/interface/dm.c
> > ...
> >
> > (I know this is an optimized PETSc build, but I get the same error
> from
> > my debug build, it's just much slower.)
> >
> > Ellen
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> > experiments is infinitely more interesting than any results to which
> > their experiments lead.
> > -- Norbert Wiener
> >
> > https://www.cse.buffalo.edu/~knepley/
> > <http://www.cse.buffalo.edu/%7Eknepley/>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181012/7e7f5776/attachment.html>
More information about the petsc-users
mailing list