New approach for external direct solvers in PETSc

Barry Smith bsmith at
Fri Jul 25 21:04:22 CDT 2008

On Jul 25, 2008, at 5:47 PM, Lisandro Dalcin wrote:

> Perhaps yor are missing in petscmat.h a line like the one below?? In
> the docsyou mention it, but it is not listed alongside the other
> packages.
> #define MAT_SOLVER_PETSC      "petsc"
    Yup, I keep forgetting to put it in. Just pushing now.

> BTW, Have you ever considered the posibility of not using the 'Mat'
> class for factored matrices?? I believe that normal matrices and
> factored matrices share very few in common as to being instances of
> the same class. Looking at the source code in src/mat, there are many
> checks like 'if (mat-->factor)' or  'if (!mat->factor)' that seems to
> support my concern. What do you think?
      This is a very valid point. The OOP fanboy would certainly make  
it another class
and likely have a whole hierarchy of classes for this stuff :-). From  
the point of
view of PETSc users I work VERY hard to limit the number of classes (I  
think we have too many).  Also given our crude "C classes" it is  
difficult to have nice
hierarchy of classes so for now I will leave it as is. It would be  
reasonable to make
other choices.


> On Fri, Jul 25, 2008 at 7:02 PM, Barry Smith <bsmith at>  
> wrote:
>>  petsc-dev users,
>>    I have finally completed my changes to PETSc for a new approach to
>> accessing external direct solvers
>> in PETSc like Spooles, MUMPS etc. I will be pushing it to petsc-dev  
>> sometime
>> the middle of next week.
>> If you are using the direct solvers you might consider cloning from
>>  or
>> ssh://
>> and trying it out before then. Please report problem to
>> petsc-maint at as you hit them.
>>  Barry
>> From the changes file
>> The "parallel direct solver" matrix types like
>> MATAIJSPOOLES are ALL gone. Now you use -pc_factor_mat_solver_package
>> spooles etc or PCFactorSetMatSolverPackage() or if working directly  
>> with
>> matrices, MatGetFactor(A,MATSPOOLES,...)
> -- 
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594

More information about the petsc-dev mailing list