<div dir="ltr">Evan,<div>The data types are defined as</div><div>s: single real</div><div>d: double real</div><div>c: single complex</div><div>z: double complex</div><div><br></div><div>see <a href="https://books.google.com/books?id=4E9PY7NT8a0C&pg=PA22&lpg=PA22&dq=SDCZ+data+type&source=bl&ots=rd44BVkxjc&sig=KGxae_a5N54KD-AbO9CBnOE53CA&hl=en&sa=X&ei=IXJ0VeG7CNX-yQSujoOQCg&ved=0CDEQ6AEwAw#v=onepage&q=SDCZ%20data%20type&f=false_">https://books.google.com/books?id=4E9PY7NT8a0C&pg=PA22&lpg=PA22&dq=SDCZ+data+type&source=bl&ots=rd44BVkxjc&sig=KGxae_a5N54KD-AbO9CBnOE53CA&hl=en&sa=X&ei=IXJ0VeG7CNX-yQSujoOQCg&ved=0CDEQ6AEwAw#v=onepage&q=SDCZ%20data%20type&f=false_</a></div><div><br></div><div>Our mumps interface uses these definitions.</div><div><br></div><div>I do not understand why you suggest replacing z to c for double complex:</div><div><br></div><div><div><div>#if defined(PETSC_USE_COMPLEX)</div><div>#if defined(PETSC_USE_REAL_SINGLE)</div><div>#include <cmumps_c.h></div><div>#else</div><div>//#include <zmumps_c.h> // old</div><div>#include <cmumps_c.h> // new</div><div>#endif</div></div><div><br></div><div>and replacing d to s for double real:</div><div><div>#if defined(PETSC_USE_REAL_SINGLE)</div><div>#include <smumps_c.h></div><div>#else</div><div>//#include <dmumps_c.h> // old</div><div>#include <smumps_c.h><span class="" style="white-space:pre"> </span> // new</div><div>#endif</div></div><div><br></div><div>Hong</div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 5, 2015 at 6:26 PM, Evan Um <span dir="ltr"><<a href="mailto:evanum@gmail.com" target="_blank">evanum@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Dear Barry and PETSC users,<br><br></div><div>I am revisiting a problem about how to call a single precision MUMPS from double precision real/complex PETSC. After taking a look at mumps.c, I feel that the following changes (attached) can make it possible to always call a single precision MUMPS from PETSC. The change is basically to replace double precision MUMPS and their associated types with corresponding single ones. If someone already has some experience about this work, could you comment on the change? In advance, I appreciate your help.</div><div><br></div><div>Best,</div><div>Evan<br></div><div><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 22, 2014 at 1:36 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"><br>
There is no support for this. You can only call single precision MUMPS from single precision PETSc and double precision MUMPS from double precision PETSc.<br>
<br>
You could try to hack the interface that calls MUMPS from PETSc to use the single precision version but we don’t support that. src/mat/impls/aij/mpi/mumps/mumps.c<br>
<span><font color="#888888"><br>
Barry<br>
</font></span><div><div><br>
> On Oct 22, 2014, at 3:29 PM, Evan Um <<a href="mailto:evanum@gmail.com" target="_blank">evanum@gmail.com</a>> wrote:<br>
><br>
> Dear PETSC users,<br>
><br>
> When MUMPS is used inside PETSC, The default MUMPS driver seems to be double-precision MUMPS (i.e. DMUMPS). To reduce memory costs, I want to test a single-precision MUMPS (SMUMPS) from PETSC. Does anyone know how to switch from double to single-precision MUMPS inside PETSC? In advance, thanks for your comments.<br>
><br>
> Regards,<br>
> Evan<br>
<br>
</div></div></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div></div></div>