[petsc-users] Converting complex PDE to real for KNL performance ?
Zhang, Hong
hongzhang at anl.gov
Tue Apr 14 13:28:10 CDT 2020
On Mar 27, 2019, at 8:07 PM, Sajid Ali via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:
Hi,
I'm able to solve the following equation using complex numbers (with ts_type cn and pc_type gamg) :
u_t = A*u'' + F_t*u;
(where A = -1j/(2k) amd u'' refers to u_xx+u_yy implemented with the familiar 5-point stencil)
Now, I want to solve the same problem using real numbers. The equivalent equations are:
u_t_real = 1/(2k) * u''_imag + F_real*u_real - F_imag*u_imag
u_t_imag = -1/(2k) * u''_real + F_imag*u_real - F_real*u_imag
Thus, if we now take our new u vector to have twice the length of the problem we're solving, keeping the first half as real and the second half as imaginary, we'd get a matrix that had matrices computing the laplacian via the 5-point stencil in the top-right and bottom-left corners and a diagonal [F_real+F_imag, F_real-F_imag] term.
I tried doing this and the gamg preconditioner complains about an unsymmetric matrix. If i use the default preconditioner, I get DIVERGED_NONLINEAR_SOLVE.
Is there a way to better organize the matrix ?
PS: I'm trying to do this using only real numbers because I realized that the optimized avx-512 kernels for KNL are not implemented for complex numbers. Would that be implemented soon ?
Can you provide a PETSc log for your code using complex numbers with -ts_type cn and -pc_type gamg? I am doubtful that it could benefit much from AVX optimizations on KNL.
Thanks,
Hong (Mr.)
Thank You,
Sajid Ali
Applied Physics
Northwestern University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200414/03fb6f24/attachment.html>
More information about the petsc-users
mailing list