Dear Dr. Bangerth, It seems that the package python-pytrilinos<http://packages.debian.org/sid/python-pytrilinos>was not installed, which has an infamous dependency problem of python<2.7 though I have python2.6. Therefore I have to switch to build trilinos without mpi myself.
List to the end of email is the summary of building dealii with *umfpack/petsc/trilinos without threads or mpi * Some tips I realized when I tried to compare dealii default/trilinos/petsc solvers. 1. Is it convenient for you to add an interface fpr PETScWrapper like void PETScWrappers::SolverBase::solve ( const SparseMatrix<http://www.dealii.org/developer/doxygen/deal.II/classTrilinosWrappers_1_1SparseMatrix.html>& *A*, ::Vector<http://www.dealii.org/developer/doxygen/deal.II/classTrilinosWrappers_1_1Vector.html>< double <http://www.dealii.org/developer/doxygen/deal.II/classdouble.html> > & *x*, const ::Vector<http://www.dealii.org/developer/doxygen/deal.II/classTrilinosWrappers_1_1Vector.html>< double <http://www.dealii.org/developer/doxygen/deal.II/classdouble.html> > & *b*, const PreconditionBase<http://www.dealii.org/developer/doxygen/deal.II/classTrilinosWrappers_1_1PreconditionBase.html>& *preconditioner* ) so that we won't have to use PETScWrapper::Vector, just like there are two versions of TrilinosWrappers::SolveBase::solvefor, which makes life much easier :) 2. Comparing for instance TrilinosWrappers::SolverCG::SolverCG ( SolverControl<http://www.dealii.org/developer/doxygen/deal.II/classSolverControl.html>& *cn*, const AdditionalData<http://www.dealii.org/developer/doxygen/deal.II/structTrilinosWrappers_1_1SolverBase_1_1AdditionalData.html>& *data* = AdditionalData<http://www.dealii.org/developer/doxygen/deal.II/structTrilinosWrappers_1_1SolverBase_1_1AdditionalData.html>() ) <http://www.dealii.org/developer/doxygen/deal.II/classPETScWrappers_1_1SolverCG.html#ae11665300e3bf835733907d41488ed06>PETScWrappers::SolverCG::SolverCG ( SolverControl<http://www.dealii.org/developer/doxygen/deal.II/classSolverControl.html>& *cn*, const MPI_Comm & *mpi_communicator* = PETSC_COMM_SELF, const AdditionalData<http://www.dealii.org/developer/doxygen/deal.II/structPETScWrappers_1_1SolverCG_1_1AdditionalData.html>& *data* = AdditionalData<http://www.dealii.org/developer/doxygen/deal.II/structPETScWrappers_1_1SolverCG_1_1AdditionalData.html> () ) The AdditionalData is almost always used for SolverGMRES, but mpi_comminicator for PETSc w/o MPI scarcely useful. To make it consistent with TrilinosWrappers, do you think it is better to switch 2nd and 3rd parameter so that we can skip PETSC_COMM_SELF for non-mpi PETSc build, but instead switching library for same coding by using PETScWrappers::SolverCG; using TrilinosWrappers::SolverCG; 3. Trilinos/PETSc SparseMatrix/Vector/PreconditionXXX does not require <double>, while dealii::SparseMatrix<double>, Trilinos/PETSc SolverXXX do not require argument, while dealii::SolverXXX<Vector<double> >, is it convenient to provide a default <T=double> <T=Vector<double> to make it more consistent? Forgive me if I am providing wrong suggestions :) #################################################################### *## PETSc from Installing PETSc in /usr/local* * * sudo mkdir /usr/local/lib/petsc sudo chown jyin1:jyin1 /usr/local/lib/petsc wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.2-p5.tar.gz tar xvf petsc-lite-3.2-p5.tar.gz cd petsc-3.2-p5 #export PETSC_DIR=$PWD #only if PETSC_DIR other value ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 --with-debugging=0 --with-shared-libraries --with-x=0 --CFLAGS='-O3' \ PETSC_ARCH=linux-gnu-c-opt #make install #already install by make in current folder * ## Trilinos, from deal.II website * mkdir build cd build cmake -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \ -D Trilinos_ENABLE_Sacado:BOOL=ON \ -D Trilinos_ENABLE_Stratimikos:BOOL=ON \ -D CMAKE_BUILD_TYPE:STRING=RELEASE \ -D CMAKE_CXX_FLAGS:STRING="-g -O3" \ -D CMAKE_C_FLAGS:STRING="-g -O3" \ -D CMAKE_FORTRAN_FLAGS:STRING="-g -O5" \ -D Trilinos_EXTRA_LINK_FLAGS:STRING="-lgfortran" \ -D CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE \ -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \ -D TPL_ENABLE_MPI:BOOL=OFF \ -D CMAKE_INSTALL_PREFIX:PATH=/usr/local \ -D BUILD_SHARED_LIBS:BOOL=ON .. #add #include <stddef.h> to packages/teuchos/src/Teuchos_ConfigDefs.hpp in order to get rid of error: 'ptrdiff_t' does not name a type... #add #ifndef _GLIBCXX_USE_C99_MATH before namespace std { ... } #endif to packages/sacado/src/Sacado_cmath.hpp according to dealii FAQ. make sudo make install *## deal.II disable-threads no mpi * cd ~/svn/deal.II ./configure --with-umfpack-include=/usr/include/suitesparse --with-umfpack-libs=/usr/lib \ --with-petsc=/usr/local/lib/petsc/petsc-3.2-p5 --with-petsc-arch=linux-gnu-c-opt \ --with-trilinos-include=/usr/local/include --with-trilinos-libs=/usr/local/lib \ --with-blas --with-lapack \ --disable-threads \ #--enable-mpi --with-metis-include=/usr/include/metis --with-metis-libs=/usr/lib #--with-petsc=/usr/local/lib/petsc/petsc-3.2-p5 --with-petsc-arch=linux-gnu-c-opt #compared to debian MPI: --with-petsc=/usr/lib/petscdir/3.1 --with-petsc-arch=linux-gnu-c-opt make add -L/usr/local/lib/petsc/petsc- 3.2-p5/linux-gnu-c-opt/lib to common/Make.global_options LDFLAGS #why do we need add this again? Jichao Yin
_______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
