I tried the petsc-3.7.7 and my code works fine. Any suggestions for
debug this? Thanks.
On 04/08/2018 11:22 AM, Smith, Barry F. wrote:
The block change was from 3.5 to 3.6 so I am not sure what the problem is.
On Apr 7, 2018, at 10:11 PM, Rongliang Chen <rongliang.c...@gmail.com> 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?
is your code Fortran or C?
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
On 04/08/2018 05:22 AM, Smith, Barry F. wrote:
On Apr 7, 2018, at 1:57 PM, Rongliang Chen <rongliang.c...@gmail.com> wrote:
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?
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
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.
Perhaps in 3.6 we did less error checking and so did not detect the error in
On Apr 7, 2018, at 12:24 AM, Rongliang Chen <rongliang.c...@gmail.com> wrote:
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.
PETSC ERROR: --------------------- Error Message
PETSC ERROR: Nonconforming object sizes
PETSC ERROR: Index set does not match blocks
PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for
PETSC ERROR: Petsc Release Version 3.8.4, Mar, 24, 2018
PETSC ERROR: ./HiBflow on a 64bit-debug named rongliang-chen by rlchen Sat
Apr 7 13:14:20 2018
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
PETSC ERROR: #1 MatCreateSubMatrix_SeqBAIJ() line 184 in
PETSC ERROR: #2 MatCreateSubMatrices_SeqBAIJ() line 264 in
PETSC ERROR: #3 MatCreateSubMatrices() line 6764 in
PETSC ERROR: #4 PCSetUp_ASM() line 326 in
PETSC ERROR: #5 PCSetUp() line 924 in
PETSC ERROR: #6 KSPSetUp() line 381 in
PETSC ERROR: #7 KSPSolve() line 612 in
PETSC ERROR: #8 SNESSolve_NEWTONLS() line 224 in
PETSC ERROR: #9 SNESSolve() line 4131 in
PETSC ERROR: #10 TimeStep() line 1751 in
PETSC ERROR: #11 SolveTimeDependent() line 1315 in
PETSC ERROR: #12 JoabCtxSolve() line 263 in
PETSC ERROR: #13 main() line 158 in