non-local values being dropped in MatSetValues
Stephan Kramer
s.kramer at imperial.ac.uk
Sun Jul 19 04:11:17 CDT 2009
Barry Smith wrote:
> Stephan,
>
> I'm sorry for your wasted time finding this bug. I have fixed it
> in the Mecurial version of PETSc 3.0.0 and in petsc-dev. It will be
> fixed in the next 3.0.0 patch that we release.
>
> Barry
Excellent. No problem, thanks a lot for your quick response and fix!
Cheers
Stephan
>
> On Jul 17, 2009, at 7:44 AM, Stephan Kramer wrote:
>
>> Hello
>>
>> We've spend sometime debugging a problem were in the assembly of a
>> parallel MPIAIJ matrix, some values that were created on a process
>> other than the owner of the row seemed to disappear. I think I
>> narrowed it down to what I think is a bug in MatSetValues_MPIAIJ,
>> but please tell me if I'm wrong.
>>
>> The situation is the following: I'm calling MatSetValues with the
>> flag ADD_VALUES and with matrix option MAT_IGNORE_ZERO_ENTRIES. I'm
>> inserting multiple values at once, multiple columns and rows, so I
>> provide a rank-2 matrix of values. As I'm calling this from fortran
>> I'm also using MAT_COLUMN_ORIENTED. Now for provided rows that are
>> not owned by the process, it jumps to mpiaij.c:394 (line numbers as
>> in petsc-dev). On line 399, it checks for zero entries, but only
>> checks the very first entry of the (non-owned) row. If however other
>> entries of that same row are nonzero, the entire row is still
>> dropped. Note that this is independent of row_oriented/
>> column_oriented as line 396 does exactly the same.
>>
>> If I don't set the option MAT_IGNORE_ZERO_ENTRIES the problem
>> disappears. In that case however we would either have to preallocate
>> substantially more nonzeros, or complicate the matrix assembly in
>> our code by taking out the zero entries ourselves and call
>> MatSetValues for each entry seperately.
>>
>> Your help would be much appreciated,
>> Cheers
>> Stephan
>>
>>
>> --
>> Stephan Kramer <s.kramer at imperial.ac.uk>
>> Applied Modelling and Computation Group,
>> Department of Earth Science and Engineering,
>> Imperial College London
>
>
--
Stephan Kramer <s.kramer at imperial.ac.uk>
Applied Modelling and Computation Group,
Department of Earth Science and Engineering,
Imperial College London
More information about the petsc-users
mailing list