<div dir="ltr"><div dir="ltr"><div><div><span class="gmail-pl-c">       Hi, <br><br>I'm able to solve the following equation using complex numbers (with ts_type cn and pc_type gamg) :<br>                              u_t = A*u'' + F_t*u;     </span><br><span class="gmail-pl-c">(where A = -1j/(2k) amd u'' refers to u_xx+u_yy implemented with the familiar 5-point stencil)</span><br><br></div>Now, I want to solve the same problem using real numbers. The equivalent equations are: <br></div>u_t_real   =  1/(2k) * u''_imag + F_real*u_real   - F_imag*u_imag<br>u_t_imag = -1/(2k) * u''_real   + F_imag*u_real - F_real*u_imag<div><br></div><div>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. <br></div><div><br></div><div>I tried doing this and the gamg preconditioner complains about an unsymmetric matrix. If i use the default preconditioner, I get DIVERGED_NONLINEAR_SOLVE. <br><br>Is there a way to better organize the matrix ? <br><br></div><div>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 ? <br></div><div><br><div>Thank You,<br></div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="font-size:12.8px">Sajid Ali<br></div><div style="font-size:12.8px">Applied Physics<br></div><div style="font-size:12.8px">Northwestern University</div></div></div></div></div></div></div>