On 1/6/25 08:20, Lucas P wrote:
I'm considering starting to use deal.ii with a strong emphasis on complex
numbers equations. I read in the FAQ
<https://github.com/dealii/dealii/wiki/Frequently-Asked-Questions#can-i-solve-problems-over-complex-numbers> that it is recommended to split the problem into real and imaginary parts. I am not fully convinced by the argument given on the scalar product (which can be easily redefined, I think), for instance in FENICSx I directly use complex numbers.
I saw in the tutorial 58
<https://dealii.org/current/doxygen/deal.II/step_58.html> that it's still possible not to split. On the Github issue tracker <https://github.com/dealii/dealii/issues/16364>, an user bumped into errors when trying to use the monolithic way. But since then I observe that additional work was done to ensure the compatibility with `std::complex<double>` (see for instance this <https://github.com/dealii/dealii/pull/16717>and that <https://github.com/dealii/dealii/pull/16754>).
So my question is: how mature is now deal.ii with `std::complex`? Are there
other arguments that the one on scalar product to justify the splitting (or
maybe I missed why this argument is so important)?
Lucas:
I suspect that "almost everything" works, or could be made to work with
relatively few changes, with the exception of iterative solvers. I don't think
that any of the iterative solvers we have take into account complex numbers
and how one needs to/must not take the complex conjugate in any of the
operations involved. That's why step-58 works: It just bypasses the issue by
using a direct solver.
If you wanted to give it a try to work in a monolithic formulation (i.e.,
using complex numbers rather than real/imaginary parts separately), I would
say go ahead and see where you get stuck, then report back. Most things should
be relatively easy to fix, but prepared for the fact that you might have to
spend significant time in the iterative solvers figuring what a given solver
*should* be doing in the complex case, and then *auditing* what it actually
does. Making the necessary fixes is likely going to be quick; it's knowing
where something needs to be fixed.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: bange...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to dealii+unsubscr...@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/dealii/b79998ad-3236-4d82-bb7b-bb144e01b399%40colostate.edu.