aboutsummaryrefslogtreecommitdiffstats
path: root/math/petsc
diff options
context:
space:
mode:
authorbf <bf@FreeBSD.org>2013-03-30 22:29:40 +0800
committerbf <bf@FreeBSD.org>2013-03-30 22:29:40 +0800
commit59e552b782411927f5e9f9fee083419a89dfec77 (patch)
tree12079f8c6d04e12963d0ed66fc7ceb1648238e76 /math/petsc
parentb9e4a018471ae58c93a5059c011c167cc064ae8a (diff)
downloadfreebsd-ports-gnome-59e552b782411927f5e9f9fee083419a89dfec77.tar.gz
freebsd-ports-gnome-59e552b782411927f5e9f9fee083419a89dfec77.tar.zst
freebsd-ports-gnome-59e552b782411927f5e9f9fee083419a89dfec77.zip
fix the build after the math/suitesparse update
Reported by: miwi Approved by: portmgr
Diffstat (limited to 'math/petsc')
-rw-r--r--math/petsc/Makefile20
-rw-r--r--math/petsc/files/patch-src__mat__impls__aij__seq__umfpack__umfpack.c34
-rw-r--r--math/petsc/pkg-descr2
3 files changed, 43 insertions, 13 deletions
diff --git a/math/petsc/Makefile b/math/petsc/Makefile
index bb8d89960d0d..e6b71d102503 100644
--- a/math/petsc/Makefile
+++ b/math/petsc/Makefile
@@ -1,13 +1,9 @@
-# New ports collection makefile for: petsc
-# Date created: 25 September 2004
-# Whom: Thierry Thomas <thierry@pompo.net>
-#
+# Created by: Thierry Thomas <thierry@pompo.net>
# $FreeBSD$
-#
PORTNAME= petsc
DISTVERSION= 2.3.3-p0
-PORTREVISION= 6
+PORTREVISION= 7
PORTEPOCH= 1
CATEGORIES= math parallel
MASTER_SITES= ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/
@@ -51,9 +47,9 @@ TARGET= ${OPSYS:L}
PLIST_SUB= PFX=${PFX} TARGET=${TARGET}
.if !defined(WITHOUT_UMFPACK)
-UMFPACK_LIBS= umfpack.so,cholmod.so,colamd.so,amd.so
+UMFPACK_LIBS= umfpack.so,cholmod.so,colamd.so,amd.so,suitesparseconfig.so
L=${LOCALBASE}/lib/lib
-LIB_DEPENDS+= umfpack.1:${PORTSDIR}/math/suitesparse
+LIB_DEPENDS+= umfpack:${PORTSDIR}/math/suitesparse
CONFIGURE_ARGS+= --with-umfpack-include="${LOCALBASE}/include/suitesparse" \
--with-umfpack-lib="[${UMFPACK_LIBS:C/^/${L}/:C/,/, ${L}/g}]"
.endif
@@ -122,11 +118,11 @@ PLIST_SUB+= MPIUNI=""
WITH_ATLAS= yes
.endif
.if defined(WITH_ATLAS)
-LIB_DEPENDS+= atlas.2:${PORTSDIR}/math/atlas
+LIB_DEPENDS+= atlas:${PORTSDIR}/math/atlas
LIBBLASLAPACK= -L${LOCALBASE}/lib -lalapack -lcblas -lf77blas
CONFIGURE_ARGS+= --with-blas-lapack-lib="${LIBBLASLAPACK}"
.else
-LIB_DEPENDS+= lapack.4:${PORTSDIR}/math/lapack
+LIB_DEPENDS+= lapack:${PORTSDIR}/math/lapack
LIBBLASLAPACK= -L${LOCALBASE}/lib -llapack -lblas
CONFIGURE_ARGS+= --with-blas-lapack-lib="${LIBBLASLAPACK}"
.endif
@@ -160,7 +156,7 @@ CONFLICTS+= metis-4*
WITH_BLACS= yes
.endif
.if defined(WITH_BLACS) && defined(WITH_MPI)
-LIB_DEPENDS+= blacs.1:${PORTSDIR}/math/blacs
+LIB_DEPENDS+= blacs:${PORTSDIR}/math/blacs
CONFIGURE_ARGS+= --with_blacs=1 \
--with-blacs-include=${LOCALBASE}/include \
--with-blacs-lib=[${LOCALBASE}/lib/libblacsc.a,${LOCALBASE}/lib/libblacsf77.a,${LOCALBASE}/lib/libblacs.a]
@@ -168,7 +164,7 @@ CONFIGURE_ARGS+= --with_blacs=1 \
WITH_SCALAPACK= yes
. endif
. if defined(WITH_SCALAPACK)
-LIB_DEPENDS+= scalapack.1:${PORTSDIR}/math/scalapack
+LIB_DEPENDS+= scalapack:${PORTSDIR}/math/scalapack
CONFIGURE_ARGS+= --with-scalapack=1 \
--with-scalapack-dir=${LOCALBASE}
. endif
diff --git a/math/petsc/files/patch-src__mat__impls__aij__seq__umfpack__umfpack.c b/math/petsc/files/patch-src__mat__impls__aij__seq__umfpack__umfpack.c
new file mode 100644
index 000000000000..030e253cb259
--- /dev/null
+++ b/math/petsc/files/patch-src__mat__impls__aij__seq__umfpack__umfpack.c
@@ -0,0 +1,34 @@
+--- src/mat/impls/aij/seq/umfpack/umfpack.c.orig 2013-03-30 09:30:52.000000000 -0400
++++ src/mat/impls/aij/seq/umfpack/umfpack.c 2013-03-30 09:32:20.000000000 -0400
+@@ -153,7 +153,7 @@
+ PetscErrorCode ierr;
+ int m=A->rmap.n,n=A->cmap.n,*ai=mat->i,*aj=mat->j,status,*ra,idx;
+ PetscScalar *av=mat->a;
+- const char *strategy[]={"AUTO","UNSYMMETRIC","SYMMETRIC","2BY2"},
++ const char *strategy[]={"AUTO","UNSYMMETRIC","SYMMETRIC"},
+ *scale[]={"NONE","SUM","MAX"};
+ PetscTruth flg;
+
+@@ -189,14 +189,12 @@
+ case 0: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_AUTO; break;
+ case 1: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_UNSYMMETRIC; break;
+ case 2: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_SYMMETRIC; break;
+- case 3: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_2BY2; break;
+ }
+ }
+ ierr = PetscOptionsReal("-mat_umfpack_dense_col","Control[UMFPACK_DENSE_COL]","None",lu->Control[UMFPACK_DENSE_COL],&lu->Control[UMFPACK_DENSE_COL],PETSC_NULL);CHKERRQ(ierr);
+ ierr = PetscOptionsReal("-mat_umfpack_dense_row","Control[UMFPACK_DENSE_ROW]","None",lu->Control[UMFPACK_DENSE_ROW],&lu->Control[UMFPACK_DENSE_ROW],PETSC_NULL);CHKERRQ(ierr);
+ ierr = PetscOptionsReal("-mat_umfpack_amd_dense","Control[UMFPACK_AMD_DENSE]","None",lu->Control[UMFPACK_AMD_DENSE],&lu->Control[UMFPACK_AMD_DENSE],PETSC_NULL);CHKERRQ(ierr);
+ ierr = PetscOptionsReal("-mat_umfpack_block_size","Control[UMFPACK_BLOCK_SIZE]","None",lu->Control[UMFPACK_BLOCK_SIZE],&lu->Control[UMFPACK_BLOCK_SIZE],PETSC_NULL);CHKERRQ(ierr);
+- ierr = PetscOptionsReal("-mat_umfpack_2by2_tolerance","Control[UMFPACK_2BY2_TOLERANCE]","None",lu->Control[UMFPACK_2BY2_TOLERANCE],&lu->Control[UMFPACK_2BY2_TOLERANCE],PETSC_NULL);CHKERRQ(ierr);
+ ierr = PetscOptionsReal("-mat_umfpack_fixq","Control[UMFPACK_FIXQ]","None",lu->Control[UMFPACK_FIXQ],&lu->Control[UMFPACK_FIXQ],PETSC_NULL);CHKERRQ(ierr);
+ ierr = PetscOptionsReal("-mat_umfpack_aggressive","Control[UMFPACK_AGGRESSIVE]","None",lu->Control[UMFPACK_AGGRESSIVE],&lu->Control[UMFPACK_AGGRESSIVE],PETSC_NULL);CHKERRQ(ierr);
+
+@@ -291,7 +289,6 @@
+ ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_DENSE_ROW]: %g\n",lu->Control[UMFPACK_DENSE_ROW]);CHKERRQ(ierr);
+ ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_AMD_DENSE]: %g\n",lu->Control[UMFPACK_AMD_DENSE]);CHKERRQ(ierr);
+ ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_BLOCK_SIZE]: %g\n",lu->Control[UMFPACK_BLOCK_SIZE]);CHKERRQ(ierr);
+- ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_2BY2_TOLERANCE]: %g\n",lu->Control[UMFPACK_2BY2_TOLERANCE]);CHKERRQ(ierr);
+ ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_FIXQ]: %g\n",lu->Control[UMFPACK_FIXQ]);CHKERRQ(ierr);
+ ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_AGGRESSIVE]: %g\n",lu->Control[UMFPACK_AGGRESSIVE]);CHKERRQ(ierr);
+
diff --git a/math/petsc/pkg-descr b/math/petsc/pkg-descr
index d6d28af01289..7206a4e3e40d 100644
--- a/math/petsc/pkg-descr
+++ b/math/petsc/pkg-descr
@@ -6,4 +6,4 @@ techniques and Krylov subspace methods. PETSc provides several parallel sparse
matrix formats, including compressed row, block compressed row, and block
diagonal storage.
-WWW: http://www.mcs.anl.gov/petsc/
+WWW: http://www.mcs.anl.gov/petsc/