I decided to start fresh. Here is a little bit more detail:
I created the following directories:
/home/tobias/libMesh
/home/tobias/PETSc
/home/tobias/PETSc/petsc-install/
Extrated petsc-lite-3.6.2.tar.gz inside /home/tobias/PETSc
This created the directory
/home/tobias/PETSc/petsc-3.6.2/
Inside /home/tobias/PETSc/petsc-3.6.2/, I invoked
./configure --prefix=/home/tobias/PETSc/petsc-install/ --with-cc=gcc
--with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich
The config.log file is attached as configure_PETSc.log
Then, still inside /home/tobias/PETSc/petsc-3.6.2/, I invoked
make all test
The screen output was:
...
...
=========================================
gmake[1]: Leaving directory `/home/tobias/PETSc/petsc-3.6.2'
Now to install the libraries do:
make PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2 PETSC_ARCH=arch-linux2-c-debug
install
=========================================
Running test examples to verify correct installation
Using PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2 and
PETSC_ARCH=arch-linux2-c-debug
C/C++ example src/snes/examples/tutorials/ex19 run successfully with 1 MPI
process
C/C++ example src/snes/examples/tutorials/ex19 run successfully with 2 MPI
processes
Fortran example src/snes/examples/tutorials/ex5f run successfully with 1 MPI
process
Completed test examples
=========================================
Now to evaluate the computer systems you plan use - do:
make PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2 PETSC_ARCH=arch-linux2-c-debug
streams NPMAX=<number of MPI processes you intend to use>
Then, I executed make install:
make install
The result was:
*** Using PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2
PETSC_ARCH=arch-linux2-c-debug ***
*** Copying PETSc to DESTDIR location: /home/tobias/PETSc/petsc-install ***
====================================
Copy to DESTDIR /home/tobias/PETSc/petsc-install is now complete.
Before use - please copy/install over to specified prefix:
/home/tobias/PETSc/petsc-install/
====================================
/usr/bin/gmake --no-print-directory PETSC_ARCH=arch-linux2-c-debug
PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2 mpi4py-install petsc4py-install
gmake[1]: Nothing to be done for `mpi4py-install'.
gmake[1]: Nothing to be done for `petsc4py-install'.
To install libMesh:
Extrated libmesh-0.9.4.tar.gz inside /home/tobias/libMesh
This created the directory
/home/tobias/libMesh/libmesh-0.9.4/
Then, I created the follwing environment variables:
PETSC_DIR=/home/tobias/PETSc/petsc-install/
export PETSC_DIR
PETSC_ARCH=arch-linux2-c-debug
export PETSC_ARCH
Inside /home/tobias/libMesh/libmesh-0.9.4/, I configured as follows:
./configure PETSC_DIR=/home/tobias/PETSc/petsc-install/
PETSC_ARCH=arch-linux2-c-debug --enable-everything --enable-petsc
The summary was as follows:
----------------------------------- SUMMARY -----------------------------------
Package version.................... : libmesh-0.9.4
C++ compiler type.................. : gcc4.8
C++ compiler....................... : mpicxx
C compiler......................... : mpicc
Fortran compiler................... : mpif90
Build Methods...................... : dbg devel opt
CPPFLAGS...(dbg)................... : -DDEBUG -D_GLIBCXX_DEBUG
-D_GLIBCXX_DEBUG_PEDANTIC
CXXFLAGS...(dbg)................... : -std=gnu++11 -O0 -felide-constructors -g
-pedantic -W -Wall -Wextra -Wno-long-long -Wunused -Wpointer-arith -Wformat
-Wparentheses -Woverloaded-virtual -fopenmp -std=gnu++11
CFLAGS.....(dbg)................... : -g -Wimplicit -fopenmp
CPPFLAGS...(devel)................. :
CXXFLAGS...(devel)................. : -std=gnu++11 -O2 -felide-constructors -g
-pedantic -W -Wall -Wextra -Wno-long-long -Wunused -Wpointer-arith -Wformat
-Wparentheses -Wuninitialized -funroll-loops -fstrict-aliasing
-Woverloaded-virtual -Wdisabled-optimization -fopenmp -std=gnu++11
CFLAGS.....(devel)................. : -O2 -g -Wimplicit -funroll-loops
-fstrict-aliasing -fopenmp
CPPFLAGS...(opt)................... : -DNDEBUG
CXXFLAGS...(opt)................... : -std=gnu++11 -O2 -felide-constructors
-funroll-loops -fstrict-aliasing -Wdisabled-optimization -fopenmp -std=gnu++11
CFLAGS.....(opt)................... : -O2 -funroll-loops -fstrict-aliasing
-fopenmp
Install dir........................ : /usr/local
Build user......................... : tobias
Build host......................... : usbosnavdev-ludwig
Build architecture................. : x86_64-unknown-linux-gnu
Git revision....................... : external
Library Features:
library warnings................. : yes
adaptive mesh refinement......... : yes
blocked matrix/vector storage.... : no
complex variables................ : no
example suite.................... : yes
ghosted vectors.................. : yes
high-order shape functions....... : yes
unique-id support................ : yes
id size (boundaries)............. : 2 bytes
id size (dofs)................... : 4 bytes
id size (unique)................. : 8 bytes
id size (processors)............. : 2 bytes
id size (subdomains)............. : 2 bytes
infinite elements................ : yes
Dirichlet constraints............ : yes
node constraints................. : yes
parallel mesh.................... : no
performance logging.............. : yes
periodic boundary conditions..... : yes
reference counting............... : yes
shape function 2nd derivatives... : yes
stack trace files................ : yes
track node valence............... : yes
variational smoother............. : yes
xdr binary I/O................... : yes
providing libMesh::CommWorld..... : yes ***LEGACY FEATURE***
Optional Packages:
boost............................ : yes
cppunit.......................... : no
eigen............................ : yes
exodus........................... : yes
version....................... : v5.22
fparser.......................... : yes
build from version............ : release
glpk............................. : no
gmv.............................. : yes
gzstream......................... : yes
hdf5............................. : yes
laspack.......................... : no
libhilbert....................... : yes
metis............................ : yes
mpi.............................. : yes
nanoflann........................ : yes
nemesis.......................... : yes
version....................... : v5.22
netcdf........................... : yes
version....................... : 4
openmp........................... : yes
parmetis......................... : yes
petsc............................ : yes
version....................... : 3.6.2
slepc............................ : no
pthreads......................... : yes
qhull............................ : yes
sfcurves......................... : no
slepc............................ : no
tbb.............................. : yes
c++ threads...................... : yes
flavor........................ : std::thread
c++ rtti ........................ : yes
tecio............................ : yes
tecplot...(vendor binaries)...... : no
tetgen........................... : yes
triangle......................... : no
trilinos......................... : no
vtk.............................. : no
libmesh_optional_INCLUDES........ : -I/usr/include/eigen3 -I/usr/include
libmesh_optional_LIBS............ : -L/lib -lhdf5 -Wl,-rpath,/lib -lz
-L/usr/lib -ltbb -ltbbmalloc
-------------------------------------------------------------------------------
Configure complete, now type 'make' and then 'make install'.
---------------------------------------------
--------- Done Configuring libMesh ----------
---------------------------------------------
Then, I executed make.
That failed, seemingly because it could not find the PETSc include file
directory:
In file included from src/base/libmesh.C:62:0:
./include/libmesh/petsc_macro.h:93:19: fatal error: petsc.h: No such file or
directory
Starting over, I called make as follows:
C_INCLUDE_PATH=/home/tobias/PETSc/petsc-install/include
export C_INCLUDE_PATH
CPLUS_INCLUDE_PATH=/home/tobias/PETSc/petsc-install/include
export CPLUS_INCLUDE_PATH
make
Not, I get this error:
CXX src/partitioning/libmesh_dbg_la-parmetis_partitioner.lo
In file included from /home/tobias/PETSc/petsc-install/include/mpi.h:2216:0,
from ./contrib/parmetis/include/parmetis.h:17,
from src/partitioning/parmetis_partitioner.C:40:
/home/tobias/PETSc/petsc-install/include/mpicxx.h:2737:34: error: declaration
of C function 'void Parmetis::MPI::Init(int&, char**&)' conflicts with
extern void Init(int &, char **& );
^
/home/tobias/PETSc/petsc-install/include/mpicxx.h:2736:13: error: previous
declaration 'void Parmetis::MPI::Init()' here
extern void Init(void);
^
/home/tobias/PETSc/petsc-install/include/mpicxx.h:2739:45: error: declaration
of C function 'int Parmetis::MPI::Init_thread(int&, char**&, int)' conflicts
with
extern int Init_thread(int &, char **&, int );
^
/home/tobias/PETSc/petsc-install/include/mpicxx.h:2738:12: error: previous
declaration 'int Parmetis::MPI::Init_thread(int)' here
extern int Init_thread(int);
^
src/partitioning/parmetis_partitioner.C: In member function 'virtual void
libMesh::ParmetisPartitioner::_do_repartition(libMesh::MeshBase&, unsigned
int)':
src/partitioning/parmetis_partitioner.C:141:3: error: 'MPI_Comm' was not
declared in this scope
MPI_Comm mpi_comm = mesh.comm().get();
^
src/partitioning/parmetis_partitioner.C:141:3: note: suggested alternative:
In file included from ./contrib/parmetis/include/parmetis.h:17:0,
from src/partitioning/parmetis_partitioner.C:40:
/home/tobias/PETSc/petsc-install/include/mpi.h:279:13: note:
'Parmetis::MPI_Comm'
typedef int MPI_Comm;
^
src/partitioning/parmetis_partitioner.C:141:12: error: expected ';' before
'mpi_comm'
MPI_Comm mpi_comm = mesh.comm().get();
^
src/partitioning/parmetis_partitioner.C:162:41: error: 'mpi_comm' was not
declared in this scope
&mpi_comm);
^
make[1]: *** [src/partitioning/libmesh_dbg_la-parmetis_partitioner.lo] Error 1
make[1]: Leaving directory `/home/tobias/libMesh/libmesh-0.9.4'
make: *** [all-recursive] Error 1
________________________________
Von: John Peterson <[email protected]>
Gesendet: Mittwoch, 4. November 2015 17:19
An: tschroeder
Cc: libmesh-users
Betreff: Re: [Libmesh-users] Neumann boundary problem for Laplace equation
On Wed, Nov 4, 2015 at 2:49 PM, tschroeder
<[email protected]<mailto:[email protected]>> wrote:
You were right:
The mistake was in the PETSC_DIR variable.
configuring this way
./configure PETSC_DIR=/home/tobias/PETSc/petsc-3.6.2
PETSC_ARCH=arch-linux2-c-debug --enable-everything --enable-petsc --enable-mpi
> log.txt
gives me, among other errors, the messages below.
Makefile_config_petsc:1: /home/tobias/PETSc/petsc-3.6.2/conf/variables: No such
file or directory
make: *** No rule to make target
`/home/tobias/PETSc/petsc-3.6.2/conf/variables'. Stop.
Makefile_config_petsc:1: /home/tobias/PETSc/petsc-3.6.2/conf/variables: No such
file or directory
make: *** No rule to make target
`/home/tobias/PETSc/petsc-3.6.2/conf/variables'. Stop.
This is why I ended up using the incorrect PESC_DIR value:
It looks like your PETSC_DIR is not arranged in the usual way for installed
PETScs. When you built PETSc, did you configure with a --prefix and run make
install when it was done? You'll want to set PETSC_DIR to the directory you
choose for the prefix in order to get libmesh to find PETSc correctly.
--
John
------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users