<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello everyone,</p>
    <p>a while ago I wrote about a patch for petsc with complex number
      c++ and float128 using c99 complex numbers and you suggested to
      just use petsc with a c build and then just call it from c++ (see
      below).</p>
    <p>I thought that this worked, but I only tried it for my patched
      version. Now I tried to do this for the normal v3.7.6 and I get a
      lot of errors that PetscCompex is not defined when I call it from
      c++. The installation works fine and also the tutorial examples.
      (which are all c)<br>
    </p>
    <p>It seems that if I call petsc from c++ it tries to switch to c++
      complex numbers even though I build petsc with c, which are
      obviously not defined.</p>
    <p>So, could you give me a hint on how I should configure petsc so
      that this works? Is there a way to enforce the c99 complex numbers
      even when calling petsc from c++? I always used <br>
    </p>
    <p>./configure ... --with-cc=gcc --with-cxx=g++ --with-fc=gfortran
      --download-mpich --with-clanguage=c --with-scalar-type=complex
      --with-precision=__float128 --download-f2cblaslapack<br>
    </p>
    <p>As I said, with my patch this works fine. Thanks in advance.</p>
    <p>Also I realized that parmetis does only support double and not
      float128 and so building petsc with float128 and parmetis crashes.
      I also made a patch for that, that just declares all parmetis
      relevant parameters as real_t instead of PetscReal. Would you be
      interested in including this patch? (its only 2 lines) <br>
    </p>
    <p>Thank you.</p>
    <p>Michael<br>
    </p>
    <br>
    <div class="moz-cite-prefix">Am 03.05.2017 um 18:08 schrieb Michael
      Gegg:<br>
    </div>
    <blockquote type="cite"
      cite="mid:828f0f41-96d8-efb1-310c-e8ca66fe06dd@tu-berlin.de">
      <p><br>
      </p>
      <br>
      <div class="moz-cite-prefix">Am 03.05.2017 um 16:27 schrieb
        Matthew Knepley:<br>
      </div>
      <blockquote
cite="mid:CAMYG4Gm0ofoNHgn5g7iAvs__xxUm5RRAixYffuroVcihTmu-cg@mail.gmail.com"
        type="cite">
        <div dir="ltr">
          <div class="gmail_extra">
            <div class="gmail_quote">On Wed, May 3, 2017 at 9:22 AM,
              Michael Gegg <span dir="ltr"><<a
                  href="mailto:michael.gegg@tu-berlin.de"
                  target="_blank">michael.gegg@tu-berlin.de</a>></span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
                Petsc developers,<br>
                <br>
                thank you for providing such a marvellous numerics
                package, we had/have a lot of fun using it. For our
                purposes it was necessary to use Petsc with c++,
                float128 and complex. Since this is not possible with
                the standard build we made a patch. It uses c style
                complex numbers as a workaround.<br>
                It can be used with the Parmetis package (there is a
                little fix in the interface there) and we have made a
                Slepc patch that then also allows to use c++, float128
                and complex.<br>
                It would be great if you could include it in the petsc
                software.<br>
                We checked the patch for v3.7.6 and v3.7.3 (latest Slepc
                release)<br>
              </blockquote>
              <div><br>
              </div>
              <div>One question. Why would you compile PETSc with C++ if
                you wanted to use C99 complex? You can do that with the
                C build, and call</div>
              <div>PETSc the same way from C++.</div>
              <div><br>
              </div>
            </div>
          </div>
        </div>
      </blockquote>
      No specific reason. Thanks for the hint, I tried it and it works.
      I could have saved some effort there, but I also learned a thing
      or two ;) I just didn't know that this was possible. <br>
      Thanks,<br>
      Michael<br>
      <blockquote
cite="mid:CAMYG4Gm0ofoNHgn5g7iAvs__xxUm5RRAixYffuroVcihTmu-cg@mail.gmail.com"
        type="cite">
        <div dir="ltr">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <div>  Thanks,</div>
              <div><br>
              </div>
              <div>    Matt</div>
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex"> With
                best regards,<br>
                <br>
                Michael Gegg<br>
              </blockquote>
            </div>
            <br>
            <br clear="all">
            <div><br>
            </div>
            -- <br>
            <div class="gmail_signature"
              data-smartmail="gmail_signature">What most experimenters
              take for granted before they begin their experiments is
              infinitely more interesting than any results to which
              their experiments lead.<br>
              -- Norbert Wiener</div>
          </div>
        </div>
      </blockquote>
      <br>
    </blockquote>
  </body>
</html>