I just noticed unexpected behaviour of MatMult_SeqBAIJ_3 in PCBDDC code (on branch stefano_zampini/pcbddc-baijfixes) with rectangular matrices having number of rows >> number of cols and number of cols =2*blocksize. I guess this problem will show up for other values of block sizes.
When some rows of the matrix are empty, the corresponding entry in the resulting vector is not zero (as expected, mathematically speaking); instead, the values are not overwritten at all. Is it the expected behaviour? Attached are two matrices . The one with sizes 186x6 shows the problem on my laptop (ubuntu, gnu compilers, --with-debugging, , CFLAGS -g -O0) I'm not familiar with PETSc low-level implementation of BAIJ, so I cannot dig anymore into the problem apart saying that: A) if "converted" to SeqAIJ with a call MatConvert(Mymat,MATSEQAIJ,MAT_REUSE_MATRIX,&Mymat) the output of MatMult is always correct. B) the problem disappear by increasing the number of columns (the matrix with sizes 171x21 does not show the problem). Hope you can reproduce the problem, -- Ph. D. Stefano Zampini CINECA SuperComputing Applications and Innovations Department - SCAI Via dei Tizii, 6 00185 Roma - ITALY ------------------------------------------------------------------------------------------------------------------------ Email: [email protected] SkypeID: stefano.zampini GoogleTalk: [email protected] Tel: +39 06.44486.707 ------------------------------------------------------------------------------------------------------------------------
matseqbaij_171x21
Description: Binary data
matseqbaij_171x21.info
Description: Binary data
matseqbaij_186x6
Description: Binary data
matseqbaij_186x6.info
Description: Binary data
