[petsc-users] matrix with complex number

Barry Smith bsmith at mcs.anl.gov
Fri Jan 22 15:03:07 CST 2010


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

> In order to using PETSc with complex and real numbers, a simple  
> method I am considering is to build PETSc with complex numbers. I  
> can control the matrices with complex or real numbers by myself.  
> However, I can't built PETSc with some external packages and some  
> packages developed based on PETSc. If I want to do it successfully,  
> do you have any advice for me? Thanks a lot.

   Some external packages simply don't support complex numbers, there  
is nothing we can do about this. Similarly if some writes a package  
with PETSc if they are not careful to use PetscScalar it won't be  
usable with complex, again there is nothing we can do about this.

    Barry

>
> Regards,
> Yujie
>
> On Fri, Jan 22, 2010 at 2:49 PM, Barry Smith <bsmith at mcs.anl.gov>  
> wrote:
>
>   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.
>
>   Barry
>
>
>
>
> 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