Wolfgang,

> > Attached is a debug patch which autodetects complex configuration
> > of petsc for 2.3.* and 3.*.*. (Debug in the sense that nothing really
> > happens except autodetection). I have no clean ideas how to make this
> > work correctly for 2.2.1, and in this case (unfortunately) dealii
> > reports "not found". It would be quite straightforward (and probably
> > adventageous) to support 3.*.*+ for complex petsc only, like the
> > SlepcWrappers do.
>
> I'm ok with this. Your patch tests for PETSc 2.2.x, not 2.3.x, by the way. Can
> you re-check?

There is no way in this universe that that patch should have worked for
PETSc 2.2*; there is no definition of PETSC_USE_COMPLEX in that version,
there was simply a compiler flag. Something very bad must have gone wrong!
See:
http://www.mcs.anl.gov/petsc/petsc-2/documentation/changes/230.html
for a description of the changes made to 2.3*, which, of course,
changes again in 3.0*   ;-)

Attached is the total patch I think should be ok!!

Things to note:
(1) I have added the ability to grab libmpiuni.* for PETSc 3.0*; I have no
idea why this was missing, I must have blissfully ignored this during the
upgrades earlier this year.
(2) Complex PETSc is *not* detected by PETSc 2.2*, it is ignored. In fact,
the configure script will first check for lib_g++ and if this fails give
up, and if lib_g++ is found use it! A message is given at check-time to
reflect this behaviour.
(3) If (and only if) PETSc complex is found, the macro
DEAL_II_USE_PETSC_COMPLEX is defined. (PETSc 2.3* 3.0* dev). If it is not
found, we say so during configure...

Let me add my two cents worth (dwa groszy?) on (2) above:
(a) We should not be actively supporting backwards, only forwards. We want
to start supporting complex PETSc today and the version is 3.0.0-p8, so we
should start from there. (Backwards compatibility for complex PETSc can
be added on a "when it is needed" basis.)
(b) I will grudgingly support complex for PETSc 2.3* if it is really
wanted, many Linux flavours still have this as the default option, but I
think we should drop it for complex PETSc. Let support for complex be like
support for SLEPc, only since 3.0*; that would be alot easier to
set up and then maintain., in that order   :-)

Where do we go from here? I would suggest marking out anything that does
not compile, let dealii compile with PETSc 3.0* complex and then add on a
"when it is needed basis". Probably this will be quite fast, since I have
alot of complex problems I wish to solve... and probably so do others.

Best,
        Toby

-----

Toby D. Young
Philosohy-Physics
Assistant Professor
Polish Academy of Sciences
Warszawa, Polska

www:   http://www.ippt.gov.pl/~tyoung
skype: stenografia

On Mon, 21 Sep 2009, Wolfgang Bangerth wrote:

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to