aboutsummaryrefslogtreecommitdiffstats
path: root/math
diff options
context:
space:
mode:
authorthierry <thierry@FreeBSD.org>2004-11-16 06:16:27 +0800
committerthierry <thierry@FreeBSD.org>2004-11-16 06:16:27 +0800
commitb6277672424125403f687979ccad2bfddc7bd6d3 (patch)
tree5e26035655618425dea35c4864f6c45c421ba3a1 /math
parentecdabef7736e25a1468c88fc2ba394c6d382e07a (diff)
downloadfreebsd-ports-gnome-b6277672424125403f687979ccad2bfddc7bd6d3.tar.gz
freebsd-ports-gnome-b6277672424125403f687979ccad2bfddc7bd6d3.tar.zst
freebsd-ports-gnome-b6277672424125403f687979ccad2bfddc7bd6d3.zip
Add blocksolve95 3.0, sofware for the efficient solution of large,
sparse linear systems.
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/blocksolve95/Makefile60
-rw-r--r--math/blocksolve95/distinfo2
-rw-r--r--math/blocksolve95/files/BSman3.inc85
-rw-r--r--math/blocksolve95/files/patch-bmake::common19
-rw-r--r--math/blocksolve95/files/patch-bmake::freebsd::freebsd37
-rw-r--r--math/blocksolve95/files/patch-bmake::freebsd::freebsd.O8
-rw-r--r--math/blocksolve95/files/patch-bmake::freebsd::freebsd.site35
-rw-r--r--math/blocksolve95/files/patch-examples::makefile11
-rw-r--r--math/blocksolve95/files/patch-include::BSdepend.h14
-rw-r--r--math/blocksolve95/pkg-descr15
-rw-r--r--math/blocksolve95/pkg-plist43
12 files changed, 330 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index 87ca4eb7eedf..d4398619905f 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -21,6 +21,7 @@
SUBDIR += blacs
SUBDIR += blas
SUBDIR += blitz++
+ SUBDIR += blocksolve95
SUBDIR += calc
SUBDIR += calcoo
SUBDIR += calctool
diff --git a/math/blocksolve95/Makefile b/math/blocksolve95/Makefile
new file mode 100644
index 000000000000..513db1960492
--- /dev/null
+++ b/math/blocksolve95/Makefile
@@ -0,0 +1,60 @@
+# New ports collection makefile for: blocksolve95
+# Date created: 03 October 2004
+# Whom: Thierry Thomas <thierry@pompo.net>
+#
+# $FreeBSD$
+#
+
+PORTNAME= blocksolve95
+PORTVERSION= 3.0
+CATEGORIES= math parallel
+MASTER_SITES= ftp://info.mcs.anl.gov/pub/BlockSolve95/ \
+ ftp://ftp.irisa.fr/pub/mirrors/BlockSolve95/
+DISTNAME= BlockSolve95
+EXTRACT_SUFX= .tar.Z
+DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Sofware for the efficient solution of large, sparse linear systems
+
+LIB_DEPENDS= f77blas.1:${PORTSDIR}/math/atlas
+BUILD_DEPENDS= ${MPIDIR}/lib/libmpich.a:${PORTSDIR}/net/mpich
+RUN_DEPENDS= ${MPIDIR}/bin/mpirun:${PORTSDIR}/net/mpich
+
+USE_XLIB= yes
+USE_GMAKE= yes
+MAKEFILE= makefile
+MAKE_ARGS= GMAKE=${GMAKE} PETSC_ARCH=${PETSC_ARCH} BOPT=${BOPT}
+
+MPIDIR= ${LOCALBASE}/mpich
+PETSC_ARCH= freebsd
+BOPT?= O
+
+FFLAGS?= -O2
+
+INCLUDES= BMmsg.h BSdepend.h BSlog.h BSmy_blas.h BSprivate.h BSsparse.h
+PORTDOCS= manual.ps
+
+.include <bsd.port.pre.mk>
+
+do-install:
+ ${INSTALL_DATA} ${WRKSRC}/lib/lib${BOPT}/${PETSC_ARCH}/libBS95.a \
+ ${PREFIX}/lib
+ ${INSTALL_DATA} ${INCLUDES:S|^|${WRKSRC}/include/|} ${PREFIX}/include
+ ${INSTALL_MAN} ${MAN3:S|^|${WRKSRC}/doc/man/man3/|} ${MANPREFIX}/man/man3
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/doc/manual/|} ${DOCSDIR}
+ ${MKDIR} ${EXAMPLESDIR}
+ ${INSTALL_DATA} ${WRKSRC}/examples/* ${EXAMPLESDIR}
+ @${RM} ${EXAMPLESDIR}/makefile.orig
+.endif
+
+.if defined(MAINTAINER_MODE)
+test: build
+ @(cd ${BUILD_WRKSRC}/examples; \
+ ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} bsrunexamples clean)
+.endif
+
+.include "${FILESDIR}/BSman3.inc"
+.include <bsd.port.post.mk>
diff --git a/math/blocksolve95/distinfo b/math/blocksolve95/distinfo
new file mode 100644
index 000000000000..b6cdbbb8389e
--- /dev/null
+++ b/math/blocksolve95/distinfo
@@ -0,0 +1,2 @@
+MD5 (blocksolve95-3.0/BlockSolve95.tar.Z) = 8b7cc41f0fe6e9a7b53ab0f4697b7cae
+SIZE (blocksolve95-3.0/BlockSolve95.tar.Z) = 655906
diff --git a/math/blocksolve95/files/BSman3.inc b/math/blocksolve95/files/BSman3.inc
new file mode 100644
index 000000000000..9b260ff076ad
--- /dev/null
+++ b/math/blocksolve95/files/BSman3.inc
@@ -0,0 +1,85 @@
+MAN3= BSb_back_solve.3 \
+ BSb_backward.3 \
+ BSb_for_solve.3 \
+ BSb_forward.3 \
+ BSback_solve.3 \
+ BSback_solve1.3 \
+ BSbackward.3 \
+ BSbackward1.3 \
+ BSbjacobi.3 \
+ BScopy_nz.3 \
+ BScopy_par_mat.3 \
+ BScreate_ctx.3 \
+ BSctx_print.3 \
+ BSctx_set_cs.3 \
+ BSctx_set_ct.3 \
+ BSctx_set_err.3 \
+ BSctx_set_guess.3 \
+ BSctx_set_id.3 \
+ BSctx_set_is.3 \
+ BSctx_set_max_it.3 \
+ BSctx_set_method.3 \
+ BSctx_set_np.3 \
+ BSctx_set_num_rhs.3 \
+ BSctx_set_pr.3 \
+ BSctx_set_pre.3 \
+ BSctx_set_print_log.3 \
+ BSctx_set_ps.3 \
+ BSctx_set_restart.3 \
+ BSctx_set_rt.3 \
+ BSctx_set_scaling.3 \
+ BSctx_set_si.3 \
+ BSctx_set_tol.3 \
+ BSeasy_A.3 \
+ BSfactor.3 \
+ BSfinalize.3 \
+ BSfor_solve.3 \
+ BSfor_solve1.3 \
+ BSforward.3 \
+ BSforward1.3 \
+ BSfree_comm.3 \
+ BSfree_copy_par_mat.3 \
+ BSfree_ctx.3 \
+ BSfree_easymat.3 \
+ BSfree_off_map.3 \
+ BSfree_par_mat.3 \
+ BSfree_reperm.3 \
+ BSfree_spmat.3 \
+ BSfreeg2l.3 \
+ BSfreel2g.3 \
+ BSget_diag.3 \
+ BSglob2loc.3 \
+ BSglob2proc.3 \
+ BSglobal_flops.3 \
+ BSglobal_nnz.3 \
+ BSglobal_num_cliques.3 \
+ BSglobal_num_inodes.3 \
+ BSinit.3 \
+ BSinv_diag_block.3 \
+ BSloc2glob.3 \
+ BSlocal_flops.3 \
+ BSlocal_nnz.3 \
+ BSlocal_num_cliques.3 \
+ BSlocal_num_inodes.3 \
+ BSmain_perm.3 \
+ BSmain_reperm.3 \
+ BSmake_off_map.3 \
+ BSmat_subtract.3 \
+ BSnum_colors.3 \
+ BSoffset.3 \
+ BSpar_gmres.3 \
+ BSpar_isolve.3 \
+ BSpar_solve.3 \
+ BSpar_sym_solve.3 \
+ BSprint_log.3 \
+ BSsave_diag.3 \
+ BSscale_diag.3 \
+ BSset_diag.3 \
+ BSset_diagv.3 \
+ BSset_mat_icc_storage.3 \
+ BSset_mat_symmetric.3 \
+ BSsetup_block.3 \
+ BSsetup_factor.3 \
+ BSsetup_forward.3 \
+ BStri_mult.3 \
+ BStri_solve.3
diff --git a/math/blocksolve95/files/patch-bmake::common b/math/blocksolve95/files/patch-bmake::common
new file mode 100644
index 000000000000..7c426bf835a8
--- /dev/null
+++ b/math/blocksolve95/files/patch-bmake::common
@@ -0,0 +1,19 @@
+--- bmake/common.orig Tue Jan 9 16:35:45 1996
++++ bmake/common Sun Oct 3 23:03:55 2004
+@@ -161,13 +161,13 @@
+ #
+ # Builds library - fast version
+ libfast: chkpetsc_dir $(SOURCEC) $(SOURCEF)
+- @-if [ "$(SOURCEC)" != "" ] ; then \
++ -if [ "$(SOURCEC)" != "" ] ; then \
+ $(CC) -c $(CFLAGS) $(BASEOPT) $(SOURCEC) ;\
+ fi
+- @-if [ "$(SOURCEF)" != "" ] ; then \
++ -if [ "$(SOURCEF)" != "" ] ; then \
+ $(FC) -c $(FFLAGS) $(BASEOPTF) $(SOURCEF) ;\
+ fi
+- @-if [ "$(OBJS)" != " " ] ; then \
++ -if [ "$(OBJS)" != " " ] ; then \
+ $(AR) cr $(LIBNAME) $(OBJS); \
+ $(RM) -f $(OBJS); \
+ fi
diff --git a/math/blocksolve95/files/patch-bmake::freebsd::freebsd b/math/blocksolve95/files/patch-bmake::freebsd::freebsd
new file mode 100644
index 000000000000..d3334f6431fc
--- /dev/null
+++ b/math/blocksolve95/files/patch-bmake::freebsd::freebsd
@@ -0,0 +1,37 @@
+--- bmake/freebsd/freebsd.orig Tue Jan 9 16:40:08 1996
++++ bmake/freebsd/freebsd Sun Oct 3 18:12:06 2004
+@@ -1,13 +1,13 @@
+
+-CC = gcc -DPARCH_freebsd
+-FC = f77
++CC += -DPARCH_freebsd
++#FC = f77
+ AR = ar
+ RM = rm -f *.c.*
+-OMAKE = gnumake --no-print-directory
++OMAKE = $(GMAKE)
+ RANLIB = ranlib
+ SHELL = /bin/sh
+-CLINKER = gcc $(BASEOPT)
+-FLINKER = f77 $(BASEOPTF)
++CLINKER = $(CC) $(BASEOPT)
++FLINKER = $(FC) $(BASEOPTF)
+ CONF = -DHAVE_PWD_H -DHAVE_MALLOC_H -DHAVE_STRING_H \
+ -DHAVE_SWAPPED_BYTES -DHAVE_X11
+ SYS_LIB =
+@@ -33,13 +33,13 @@
+ $(RM) $*.o
+ .F.o:
+ $(RM) $*.f
+- cpp $(PETSC_INCLUDE) $*.F > $*.f
++ $(CPP) $(PETSC_INCLUDE) $*.F > $*.f
+ $(FC) -c $(FFLAGS) $(BASEOPTF) $*.f
+ $(RM) $*.f
+
+ .F.a:
+ $(RM) $*.f
+- cpp $(PETSC_INCLUDE) $*.F > $*.f
++ $(CPP) $(PETSC_INCLUDE) $*.F > $*.f
+ $(FC) -c $(FFLAGS) $(BASEOPTF) $*.f
+ $(RM) $*.f
+ $(AR) cr $(LIBNAME) $*.o
diff --git a/math/blocksolve95/files/patch-bmake::freebsd::freebsd.O b/math/blocksolve95/files/patch-bmake::freebsd::freebsd.O
new file mode 100644
index 000000000000..1829d187a1a5
--- /dev/null
+++ b/math/blocksolve95/files/patch-bmake::freebsd::freebsd.O
@@ -0,0 +1,8 @@
+--- bmake/freebsd/freebsd.O.orig Thu Dec 14 20:49:35 1995
++++ bmake/freebsd/freebsd.O Sun Oct 3 23:08:37 2004
+@@ -1,3 +1,3 @@
+-BASEOPT = -O -Wall -Wshadow -fomit-frame-pointer -DINLINE_FOR \
++BASEOPT = $(CFLAGS) -fomit-frame-pointer -DINLINE_FOR \
+ -DPETSC_LOG -DPETSC_DEBUG -Dlint -DPETSC_BOPT_O
+-BASEOPTF = -O4
++BASEOPTF = $(FFLAGS)
diff --git a/math/blocksolve95/files/patch-bmake::freebsd::freebsd.site b/math/blocksolve95/files/patch-bmake::freebsd::freebsd.site
new file mode 100644
index 000000000000..abf2fceb9cba
--- /dev/null
+++ b/math/blocksolve95/files/patch-bmake::freebsd::freebsd.site
@@ -0,0 +1,35 @@
+--- ./bmake/freebsd/freebsd.site.orig Thu Feb 15 22:53:34 1996
++++ ./bmake/freebsd/freebsd.site Sun Oct 3 20:40:47 2004
+@@ -15,24 +15,24 @@
+ # Location of BLAS and LAPACK. These libraries are available via Netlib,
+ # or see $(BS_DIR)/readme for information on retrieving a subset.
+ #
+-BLAS_LIB = /home/bsmith/lapack/blas_freebsd.a $(FC_LIB)
+-LAPACK_LIB = /home/bsmith/lapack/lapack_freebsd.a
++BLAS_LIB = -lf77blas -lcblas -latlas -lg2c -lm
++LAPACK_LIB = -L$(LOCALBASE)/lib -lalapack
+ #
+ # Location of X-windows software
+ #
+-X11_INCLUDE =
++X11_INCLUDE = -I$(X11BASE)/include
+ X11_LIB = -lX11
+ #
+ # Location of MPI (Message Passing Interface) software
+ #
+-MPI_LIB = /usr/local/mpi/lib/freebsd/ch_p4/libmpi.a
+-MPI_INCLUDE = -I/usr/local/mpi/include
+-MPIRUN = /usr/local/mpi/bin/mpirun
++MPI_LIB = $(LOCALBASE)/mpich/lib/libmpich.a
++MPI_INCLUDE = -I$(LOCALBASE)/mpich/include
++MPIRUN = $(LOCALBASE)/mpich/bin/mpirun
+ #
+ # Location of BlockSolve95
+ #
+-BS_INCLUDE =
+-BS_LIB =
++BS_INCLUDE = $(PETSC_INCLUDE)
++BS_LIB = $(BS_DIR)/lib/lib$(BOPT)/$(PETSC_ARCH)/libBS95.a
+ #
+ # PCONF - indicates which external packages are available at your site
+ #
diff --git a/math/blocksolve95/files/patch-examples::makefile b/math/blocksolve95/files/patch-examples::makefile
new file mode 100644
index 000000000000..d79080a58e17
--- /dev/null
+++ b/math/blocksolve95/files/patch-examples::makefile
@@ -0,0 +1,11 @@
+--- examples/makefile.orig Thu Oct 17 22:15:08 1996
++++ examples/makefile Sun Oct 3 21:38:26 2004
+@@ -19,7 +19,7 @@
+ $(MPI_LIB) $(FC_LIB) $(SYS_LIB) -lm
+ LINCLUDE = $(SOURCEH)
+
+-bsrunexamples:
++bsrunexamples: $(EXAMPLES_1)
+ -@echo ">>>>>> Running examples in example directory <<<<<<"
+ -@$(MPIRUN) -np 4 grid0.$(PETSC_ARCH) 2 2 1 10 10 10
+ -@$(MPIRUN) -np 4 grid1.$(PETSC_ARCH) 2 2 1 10 10 10
diff --git a/math/blocksolve95/files/patch-include::BSdepend.h b/math/blocksolve95/files/patch-include::BSdepend.h
new file mode 100644
index 000000000000..a6868374dc19
--- /dev/null
+++ b/math/blocksolve95/files/patch-include::BSdepend.h
@@ -0,0 +1,14 @@
+--- include/BSdepend.h.orig Tue Jul 8 21:10:10 1997
++++ include/BSdepend.h Sun Oct 3 18:23:32 2004
+@@ -16,6 +16,11 @@
+ #define MPI_Aint int
+
+ #include <stdio.h>
++
++#if defined(PARCH_freebsd)
++#include <stdlib.h>
++#endif
++
+ #if defined(PARCH_sun4) && !defined(__cplusplus) && defined(_Gnu_)
+ extern int fprintf(FILE*,const char*,...);
+ extern void sscanf(char *,...);
diff --git a/math/blocksolve95/pkg-descr b/math/blocksolve95/pkg-descr
new file mode 100644
index 000000000000..3afae001e3de
--- /dev/null
+++ b/math/blocksolve95/pkg-descr
@@ -0,0 +1,15 @@
+BlockSolve95 is a scalable parallel software library primarily intended for the
+solution of sparse linear systems that arise from physical models, especially
+problems involving multiple degrees of freedom at each node. For example, when
+the finite element method is used to solve practical problems in structural
+engineering, each node typically has two to five degrees of freedom;
+BlockSolve95 is designed to take advantage of problems with this type of local
+structure. BlockSolve95 is also reasonably efficient for problems that have
+only one degree of freedom associated with each node, such as the three-
+dimensional Poisson problem.
+
+BlockSolve95 is general purpose; we do not require that the matrices have any
+particular structure other than being sparse and being symmetric in structure
+(but not necessarily in value).
+
+WWW: http://www-unix.mcs.anl.gov/sumaa3d/BlockSolve/
diff --git a/math/blocksolve95/pkg-plist b/math/blocksolve95/pkg-plist
new file mode 100644
index 000000000000..0f1f09426b52
--- /dev/null
+++ b/math/blocksolve95/pkg-plist
@@ -0,0 +1,43 @@
+include/BMmsg.h
+include/BSdepend.h
+include/BSlog.h
+include/BSmy_blas.h
+include/BSprivate.h
+include/BSsparse.h
+lib/libBS95.a
+%%EXAMPLESDIR%%/README.examples
+%%EXAMPLESDIR%%/free_grid.c
+%%EXAMPLESDIR%%/get_mat.c
+%%EXAMPLESDIR%%/get_mat3.c
+%%EXAMPLESDIR%%/get_mat3d.c
+%%EXAMPLESDIR%%/get_mat4.c
+%%EXAMPLESDIR%%/makefile
+%%EXAMPLESDIR%%/map3.c
+%%EXAMPLESDIR%%/master0.c
+%%EXAMPLESDIR%%/master1.c
+%%EXAMPLESDIR%%/master2.c
+%%EXAMPLESDIR%%/master3.c
+%%EXAMPLESDIR%%/master4.c
+%%EXAMPLESDIR%%/master5.c
+%%EXAMPLESDIR%%/master6.c
+%%EXAMPLESDIR%%/master7.c
+%%EXAMPLESDIR%%/master8.c
+%%EXAMPLESDIR%%/num_grid3d.c
+%%EXAMPLESDIR%%/pargrid.h
+%%EXAMPLESDIR%%/res.m
+%%EXAMPLESDIR%%/res2.m
+%%EXAMPLESDIR%%/run.paragon
+%%EXAMPLESDIR%%/testm
+%%EXAMPLESDIR%%/worker0.c
+%%EXAMPLESDIR%%/worker1.c
+%%EXAMPLESDIR%%/worker2.c
+%%EXAMPLESDIR%%/worker3.c
+%%EXAMPLESDIR%%/worker4.c
+%%EXAMPLESDIR%%/worker5.c
+%%EXAMPLESDIR%%/worker5.c.free
+%%EXAMPLESDIR%%/worker5.c.nofree
+%%EXAMPLESDIR%%/worker6.c
+%%EXAMPLESDIR%%/worker7.c
+%%EXAMPLESDIR%%/worker8.c
+%%EXAMPLESDIR%%/write_mat_matlab.c
+@dirrm %%EXAMPLESDIR%%