Thanks, I reinstalled the PETSc to make sure the PetscScalar type is complex, 
and it works fine now.

Shuangshuang

-----Original Message-----
From: Barry Smith [mailto:[email protected]] 
Sent: Monday, January 11, 2016 11:51 AM
To: Jin, Shuangshuang
Cc: [email protected]
Subject: Re: [petsc-users] PETSC_i


> On Jan 11, 2016, at 1:15 PM, Jin, Shuangshuang <[email protected]> 
> wrote:
> 
> Hi, I have the following codes (The version of Petsc installed on my machine 
> has PetscScalar set to be complex number):
>  
> double ival_re, ival_im;
> PetscScalar val;
> …
> val  = ival_re + PETSC_i * ival_im;
>  
> I got a compilation error below: 
>  
> error: cannot convert 'std::complex<double>' to 'PetscScalar {aka double}' in 
> assignment

   For sure something is wrong. It definitely believes that PetscScalar is a 
double when it will be std::complex<double> if all the ducks are in order. 
Did/does make test work after you installed PETSc?

  Barry

>  
> Even if I set “val = 1.0 * PETSC_i;”, the error stays the same.
>  
> Can anyone help to evaluate the problem?
>  
> Thanks,
> Shuangshuang


Reply via email to