Hi Barry,
I tried the petsc-3.7.7 and my code works fine. Any suggestions for
debug this? Thanks.
Best,
Rongliang
On 04/08/2018 11:22 AM, Smith, Barry F. wrote:
On Apr 7, 2018, at 10:11 PM, Rongliang Chen <[email protected]> wrote:
Thanks Barry! I created the ISLocalToGlobalMapping after I loaded in the mesh
and before the matrix creation. The block size for the
ISLocalToGlobalMappingCreate is 7. In my code, the mapping is already in the
form that one number per block since the petsc-3.6 requests this. So when I
updated from 3.6 to 3.8, I did not make any changes for the
ISLocalToGlobalMapping. The petsc-3.8 updated this mapping? And what should I
do for this?
The block change was from 3.5 to 3.6 so I am not sure what the problem is.
is your code Fortran or C?
Barry
It's slower but you could try to see if you can get your code working with
3.7 first to determine if the problem comes up between 3.6 and 3.7
Best,
Rongliang
On 04/08/2018 05:22 AM, Smith, Barry F. wrote:
On Apr 7, 2018, at 1:57 PM, Rongliang Chen <[email protected]> wrote:
Hi Barry,
Thanks for your reply. I checked the isrow with ISView (see bellow for the
output) and I found that the output of the 3.6 (output-3.6.txt) and 3.8
(output-3.8.txt) are totally different. I do not know why. By the way, the
block size of my code should be 7 but the output of the isrow in 3.8 shows that
it is 8.
I did not set the ASM blocks by myself. I only created a local to global
mapping and use it to create the matrix with MatCreateBAIJ. The ASM setup is
done by petsc.
There are some changes with the local to global mapping that is perhaps
causing your difficulties. There use to be an MatSetLocalToGlobalMapping() and
MatSetLocalToGlobalMappingBlock() they are gone and there is now a block size
associated with the mapping. There is now one number per block instead of 1
number per index. Where do you get the ISLocalToGlobalMapping from() and what
is its block size set too?
Barry
Best,
Rongliang
On 04/07/2018 11:20 PM, Smith, Barry F. wrote:
For BAIJ matrices with ASM preconditioner the index sets that define the
ASM blocks must contain all the points in a block or none of them. The code is
detecting this is not the case; I don't know why this would be different
between 3.8 and 3.6
You can use the option -start_in_debugger and put a break point in
MatCreateSubMatrix_SeqBAIJ() then do
call ISView(isrow,0)
and look at the indices printed. Do the sets of indices match the block size?
How do you set the ASM blocks for your code? They must be not set correctly when
bs > 1.
Barry
Perhaps in 3.6 we did less error checking and so did not detect the error in
that case.
On Apr 7, 2018, at 12:24 AM, Rongliang Chen <[email protected]> wrote:
Hello everyone,
I updated my code from petsc-3.6 to petsc-3.8 and got the following error. But
it works well if I set the block size to be 1. I am solving an unstructured
mesh problem. Any suggestions for debugging this are welcome. Thanks.
Best,
Rongliang
[0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
[0]PETSC ERROR: Nonconforming object sizes
[0]PETSC ERROR: Index set does not match blocks
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for
trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.8.4, Mar, 24, 2018
[0]PETSC ERROR: ./HiBflow on a 64bit-debug named rongliang-chen by rlchen Sat
Apr 7 13:14:20 2018
[0]PETSC ERROR: Configure options --download-mpich --download-blacs
--download-scalapack --download-metis --download-parmetis --download-exodusii
--download-netcdf --download-hdf5 --with-debugging=1 --download-fblaslapack
--download-ctetgen --with-64-bit-indices
[0]PETSC ERROR: #1 MatCreateSubMatrix_SeqBAIJ() line 184 in
/home/rlchen/soft/petsc-3.8.4/src/mat/impls/baij/seq/baij2.c
[0]PETSC ERROR: #2 MatCreateSubMatrices_SeqBAIJ() line 264 in
/home/rlchen/soft/petsc-3.8.4/src/mat/impls/baij/seq/baij2.c
[0]PETSC ERROR: #3 MatCreateSubMatrices() line 6764 in
/home/rlchen/soft/petsc-3.8.4/src/mat/interface/matrix.c
[0]PETSC ERROR: #4 PCSetUp_ASM() line 326 in
/home/rlchen/soft/petsc-3.8.4/src/ksp/pc/impls/asm/asm.c
[0]PETSC ERROR: #5 PCSetUp() line 924 in
/home/rlchen/soft/petsc-3.8.4/src/ksp/pc/interface/precon.c
[0]PETSC ERROR: #6 KSPSetUp() line 381 in
/home/rlchen/soft/petsc-3.8.4/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: #7 KSPSolve() line 612 in
/home/rlchen/soft/petsc-3.8.4/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: #8 SNESSolve_NEWTONLS() line 224 in
/home/rlchen/soft/petsc-3.8.4/src/snes/impls/ls/ls.c
[0]PETSC ERROR: #9 SNESSolve() line 4131 in
/home/rlchen/soft/petsc-3.8.4/src/snes/interface/snes.c
[0]PETSC ERROR: #10 TimeStep() line 1751 in
/home/rlchen/soft/3D_fluid/3DBloodFlow/Cerebral/Twolevel-3.8/HiBflow.c
[0]PETSC ERROR: #11 SolveTimeDependent() line 1315 in
/home/rlchen/soft/3D_fluid/3DBloodFlow/Cerebral/Twolevel-3.8/HiBflow.c
[0]PETSC ERROR: #12 JoabCtxSolve() line 263 in
/home/rlchen/soft/3D_fluid/3DBloodFlow/Cerebral/Twolevel-3.8/HiBflow.c
[0]PETSC ERROR: #13 main() line 158 in
/home/rlchen/soft/3D_fluid/3DBloodFlow/Cerebral/Twolevel-3.8/HiBflow.c
<output-3.6.txt><output-3.8.txt>