<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I have successfully used Petsc built with real numbers to solve system of equations in complex numbers by representing the NxN complex system of equations as 2Nx2N real system of equations. <div class=""><br class=""></div><div class="">A relevant paper is this: </div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">@Article{Day2001,</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">author = {Day, David and Heroux, Michael A}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">title = {Solving complex-valued linear systems via equivalent real formulations}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">journal = {SIAM Journal on Scientific Computing}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">volume = {23}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">number = {2}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">pages = {480--498}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">year = {2001}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">abstract = {Most preconditioned iterative methods apply to both real-and complex-valued linear systems. At the same time, most iterative linear solver packages available today focus exclusively on real-valued systems or deal with complex-valued systems as an.}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">location = {}, </div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman";" class="">keywords = {}}</div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman"; min-height: 15px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: "Times New Roman"; min-height: 15px;" class=""><span style="font-family: Helvetica;" class="">Note that it is important to solve this as block matrix, which is the point made in the paper. </span></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: Arial; min-height: 14px;" class=""><br class=""></div><div>My implementation in MAST is here: <span style="caret-color: rgb(36, 41, 46); color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; background-color: rgb(255, 255, 255);" class=""><a href="https://github.com/MASTmultiphysics/mast-multiphysics/blob/7b5c414e3d85a2712b3054d10be9cddb1b288a82/src/solver/complex_solver_base.cpp#L333" class="">https://github.com/MASTmultiphysics/mast-multiphysics/blob/7b5c414e3d85a2712b3054d10be9cddb1b288a82/src/solver/complex_solver_base.cpp#L333</a></span></div><div class=""><br class=""></div><div class=""><br class=""></div><div>-Manav</div><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 14, 2019, at 2:13 AM, Karin&NiKo via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class="">Dear Michael,<br class=""><br class=""></div>I  also have plans to use PETSc on real and complex objects and, at the moment, I do not see how to do it.<br class=""></div>If possible, could you please comment on how you defined your wrappers and how you link the symbols with the adequate functions? Since both PETSc real and complex  symbols have the same names, I wonder if you use the paths to the different symbols? Also, did you write your wrappers by hand and did you write a script to do it (the hidden question is : do you cover all the objects and methods of the library)?<br class=""><br class=""></div>I thank you in advance,<br class=""></div>Nicolas<br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">Le dim. 13 janv. 2019 à 22:13, Povolotskyi, Mykhailo via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> a écrit :<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div class="">


<div lang="EN-US" class="">
<div class="gmail-m_-5415140201072950626x_WordSection1"><p class="gmail-m_-5415140201072950626x_MsoNormal">Hi Evan, </p><p class="gmail-m_-5415140201072950626x_MsoNormal">I’m one of those users, who has multiple shared libraries.
</p><p class="gmail-m_-5415140201072950626x_MsoNormal">It is quite stable since I create wrappers around the PETSc functions and hide the native PETSc symbols.</p><p class="gmail-m_-5415140201072950626x_MsoNormal">But, yes, the interoperations are not possible.</p><p class="gmail-m_-5415140201072950626x_MsoNormal">Michael.</p><div class=""> <br class="webkit-block-placeholder"></div><p class="gmail-m_-5415140201072950626x_MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank" class="">
Mail</a> for Windows 10</p><div class=""> <br class="webkit-block-placeholder"></div>
<div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(225,225,225) currentcolor currentcolor;padding:3pt 0in 0in" class=""><p class="gmail-m_-5415140201072950626x_MsoNormal" style="border-width:medium;border-style:none;border-color:currentcolor;padding:0in"><b class="">From: </b><a href="mailto:petsc-users@mcs.anl.gov" target="_blank" class="">Jed Brown via petsc-users</a><br class="">
<b class="">Sent: </b>Sunday, January 13, 2019 12:48 PM<br class="">
<b class="">To: </b><a href="mailto:evanum@gmail.com" target="_blank" class="">Evan Um</a>; <a href="mailto:petsc-users@mcs.anl.gov" target="_blank" class="">
petsc-users</a><br class="">
<b class="">Subject: </b>Re: [petsc-users] Using real and complex matrices together</p>
</div><div class=""> <br class="webkit-block-placeholder"></div>
</div>
</div>
<font size="2" class=""><span style="font-size:10pt" class="">
<div class="gmail-m_-5415140201072950626PlainText">It is not supported, sorry.  Some users do it with careful linking via<br class="">
multiple shared libraries, but that is fragile and doesn't interoperate.<br class="">
<br class="">
Evan Um via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank" class="">petsc-users@mcs.anl.gov</a>> writes:<br class="">
<br class="">
> Hi PETSC users,<br class="">
><br class="">
> Inside my codes, I have both complex and real matrices. To solve complex<br class="">
> matrices, I build and use complex version of PETSC. In this case, is there<br class="">
> any way to use real matrices too? Do you have such a PETSC code example?<br class="">
> Until now, I have used complex matrices to represent real matrices by<br class="">
> setting imaginary components of the real matrices to zero. Real value<br class="">
> vectors are also realized by setting imaginary components to zero.<br class="">
><br class="">
> In advance, thanks for your comments.<br class="">
><br class="">
> Evan<br class="">
</div>
</span></font>
</div>

</blockquote></div>
</div></blockquote></div><br class=""></div></body></html>