$ git grep requiresscalar 
bound/makefile:#requiresscalar    real
complementarity/makefile:#requiresscalar    real
constrained/makefile:#requiresscalar    real
leastsquares/makefile:#requiresscalar    real
linesearch/impls/makefile:#requiresscalar    real
pde_constrained/makefile:#requiresscalar    real
quadratic/makefile:#requiresscalar    real
unconstrained/makefile:#requiresscalar    real

We added these requirements when Tao was brought back into the PETSc fold as 
Alp mentioned. It would be good to start eliminating the requirements when 
possible. 

I have removed the leastsquares/makefile:#requiresscalar    real and have 
started a build to see how it goes. If everything goes well maybe we can get it 
working for complex without too much difficulty.

  Barry


> On Jun 24, 2021, at 4:02 PM, Junchao Zhang <[email protected]> wrote:
> 
> 
> 
> 
> On Thu, Jun 24, 2021 at 3:25 PM Dener, Alp via petsc-users 
> <[email protected] <mailto:[email protected]>> wrote:
> Hi Lucas,
> 
> In theory, you can attempt to solve complex-valued problems by concatenating 
> the real and imaginary parts into a single real-valued solution vector and 
> solving it as if it’s a real-valued problem.
> 
> There’s a more practical issue of the PETSc build excluding the TAO source 
> code entirely for complex builds. I think this is done because we cannot 
> guarantee that TAO code has been completely rigorous in its distinction of 
> PetscReal from PetscScalar. There may be places where we used Scalar and 
> assumed it’s Real. The methods developed in the last few years have paid more 
> attention to this but there’s a lot of older code floating around that might 
> break even if you hacked the build into compiling TAO for complex 
> configurations.
> If an expression does not support PetscComplex, shouldn't it report a 
> compilation error?
> 
> I’m not entirely sure what’s necessary to enable TAO builds for complex 
> PETSc. Perhaps Todd, Satish or Barry will have a better idea. If you want to 
> give it a try though I’d be happy to help you resolve the errors as they come 
> up so that it can be compiled for complex builds. Can’t provide convergence 
> guarantees but it would at least let you attempt a solution.
> 
> Alp
> 
>> On Jun 24, 2021, at 2:44 PM, Lucas Banting <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi,
>> 
>> I have a complex valued optimization code that requires non-linear least 
>> squares curve fitting at each iteration. I wanted to use Tao to do the 
>> non-linear least squares problem, but just discovered that Tao can only be 
>> used with real scalar types. Is there any workarounds?
>> 
>> I was wondering if maybe I could somehow use two different Petsc 
>> installations at once, or is there any other ways to hack tao into working?
>> 
>> Thanks,
>> Lucas
> 

Reply via email to