[petsc-users] MatPrealloctor

Barry Smith bsmith at petsc.dev
Fri Jul 29 16:36:49 CDT 2022


 
  Because you create the DMDA with a dof of 3, this triggers any matrices it creates and the localtoglobalmapping object it creates to have a block size of three. The error you are seeing is that a localtoglobal with a block size of 3 cannot be attached to a matrix with a block size of 1.

  The "block size" of 3 for the localtoglobalmapping does not have a lot of meaning but it is used to optimize the storage and application of global to local mappings.

  Barry


> On Jul 29, 2022, at 5:33 PM, Randall Mackie <rlmackie862 at gmail.com> wrote:
> 
> Why do I have to set the block size to 3? I’m not trying to create a block matrix.
> 
> In fact just a couple months ago I was told I don’t have block matrices and I had to remove calls to set the block size:
> 
> https://lists.mcs.anl.gov/mailman/htdig/petsc-users/2022-May/046094.html <https://lists.mcs.anl.gov/mailman/htdig/petsc-users/2022-May/046094.html>
> 
> This works fine without the MatPreallocator routines.
> 
> Randy
> 
>> On Jul 29, 2022, at 2:23 PM, Barry Smith <bsmith at petsc.dev <mailto:bsmith at petsc.dev>> wrote:
>> 
>> 
>>   I'm hoping that it is as simple as that you did not set the block size of your newly created matrix to 3?
>> 
>> 
>> 
>>> On Jul 29, 2022, at 4:04 PM, Randall Mackie <rlmackie862 at gmail.com <mailto:rlmackie862 at gmail.com>> wrote:
>>> 
>>> Hi Barry,
>>> 
>>> It seems like this should be trivial to get working but so far I’ve been unsuccessful.
>>> Most likely I’m doing something wrong but I have no idea what that is.
>>> 
>>> I’ve attached a little test program that fails with the errors:
>>> 
>>> [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
>>> [0]PETSC ERROR: Petsc has generated inconsistent data
>>> [0]PETSC ERROR: Blocksize of layout 1 must match that of mapping 3 (or the latter must be 1)
>>> [0]PETSC ERROR: See https://petsc.org/release/faq/ <https://petsc.org/release/faq/> for trouble shooting.
>>> [0]PETSC ERROR: Petsc Release Version 3.17.3, Jun 29, 2022
>>> [0]PETSC ERROR: ./test on a linux-gfortran-complex-debug named rmackie-VirtualBox by rmackie Fri Jul 29 12:16:13 2022
>>> [0]PETSC ERROR: Configure options --with-clean=1 --with-scalar-type=complex --with-debugging=1 --with-fortran=1 --download-mpich=../external/mpich-4.0.1.tar.gz
>>> [0]PETSC ERROR: #1 PetscLayoutSetISLocalToGlobalMapping() at /home/rmackie/PETSc/petsc-3.17.3/src/vec/is/utils/pmap.c:363
>>> [0]PETSC ERROR: #2 MatSetLocalToGlobalMapping() at /home/rmackie/PETSc/petsc-3.17.3/src/mat/interface/matrix.c:2012
>>> 
>>> 
>>> Any help to point me in the right direction is appreciated.
>>> 
>>> Randy M.
>>> 
>>> <files.zip>
>>> 
>>>> On Jul 28, 2022, at 2:49 PM, Barry Smith <bsmith at petsc.dev <mailto:bsmith at petsc.dev>> wrote:
>>>> 
>>>> 
>>>>   I am not sure what you are asking exactly but I think so, so long have you have called MatSetLocalToGlobalMapping() and the "stencil" idea makes sense for your discretization.
>>>> 
>>>>  Barry
>>>> 
>>>> 
>>>>> On Jul 28, 2022, at 5:41 PM, Randall Mackie <rlmackie862 at gmail.com <mailto:rlmackie862 at gmail.com>> wrote:
>>>>> 
>>>>> Dear PETSc users:
>>>>> 
>>>>> Can one use a MatPreallocator and then call MatPreAlloctorPreallocate if using MatStencil routines (which seem to call MatSetValuesLocal).
>>>>> 
>>>>> 
>>>>> Thanks, Randy
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220729/485e1b2c/attachment.html>


More information about the petsc-users mailing list