← Back to team overview

dolfin team mailing list archive

Re: Issues when compiling DOLFIN without MPI

 

Did you build shared or static PETSc libraries? Try shared if you haven't done so.

Garth

Marie Rognes wrote:
Matthew Knepley wrote:
On Wed, Aug 20, 2008 at 12:35 PM, Anders Logg <logg@xxxxxxxxx> wrote:
Marie says:
Hurray! My DOLFIN is back among the living. (Now, I just need to get it
to understand that SLEPc is hanging around as well.)

Just adding -lmpiuni to petsc.pc did not help. Adding the output of

   echo -e 'include ${PETSC_DIR}/bmake/common/base\nlink:\n\t-@echo
${PETSC_LIB}' |     make -f - link

did.

I keep struggling with this.

Adding the above to my petsc.pc enables compilation of DOLFIN and the demos run beautifully. However, it seems that it "suddenly" drops SLEPc...

    meg in dolfin >> ./scons.local enableMpi=no withPetscDir=$PETSC_DIR
    withSlepcDir=$SLEPC_DIR withTrilinosDir=$TRILINOS_DIR

gives:

    scons: Reading SConscript files ...
    Using options from scons/options.cache
    ...
    Checking for trilinos... yes
    ...
    Checking for petsc... yes
    ...
    Checking for slepc... yes

    Resolving compiler... done
     Some tests failed using c++
     Switching to use g++ instead.
    Found optional package: petsc
    Found optional package: umfpack
    Found optional package: gts
    Found optional package: trilinos
    Unable to find optional package: slepc
    Unable to find optional package: scotch
    Unable to find optional package: cholmod
    Unable to find optional package: mtl4
    Enabling compilation of PyDOLFIN


I'm afraid I don't really know where to start looking... :(


However, there should probably be a prettier way of doing this?
Yes, of course. The prettier way is to actually use the information we give

  1) at the end of configure

  2) in the configure.log

  3) in RDict.db (Python pickle)

  4) in the makefile (make getincludedirs, make getlinklibs)

  5) in the conf files (petscvariables, petsconf.h)

instead of ignoring it and hardcoding something into scons.

  Matt
We don't. We get the include and link flags from the PETSc Makefiles.
I've attached the pkgconfig generator for PETSc. Take a look at it.
Okay, I looked and this piece of code should produce the correct MPIUNI
flags (I checked that it does on my machine). It is a little unsafe since it
ignores all the other potential dependecies by using PETSC_LIB_BASIC.
These do not just include external packages, but sometimes libraries to
make the compilers work. I am guessing you used that in order to install
two different copies of UMFPACK.


Well, either I have messed something up somewhere, or there must be something that goes wrong with the generation of the pkg-config file for petsc? (Considering that everything does not work automagically ;) )





Follow ups

References