[petsc-dev] Segfault in DMPlexVecGetClosure

Blaise A Bourdin bourdin at lsu.edu
Tue Oct 31 13:08:53 CDT 2017



On Oct 31, 2017, at 12:39 PM, Matthew Knepley <knepley at gmail.com<mailto:knepley at gmail.com>> wrote:

On Tue, Oct 31, 2017 at 11:36 AM, Blaise A Bourdin <bourdin at lsu.edu<mailto:bourdin at lsu.edu>> wrote:
Hi,

I am losing my mind over segfaults in DMPlexVecGetClosure.

In the example below, I get a segfault whenever cval is not set to NULL before calling DMPlexVecGetClosure. Is this expected?

Yes. If cval is NULL, it allocates the necessary space and passes back the array. If it is not NULL, it uses the pointer that you passed
in (so you can allocate your own temp storage if you are smarter).

The documentations says nothing about this

That is a problem.

Also, after calling DMPlexVecRestoreClosure, the values of cval are discarded and neither global nor coord are changed.

Ah, GetClosure() is not like GetArray(), in that it is a temp copy. You need SetClosure() in order to change values.

So DMPlexVecGetClosure / DMPlexVecRestoreClosure behaves more like ISCreateGeneral / ISDestroy than as a standard PETSc XXXGet / XXXRestore.

I’ll do my best to submit a pull request with an updated man page and an example.

Blaise


   Matt

I am obviously doing something wrong but cannot figure it out...

Blaise


--
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612<tel:(225)%20578-1612>, Fax  +1 (225) 578 4276<tel:(225)%20578-4276> http://www.math.lsu.edu/~bourdin










--
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.caam.rice.edu/~mk51/>

--
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin







-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20171031/5d1b483d/attachment-0001.html>


More information about the petsc-dev mailing list