[petsc-dev] MAT_HERMITIAN

Jose E. Roman jroman at dsic.upv.es
Wed Sep 11 03:59:37 CDT 2019


Not sure if I understand you. Do you mean that a complex SBAIJ Mat with MAT_HERMITIAN flag can be assumed to have zero imaginary part? I don't think so. This matrix should have real diagonal entries, but off-diagonal entries should be allowed to have nonzero imaginary part. This is what is done in MatMult_SeqSBAIJ_1_Hermitian(), where off-diagonal entries are conjugated when used for the strict lower triangular part. So I guess the right fix is to implement MatMult_SeqSBAIJ_2_Hermitian(), MatMult_SeqSBAIJ_3_Hermitian() and so on with appropriate use of PetscConj().

Jose

> El 11 sept 2019, a las 10:36, Pierre Jolivet <pierre.jolivet at enseeiht.fr> escribió:
> 
> Nevermind, this is the wrong fix.
> The proper fix is in PETSc. It should not error out if the matrix is also symmetric.
> Indeed, complex symmetric Hermitian => complex with no imaginary part.
> Thus all operations like MatMult, MatMultHermitianTranspose, Cholesky… will work for bs > 1, since all is filled with zeroes.
> I will take care of this, I’m c/c’ing petsc-dev so that they don’t have to “reverse engineer” the trivial change to MatSetOption_SeqSBAIJ.
> 
> Sorry about the noise.
> 
> Thank you,
> Pierre
> 
>> On 10 Sep 2019, at 8:37 AM, Pierre Jolivet <pierre.jolivet at enseeiht.fr> wrote:
>> 
>> Hello,
>> Could you consider not setting MAT_HERMITIAN here http://slepc.upv.es/documentation/current/src/sys/classes/st/interface/stsles.c.html#line276 when using SBAIJ matrices with bs > 1?
>> This makes PETSc error out with
>> #	[1]PETSC ERROR: No support for this operation for this object type
>> #	[1]PETSC ERROR: No support for Hermitian with block size greater than 1
>> 
>> The change does not bring any regression, since PETSc is always giving an error without it, but on the contrary, it improves the range of applicability of SLEPc, e.g., for complex Hermitian problems with SBAIJ matrices and bs > 1 that _don’t_ require the flag MAT_HERMITIAN set to true.
>> 
>> Thanks,
>> Pierre
> 



More information about the petsc-dev mailing list