← Back to team overview

dolfin team mailing list archive

Re: Issues when compiling DOLFIN without MPI

 

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 ;) )

--
Marie E. Rognes
Ph.D Fellow, Centre of Mathematics for Applications, University of Oslo
http://folk.uio.no/meg



Follow ups

References