Fande,
Checking aij.result:
Mat Object: () 1 MPI processes
type: seqaij
rows=25816, cols=25816, bs=4
total: nonzeros=1297664, allocated nonzeros=1297664
total number of mallocs used during MatSetValues calls=0
using I-node routines: found 6454 nodes, limit used is 5
i.e., it uses bs=4 with I-node. The implementation of MatSolve() is similar to
baij with bs=4. What happens if you try aij with '-matload_block_size 1
-mat_no_inode true'?
Hong
________________________________
From: petsc-users <[email protected]> on behalf of Fande Kong
<[email protected]>
Sent: Monday, March 30, 2020 12:25 PM
To: PETSc users list <[email protected]>
Subject: [petsc-users] AIJ vs BAIJ when using ILU factorization
Hi All,
There is a system of equations arising from the discretization of 3D
incompressible Navier-Stoke equations using a finite element method. 4 unknowns
are placed on each mesh point, and then there is a 4x4 saddle point block on
each mesh vertex. I was thinking to solve the linear equations using an
incomplete LU factorization (that will be eventually used as a subdomain solver
for ASM).
Right now, I am trying to study the ILU performance using AIJ and BAIJ,
respectively. From my understanding, BAIJ should give me better results since
it inverses the 4x4 blocks exactly, while AIJ does not. However, I found that
both BAIJ and AIJ gave me identical results in terms of the number of
iterations. Was that just coincident? Or in theory, they are just identical.
I understand the runtimes may be different because BAIJ has a better data
locality.
Please see the attached files for the results and solver configuration.
Thanks,
Fande,