Nevermind, the first component of the arrays are too frequently used in PCBDDC.
So, I guess, the documentation should be updated by someone who knows what is 
stored there.

Also, it’s not clear to me what would happened with a domain decomposition with 
only non-connected subdomains.
If there are more than a single subdomain, is nproc = 1 or 0 like when there is 
a single subdomain? Cf. 
https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1012
 
<https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1012>.

Thanks anyway,
Pierre

> On 9 Aug 2019, at 9:35 AM, Pierre Jolivet via petsc-dev 
> <[email protected]> wrote:
> 
> Actually, I don’t think it is a bug, but rather an undocumented feature.
> Someone clearly knew what they were doing when writing this: 
> https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1379
>  
> <https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1379>
> Now, the question becomes: is this really needed? Can’t the values associated 
> to "rank" be stripped from the arrays from the get go?
> I’m guessing this also explains why some loop start at 1 and not 0, e.g., 
> https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1583
>  
> <https://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/utils/isltog.c.html#line1583>
> 
> I’ll try to take a crack at it, anyway, now I know that the information I’m 
> looking for is basically all the arrays shifted by 1 and nproc = nproc - 1.
> 
> Thanks,
> Pierre
> 
>> On 9 Aug 2019, at 8:52 AM, Smith, Barry F. <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>>  The documents and the code indicate that nproc should be 1 in this case. So 
>> there is a bug, if you are unable to determine the cause I can try to look 
>> at it but have stones of things to do.
>> 
>>  Barry
>> 
>> 
>>> On Aug 9, 2019, at 12:37 AM, Pierre Jolivet <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Again, with only 2 processes, where nproc is set to 2, I get the following 
>>> numprocs and indices arrays on rank 0:
>>> 0   110 111 112 113 114 115 116 117 … 
>>> 1   110 111 112 113 114 115 116 117 …
>>> Are these the expected values? If so, what is the true definition of nproc, 
>>> please?
>>> 
>>> Thanks,
>>> Pierre
>>> 
>>>> On 9 Aug 2019, at 3:45 AM, Smith, Barry F. <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> 
>>>> There could be a bug. Perhaps check the entries for that "extra" 
>>>> connection, are they all actual meaningful connections. The code that 
>>>> fills up these data structures is somewhat involved.
>>>> 
>>>> Barry
>>>> 
>>>> 
>>>>> On Aug 8, 2019, at 9:39 AM, Pierre Jolivet via petsc-dev 
>>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>>> 
>>>>> Hello,
>>>>> When I use ISLocalToGlobalMappingGetInfo, e.g., in 
>>>>> src/ksp/ksp/examples/tutorials/ex71.c ISLocalToGlobalMappingGetInfo(map, 
>>>>> &nproc, &procs, &numprocs, &indices), I get the following value for nproc:
>>>>> - with 1 process: 0
>>>>> - with 2 processes: 2
>>>>> In the source code, it says that nproc is the “number of processors that 
>>>>> are connected to this one”.
>>>>> How come this value is equal to the size of the global communicator when 
>>>>> using 2 processes?
>>>>> According to the comment in the source code, shouldn’t the returned value 
>>>>> be 1?
>>>>> 
>>>>> Thanks,
>>>>> Pierre
>>>> 
>>> 
>> 
> 

Reply via email to