[petsc-users] matrix with complex number

Barry Smith bsmith at mcs.anl.gov
Fri Jan 22 14:49:04 CST 2010

    The issue is that PETSc is written in C and there are not C++  
templates in C. We do not want to write TWO copies of each file, one  
with dcomplex everywhere and another with double everywhere and give  
different names to the functions in each language. It would be a pain  
to write and maintain and a pain to use. Who wants to write MatSolve()  
to solve with real numbers and MatSolveComplex() to solve with complex?

   C++ templates can be used to make all this possible but they are  
not perfect to the task. Basically we need a better language to allow  
easy mixing of dcomplex and double.


On Jan 22, 2010, at 2:43 PM, Yujie wrote:

> Dear Barry,
> What are the difficult things if PETSc is revised with matrices of  
> complex and real numbers? It should be more flexible for a general  
> scientific toolbox. I am curious almost all the packages don't  
> support both simultaneously. Thanks a lot.
> Regards,
> Yujie
> On Fri, Jan 22, 2010 at 2:35 PM, Barry Smith <bsmith at mcs.anl.gov>  
> wrote:
>   The way we handle complex numbered linear systems in PETSc is to  
> compile all of PETSc with complex numbers and then just use the  
> solvers on those complex numbers. The current drawback to this is  
> that PETSc can only be built with support for complex numbers or for  
> real numbers. We cannot build a PETSc where some matrices are  
> complex and some are real.
> We don't have any interest in solving complex systems as larger real  
> systems.
>   Barry
> On Jan 22, 2010, at 11:04 AM, Yujie wrote:
> Dear PETSc Developers,
> Recently, I am trying to find some complex number-based solvers and  
> preconditioners. However, it is difficult to find a general  
> framework to include some solvers and preconditioners. Trilinos is  
> developing a package, komplex, to use the real-number-based solver  
> to solve complex number -based problem. I don't know whether PETSc  
> wants to develop such the function for complex number-based problem.  
> I think it will significantly increase the application range of  
> PETSc. After all, in PETSc, lots of solvers and preconditioners have  
> been developed. Thanks  a lot.
> Regards,
> Yujie

More information about the petsc-users mailing list