Hello, I am trying to upload deal.II into Debian unstable, and am running into two problems. First, the QPL is incompatible with the GPL of the functionparser library, and Debian won't accept anything with the potential for a copyright violation suit. Can deal.II get along without functionparser?
Second, Debian unstable has PETSc 3.0 now, but the deal.II build with it
is running into trouble:
In file included from
/home/hazelsct/deal.ii-6.1.0/lac/include/lac/petsc_block_vector.h:18,
from
/home/hazelsct/deal.ii-6.1.0/lac/include/lac/petsc_block_sparse_matrix.h:21,
from source/petsc_block_sparse_matrix.cc:14:
/home/hazelsct/deal.ii-6.1.0/lac/include/lac/petsc_vector.h: In member function
'dealii::PETScWrappers::Vector& dealii::PETScWrappers::Vector::operator=(const
dealii::PETScWrappers::MPI::Vector&)':
/home/hazelsct/deal.ii-6.1.0/lac/include/lac/petsc_vector.h:301: error: cannot
convert '_p_Vec* const' to '_p_VecScatter*' for argument '1' to 'PetscErrorCode
VecScatterBegin(_p_VecScatter*, _p_Vec*, _p_Vec*, InsertMode, ScatterMode)'
/home/hazelsct/deal.ii-6.1.0/lac/include/lac/petsc_vector.h:305: error: cannot
convert '_p_Vec* const' to '_p_VecScatter*' for argument '1' to 'PetscErrorCode
VecScatterEnd(_p_VecScatter*, _p_Vec*, _p_Vec*, InsertMode, ScatterMode)'
I don't see anything in SVN which would fix this. I also had to use the
attached patch to get it to even start to compile.
Have you worked on porting to PETSc 3.0 yet?
Thanks,
-Adam
--
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools
http://www.opennovation.com/
--- deal.ii-6.1.0/aclocal.m4~ 2008-04-25 20:11:57.000000000 -0400
+++ deal.ii-6.1.0/aclocal.m4 2009-04-08 20:38:39.000000000 -0400
@@ -5187,6 +5187,14 @@
fi
;;
+ 3.0*)
+ if test ! -d $DEAL_II_PETSC_DIR/$DEAL_II_PETSC_ARCH/lib \
+ ; then
+ AC_MSG_ERROR([PETSc has not been compiled for the architecture
+ specified with --with-petsc-arch])
+ fi
+ ;;
+
*)
AC_MSG_ERROR([Unknown PETSc version])
;;
--- deal.ii-6.1.0/common/Make.global_options.in~ 2008-03-04 16:08:20.000000000 -0500
+++ deal.ii-6.1.0/common/Make.global_options.in 2009-04-08 20:56:51.000000000 -0400
@@ -119,10 +119,15 @@
# twiddle with whatever is necessary to link in PETSc.
#
# to make things more fun, the whole scheme was changed in petsc 2.3.0
+# and again in petsc 3.0.0!
#
# also sort of annoying is the fact that on Mac OS X, the trick with the
# one library doesn't appear to work. Instead of a single library, we therefore
# have to list all of them, at least if we are using shared libs.
+ifeq ($(DEAL_II_PETSC_VERSION_MAJOR),3)
+ lib-contrib-petsc-path.g = $(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib
+ lib-contrib-petsc-path.o = $(DEAL_II_PETSC_DIR)/$(DEAL_II_PETSC_ARCH)/lib
+else
ifeq ($(DEAL_II_PETSC_VERSION_MINOR),2)
lib-contrib-petsc-path.g = $(DEAL_II_PETSC_DIR)/lib/libg_c++/$(DEAL_II_PETSC_ARCH)
lib-contrib-petsc-path.o = $(DEAL_II_PETSC_DIR)/lib/libO_c++/$(DEAL_II_PETSC_ARCH)
@@ -130,6 +135,7 @@
lib-contrib-petsc-path.g = $(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)
lib-contrib-petsc-path.o = $(DEAL_II_PETSC_DIR)/lib/$(DEAL_II_PETSC_ARCH)
endif
+endif
ifeq ($(findstring darwin,$(TARGET)),)
lib-contrib-petsc.g = $(LIBDIR)/libpetscall.g$(lib-suffix)
lib-contrib-petsc.o = $(LIBDIR)/libpetscall$(lib-suffix)
@@ -230,11 +235,15 @@
# set PETSC_DIR and PETSC_ARCH to be used in variables file
PETSC_DIR = $(DEAL_II_PETSC_DIR)
PETSC_ARCH = $(DEAL_II_PETSC_ARCH)
+ ifeq ($(DEAL_II_PETSC_VERSION_MAJOR),3)
+ include $(DEAL_II_PETSC_DIR)/conf/variables
+ else
ifeq ($(DEAL_II_PETSC_VERSION_MINOR),2)
include $(DEAL_II_PETSC_DIR)/bmake/$(DEAL_II_PETSC_ARCH)/variables
else
include $(DEAL_II_PETSC_DIR)/bmake/common/variables
endif
+ endif
CXXFLAGS.g += $(GCXX_PETSCFLAGS)
CXXFLAGS.o += $(OCXX_PETSCFLAGS)
endif
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
