Hi, There is also Intel MKL Pardiso that I have been using lately (at Michelin) and I have extended the mkl_pardiso.c interface to PETSc to support PCCHOLESKY (with an SEQSBAIJ matrix and a block size of one) and not only PCLU (with a SEQAIJ matrix).
We have been testing it internally and so fare it is robust and very fast for a direct solver. I plan to submit my modifications to the main trunk (pull request) in the coming days ... I have seen the extension to Cluster Pardiso in the main trunk and it also done only for LU and MPIAIJ matrices. It would be nice to extended it to symetric matrices as well. I wanted to do the same extension for the Cluster Pardiso, but I didn't have time yet (and it does not work with with OpenMPI, but works with Intel MPI). Regards, Pascal Tremblay --------------------------------------------------------------------------------------------- Mécanique Numérique Michelin, Centre de technologie de Ladoux -DGRD/CTEU/PM/SIM/ER 63040 Clermont-Ferrand Cedex 09 - FRANCE Tél. (ext.): 04 73 10 91 63 Tél. (int.): 61 163 --------------------------------------------------------------------------------------------- Confidentialité D3- Conservation <90j De : David Knezevic <[email protected]> A : Hong <[email protected]>, Cc : PETSc users list <[email protected]> Date : 09/04/2015 04:17 Objet : Re: [petsc-users] Exploiting symmetry with direct solvers Envoyé par : <[email protected]> On Wed, Apr 8, 2015 at 9:28 PM, Hong <[email protected]> wrote: David , I'm curious about how to do a symmetric LDL^T factorization (instead of LU) with MUMPS and SuperLU. Based on this example: http://www.mcs.anl.gov/petsc/petsc-3.4/src/ksp/ksp/examples/tutorials/ex52.c.html my understanding is as follows: - With MUMPS I gather that we need to specify: MatSetOption(A,MAT_SPD,PETSC_TRUE); PCSetType(pc,PCCHOLESKY); I guess "-pc_type cholesky" on the command line is equivalent to the PCSetType call, right? Is specifying MAT_SPD required in order for MUMPS to do an LDL^T factorization? Mumps supports Cholesky factorization for symmetric, and symmetric+spd matrices. You may consult mumps user manual. OK, thanks. But I was also wondering about the PETSc interface to MUMPS. I consulted the MUMPS manual, but it just says that you need to specify "SYM=1" in order to get an LDL^T factorization. I gather that if we set MatSetOption(A,MAT_SPD,PETSC_TRUE); in PETSc then that will tell MUMPS to use SYM=1, right? Thanks, David
