[petsc-users] dmplex with block size error

Matthew Knepley knepley at gmail.com
Fri Aug 26 06:47:34 CDT 2016


On Fri, Aug 26, 2016 at 5:52 AM, Rongliang Chen <rongliang.chan at gmail.com>
wrote:

> Hi Matt,
>
> I think there is a typo in the following code (line 633 and 636 in
> plexpreallocate.c).
>

Those are fixed in the current 'master'. Which branch are you using?

  Thanks,

     Matt


> ==================
>   } else {
>     /* Only loop over blocks of rows */
>     for (r = rStart/bs; r < rEnd/bs; ++r) {
>       const PetscInt row = r*bs;
>       PetscInt       numCols, cStart, c;
>
>       ierr = PetscSectionGetDof(sectionAdj, row, &numCols);CHKERRQ(ierr);
>       ierr = PetscSectionGetOffset(sectionAdj, row,
> &cStart);CHKERRQ(ierr);
>       for (c = cStart; c < cStart+numCols; ++c) {
>         if ((cols[c] >= rStart*bs) && (cols[c] < rEnd*bs)) {
>           ++dnz[r-rStart];
>           if (cols[c] >= row) ++dnzu[r-rStart]; // I think
> "dnzu[r-rStart]" should be "dnzu[r-rStart/bs]", right?
>         } else {
>           ++onz[r-rStart];
>           if (cols[c] >= row) ++onzu[r-rStart]; // I think
> "onzu[r-rStart]" should be "onzu[r-rStart/bs]" , right?
>         }
>       }
>     }
>     for (r = 0; r < (rEnd - rStart)/bs; ++r) {
>       dnz[r]  /= bs;
>       onz[r]  /= bs;
>       dnzu[r] /= bs;
>       onzu[r] /= bs;
>     }
>   }
> ==================
>
> Best,
> Rongliang
>
> On 08/18/2016 06:08 PM, Matthew Knepley wrote:
>
> On Thu, Aug 18, 2016 at 5:05 AM, Rongliang Chen <rongliang.chan at gmail.com>
> wrote:
>
>> Hi Matt,
>>
>> The log of the valgrind is attached. When I run with valgrind, the
>> following error message comes up.
>>
>
> The valgrind log says your code is writing over memory. Fix that first.
>
>    Matt
>
>
>> -------------------------
>> [1]PETSC ERROR: --------------------- Error Message
>> --------------------------------------------------------------
>> [1]PETSC ERROR: Arguments are incompatible
>> [1]PETSC ERROR: Cannot change block size 3670016 to 7
>> [1]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>> for trouble shooting.
>> [1]PETSC ERROR: Petsc Release Version 3.6.3, Dec, 03, 2015
>> [1]PETSC ERROR: ./fsi on a 64bit-debug named rlchen by rlchen Thu Aug 18
>> 17:59:43 2016
>> [1]PETSC ERROR: Configure options --download-blacs --download-scalapack
>> --download-metis --download-parmetis --download-exodusii --download-netcdf
>> --download-hdf5 --with-mpi-dir=/home/rlchen/soft/Program/mpich2-shared
>> --with-debugging=1 --download-fblaslapack --with-64-bit-indices
>> [1]PETSC ERROR: #1 PetscLayoutSetBlockSize() line 424 in
>> /home/rlchen/soft/petsc-3.6.3/src/vec/is/utils/pmap.c
>> [1]PETSC ERROR: #2 MatSetBlockSize() line 6920 in
>> /home/rlchen/soft/petsc-3.6.3/src/mat/interface/matrix.c
>> [1]PETSC ERROR: #3 MatXAIJSetPreallocation() line 282 in
>> /home/rlchen/soft/3D_fluid/FSI/Spmcs-v1.5/Fluid-petsc-3.6/
>> src/application/Fluid/gcreate.c
>> ----------------------
>>
>> Best regards,
>> Rongliang
>>
>> On 08/18/2016 05:52 PM, Matthew Knepley wrote:
>>
>> Run with valgrind and send the log.
>>
>>   Thanks,
>>
>>      Matt
>>
>> On Thu, Aug 18, 2016 at 3:59 AM, Rongliang Chen <rongliang.chan at gmail.com
>> > wrote:
>>
>>> Dear All,
>>>
>>> I try to use the block matrix (BAIJ) for the dmplex data structure with
>>> the option "-dm_mat_type baij" (the block size is 7). The code works fine
>>> when np = 1 but the following error comes up when np>1. And the code also
>>> works fine for np>1 if I set the block size to be 1. Any suggestions are
>>> highly appreciated.
>>>
>>> ----------------------------------------------------
>>> [1]PETSC ERROR: PetscMallocValidate: error detected at VecAXPY_Seq()
>>> line 89 in /home/rlchen/soft/petsc-3.6.3/src/vec/vec/impls/seq/bvec1.c
>>> [1]PETSC ERROR: Memory at address 0x1332571 is corrupted
>>> [1]PETSC ERROR: Probably write past beginning or end of array
>>> [1]PETSC ERROR: Last intact block allocated in PetscStrallocpy() line
>>> 188 in /home/rlchen/soft/petsc-3.6.3/src/sys/utils/str.c
>>> [1]PETSC ERROR: --------------------- Error Message
>>> --------------------------------------------------------------
>>> [1]PETSC ERROR: Memory corruption: http://www.mcs.anl.gov/petsc/d
>>> ocumentation/installation.html#valgrind
>>> [1]PETSC ERROR:
>>> [1]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>>> for trouble shooting.
>>> [1]PETSC ERROR: Petsc Release Version 3.6.3, Dec, 03, 2015
>>> [1]PETSC ERROR: ./fsi on a 64bit-debug named rlchen by rlchen Thu Aug 18
>>> 16:42:34 2016
>>> [1]PETSC ERROR: Configure options --download-blacs --download-scalapack
>>> --download-metis --download-parmetis --download-exodusii --download-netcdf
>>> --download-hdf5 --with-mpi-dir=/home/rlchen/soft/Program/mpich2-shared
>>> --with-debugging=1 --download-fblaslapack --with-64-bit-indices
>>> [1]PETSC ERROR: #1 PetscMallocValidate() line 136 in
>>> /home/rlchen/soft/petsc-3.6.3/src/sys/memory/mtr.c
>>> [1]PETSC ERROR: #2 VecAXPY_Seq() line 89 in
>>> /home/rlchen/soft/petsc-3.6.3/src/vec/vec/impls/seq/bvec1.c
>>> [1]PETSC ERROR: #3 VecAXPY() line 640 in /home/rlchen/soft/petsc-3.6.3/
>>> src/vec/vec/interface/rvector.c
>>> ---------------------------------------------------
>>>
>>> Best regards,
>>> Rongliang
>>>
>>
>>
>>
>> --
>> 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
>>
>>
>>
>
>
> --
> 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
>
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160826/e6d444b8/attachment-0001.html>


More information about the petsc-users mailing list