[petsc-dev] DMPlex VecView to HDF5
Adrian Croucher
a.croucher at auckland.ac.nz
Wed Feb 28 22:33:31 CST 2018
hi,
I have created a pull request (acroucher/dmplex-hdf5-vecview) with the
two fixes I came up with to prevent HDF5 DMPlex VecView() crashing when
one process has no cells on it.
Cheers, Adrian
On 22/02/18 17:12, Adrian Croucher wrote:
>
> hi Matt,
>
>
> On 20/02/18 12:32, Matthew Knepley wrote:
>> On Mon, Feb 19, 2018 at 4:33 PM, Adrian Croucher
>> <a.croucher at auckland.ac.nz <mailto:a.croucher at auckland.ac.nz>> wrote:
>>
>> hi Matt
>>
>> I tried what you suggested and modified
>> DMPlexGetFieldType_Internal() so that all processes have the same
>> field type (ft):
>>
>> Yep, this is going to take specifying in the interface that it is
>> collective. It looks like it might be used as if it is not.
>
> It looks to me like that may not be the problem, actually. I think I
> may have tracked it down though.
>
> In vec/vec/interface/rvector.c:1280, in VecGetSubVector():
>
> if (n%bs || bs == 1) bs = -1; /* Do not decide block size if we
> do not have to */
>
> If there are no cells on one process (n = 0) then n%bs = 0, so if bs >
> 1 the reassignment bs = -1 doesn't happen.
>
> If I alter it to:
>
> if (n%bs || bs == 1 || !n) bs = -1; /* Do not decide block size
> if we do not have to */
>
> then it also sets bs = -1 on the n = 0 process, and it works fine for
> my case.
>
> I'm not sure I fully understand the purpose of this line though, so
> don't know if what I've done is always going to be the right thing?
>
> I also wondered if it would be desirable to ensure bs is consistent
> across all processes, but am not sure what the right value would be in
> that case. I tried doing an MPI_allreduce() on bs, to find the minimum
> across processes (so if any were -1 then they all were) and that also
> worked for my case.
>
> - Adrian
> --
> Dr Adrian Croucher
> Senior Research Fellow
> Department of Engineering Science
> University of Auckland, New Zealand
> email:a.croucher at auckland.ac.nz
> tel: +64 (0)9 923 4611
--
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: a.croucher at auckland.ac.nz
tel: +64 (0)9 923 4611
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20180301/558c4aaa/attachment.html>
More information about the petsc-dev
mailing list