[petsc-users] dmplex with block size error

Rongliang Chen rongliang.chan at gmail.com
Fri Aug 26 06:53:00 CDT 2016


Thanks. I am using a very old version, the petsc-3.6.1. I will try to 
update my code to the latest version.

Best,
Rongliang

On 08/26/2016 07:47 PM, Matthew Knepley wrote:
> On Fri, Aug 26, 2016 at 5:52 AM, Rongliang Chen 
> <rongliang.chan at gmail.com <mailto: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 <mailto: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
>>         <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 <mailto: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/documentation/installation.html#valgrind
>>>             <http://www.mcs.anl.gov/petsc/documentation/installation.html#valgrind>
>>>             [1]PETSC ERROR:
>>>             [1]PETSC ERROR: See
>>>             http://www.mcs.anl.gov/petsc/documentation/faq.html
>>>             <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/ca11a8ac/attachment.html>


More information about the petsc-users mailing list