diff options
author | thierry <thierry@FreeBSD.org> | 2004-11-16 06:16:27 +0800 |
---|---|---|
committer | thierry <thierry@FreeBSD.org> | 2004-11-16 06:16:27 +0800 |
commit | b6277672424125403f687979ccad2bfddc7bd6d3 (patch) | |
tree | 5e26035655618425dea35c4864f6c45c421ba3a1 /math | |
parent | ecdabef7736e25a1468c88fc2ba394c6d382e07a (diff) | |
download | freebsd-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/Makefile | 1 | ||||
-rw-r--r-- | math/blocksolve95/Makefile | 60 | ||||
-rw-r--r-- | math/blocksolve95/distinfo | 2 | ||||
-rw-r--r-- | math/blocksolve95/files/BSman3.inc | 85 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-bmake::common | 19 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-bmake::freebsd::freebsd | 37 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-bmake::freebsd::freebsd.O | 8 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-bmake::freebsd::freebsd.site | 35 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-examples::makefile | 11 | ||||
-rw-r--r-- | math/blocksolve95/files/patch-include::BSdepend.h | 14 | ||||
-rw-r--r-- | math/blocksolve95/pkg-descr | 15 | ||||
-rw-r--r-- | math/blocksolve95/pkg-plist | 43 |
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%% |