r36946 - in /packages/parms/trunk/debian: ./ patches/ source/

trophime-guest at users.alioth.debian.org trophime-guest at users.alioth.debian.org
Thu Oct 14 07:10:20 UTC 2010


Author: trophime-guest
Date: Thu Oct 14 07:10:13 2010
New Revision: 36946

URL: http://svn.debian.org/wsvn/debian-science/?sc=1&rev=36946
Log:
[svn-inject] Applying Debian modifications (3.dfsg-1) to trunk

Added:
    packages/parms/trunk/debian/   (with props)
    packages/parms/trunk/debian/README.Debian
    packages/parms/trunk/debian/README.source
    packages/parms/trunk/debian/changelog
    packages/parms/trunk/debian/compat
    packages/parms/trunk/debian/control
    packages/parms/trunk/debian/copyright
    packages/parms/trunk/debian/docs
    packages/parms/trunk/debian/libparms.debhelper.log
    packages/parms/trunk/debian/libparms.postinst.debhelper
    packages/parms/trunk/debian/libparms.postrm.debhelper
    packages/parms/trunk/debian/libparms.substvars
    packages/parms/trunk/debian/parms.debhelper.log
    packages/parms/trunk/debian/parms.substvars
    packages/parms/trunk/debian/patches/
    packages/parms/trunk/debian/patches/examples.patch
    packages/parms/trunk/debian/patches/makefile.patch
    packages/parms/trunk/debian/patches/series
    packages/parms/trunk/debian/patches/sharedlibs.patch
    packages/parms/trunk/debian/rules   (with props)
    packages/parms/trunk/debian/source/
    packages/parms/trunk/debian/source/format

Propchange: packages/parms/trunk/debian/
------------------------------------------------------------------------------
    mergeWithUpstream = 1

Added: packages/parms/trunk/debian/README.Debian
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/README.Debian?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/README.Debian (added)
+++ packages/parms/trunk/debian/README.Debian Thu Oct 14 07:10:13 2010
@@ -1,0 +1,6 @@
+parms for Debian
+----------------
+
+initial build for squeeze
+
+ -- Christophe Trophime <christophe.trophime at grenoble.cnrs.fr>  Tue, 12 Oct 2010 13:01:21 +0200

Added: packages/parms/trunk/debian/README.source
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/README.source?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/README.source (added)
+++ packages/parms/trunk/debian/README.source Thu Oct 14 07:10:13 2010
@@ -1,0 +1,9 @@
+parms for Debian
+----------------
+
+<this file describes information about the source package, see Debian policy
+manual section 4.14. You WILL either need to modify or delete this file>
+
+
+
+

Added: packages/parms/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/changelog?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/changelog (added)
+++ packages/parms/trunk/debian/changelog Thu Oct 14 07:10:13 2010
@@ -1,0 +1,5 @@
+parms (3.dfsg-1) unstable; urgency=low
+
+  * Initial release (Closes: #600162)
+
+ -- Christophe Trophime <christophe.trophime at grenoble.cnrs.fr>  Tue, 12 Oct 2010 13:01:21 +0200

Added: packages/parms/trunk/debian/compat
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/compat?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/compat (added)
+++ packages/parms/trunk/debian/compat Thu Oct 14 07:10:13 2010
@@ -1,0 +1,1 @@
+7

Added: packages/parms/trunk/debian/control
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/control?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/control (added)
+++ packages/parms/trunk/debian/control Thu Oct 14 07:10:13 2010
@@ -1,0 +1,60 @@
+Source: parms
+Section: libs
+Priority: extra
+Maintainer: Christophe Trophime <christophe.trophime at grenoble.cnrs.fr>
+Build-Depends: cdbs, debhelper (>= 7.0.50~), quilt, texlive-latex-base,
+ libblas-dev | libblas-3gf.so, liblapack-dev | liblapack-3gf.so, libitsol-dev, libpetsc3.1-dev,
+ mpi-default-dev
+Standards-Version: 3.9.1
+Homepage: http://www-users.cs.umn.edu/~saad/software/pARMS/
+#Vcs-Git: git://git.debian.org/collab-maint/parms.git
+#Vcs-Browser: http://git.debian.org/?p=collab-maint/parms.git;a=summary
+
+Package: libparms3
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: parallel Algebraic Recursive Multilevel Solvers
+ pARMS is a library of parallel solvers for distributed sparse 
+ linear systems of equations. It is based on a preconditioned 
+ Krylov subspace approach, using a domain decomposition viewpoint. 
+ The plural in "Solvers" is due to the fact that pARMS offers a 
+ large selection of preconditioners for distributed sparse linear 
+ systems and a few of the best known accelerators.
+ The basic methodology used relies on a Recursive Multi-level ILU 
+ factorization wich allows to develop many of the standard 
+ domain-decomposition type iterative solvers in a single framework. 
+
+Package: libparms-dev
+Architecture: any
+Section: libdevel
+Depends: libparms3 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: parallel Algebraic Recursive Multilevel Solvers - dev
+ pARMS is a library of parallel solvers for distributed sparse 
+ linear systems of equations. It is based on a preconditioned 
+ Krylov subspace approach, using a domain decomposition viewpoint. 
+ The plural in "Solvers" is due to the fact that pARMS offers a 
+ large selection of preconditioners for distributed sparse linear 
+ systems and a few of the best known accelerators.
+ The basic methodology used relies on a Recursive Multi-level ILU 
+ factorization wich allows to develop many of the standard 
+ domain-decomposition type iterative solvers in a single framework. 
+ .
+ This package contains files needed for development
+
+Package: libparms-doc
+Architecture: all
+Section: doc
+Depends: libparms-dev, ${shlibs:Depends}, ${misc:Depends}
+Description: parallel Algebraic Recursive Multilevel Solvers - doc
+ pARMS is a library of parallel solvers for distributed sparse 
+ linear systems of equations. It is based on a preconditioned 
+ Krylov subspace approach, using a domain decomposition viewpoint. 
+ The plural in "Solvers" is due to the fact that pARMS offers a 
+ large selection of preconditioners for distributed sparse linear 
+ systems and a few of the best known accelerators.
+ The basic methodology used relies on a Recursive Multi-level ILU 
+ factorization wich allows to develop many of the standard 
+ domain-decomposition type iterative solvers in a single framework. 
+ .
+ This package contains doc and examples for pamrs.

Added: packages/parms/trunk/debian/copyright
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/copyright?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/copyright (added)
+++ packages/parms/trunk/debian/copyright Thu Oct 14 07:10:13 2010
@@ -1,0 +1,50 @@
+This work was packaged for Debian by:
+
+    Christophe Trophime <christophe.trophime at grenoble.cnrs.fr> on Tue, 12 Oct 2010 13:01:21 +0200
+
+It was downloaded from:
+
+    http://www-users.cs.umn.edu/~saad/software/pARMS/
+
+Upstream Author(s):
+
+    Masha Sosonkina  <masha at scl.ameslab.gov>
+    Daniel Osei Kuffuor <dosei at cs.umn.edu>
+    Zhongze Li (original developer)
+    Yousef Saad <saad at cs.umn.edu>
+
+Copyright:
+
+    Copyright (C) 2004, 2006, the Regents of the University of Minnesota 
+
+License:
+
+    Copyright (C) 2004, 2006, the Regents of the University of Minnesota 
+
+    pARMS is free software; you can redistribute it and/or modify it under
+    the terms of the GNU Lesser General Public License as published by the
+    Free Software Foundation; version 2.1 of the License.
+
+    A copy of  the licencing agreement is attached in  the file LGPL.  For
+    additional information  contact the Free Software  Foundation Inc., 59
+    Temple Place - Suite 330, Boston, MA 02111, USA or visit the web-site
+
+     http://www.gnu.org/copyleft/lesser.html
+
+
+    DISCLAIMER
+    ----------
+
+    pARMS is distributed  in the hope that it will  be useful, but WITHOUT
+    ANY WARRANTY; without even  the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A  PARTICULAR PURPOSE.  See the GNU  Lesser General Public
+    License for more details.
+
+    For more information contact saad at cs.umn.edu
+
+    see "/usr/share/common-licenses/LGPL-2.1".
+    
+The Debian packaging is:
+
+    Copyright (C) 2010 Christophe Trophime <christophe.trophime at grenoble.cnrs.fr>
+

Added: packages/parms/trunk/debian/docs
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/docs?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/docs (added)
+++ packages/parms/trunk/debian/docs Thu Oct 14 07:10:13 2010
@@ -1,0 +1,2 @@
+README
+README_INSTALL

Added: packages/parms/trunk/debian/libparms.debhelper.log
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/libparms.debhelper.log?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/libparms.debhelper.log (added)
+++ packages/parms/trunk/debian/libparms.debhelper.log Thu Oct 14 07:10:13 2010
@@ -1,0 +1,33 @@
+dh_prep
+dh_installdirs
+dh_installdirs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_installinfo
+dh_installmenu
+dh_installcron
+dh_installinit
+dh_installdebconf
+dh_installemacsen
+dh_installcatalogs
+dh_installpam
+dh_installlogrotate
+dh_installlogcheck
+dh_installchangelogs
+dh_installudev
+dh_lintian
+dh_install
+dh_link
+dh_buildinfo
+dh_installmime
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_perl
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb

Added: packages/parms/trunk/debian/libparms.postinst.debhelper
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/libparms.postinst.debhelper?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/libparms.postinst.debhelper (added)
+++ packages/parms/trunk/debian/libparms.postinst.debhelper Thu Oct 14 07:10:13 2010
@@ -1,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section

Added: packages/parms/trunk/debian/libparms.postrm.debhelper
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/libparms.postrm.debhelper?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/libparms.postrm.debhelper (added)
+++ packages/parms/trunk/debian/libparms.postrm.debhelper Thu Oct 14 07:10:13 2010
@@ -1,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section

Added: packages/parms/trunk/debian/libparms.substvars
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/libparms.substvars?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/libparms.substvars (added)
+++ packages/parms/trunk/debian/libparms.substvars Thu Oct 14 07:10:13 2010
@@ -1,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libopenmpi1.3
+misc:Depends=

Added: packages/parms/trunk/debian/parms.debhelper.log
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/parms.debhelper.log?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/parms.debhelper.log (added)
+++ packages/parms/trunk/debian/parms.debhelper.log Thu Oct 14 07:10:13 2010
@@ -1,0 +1,33 @@
+dh_prep
+dh_installdirs
+dh_installdirs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_installinfo
+dh_installmenu
+dh_installcron
+dh_installinit
+dh_installdebconf
+dh_installemacsen
+dh_installcatalogs
+dh_installpam
+dh_installlogrotate
+dh_installlogcheck
+dh_installchangelogs
+dh_installudev
+dh_lintian
+dh_install
+dh_link
+dh_buildinfo
+dh_installmime
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_perl
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb

Added: packages/parms/trunk/debian/parms.substvars
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/parms.substvars?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/parms.substvars (added)
+++ packages/parms/trunk/debian/parms.substvars Thu Oct 14 07:10:13 2010
@@ -1,0 +1,1 @@
+misc:Depends=

Added: packages/parms/trunk/debian/patches/examples.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/patches/examples.patch?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/patches/examples.patch (added)
+++ packages/parms/trunk/debian/patches/examples.patch Thu Oct 14 07:10:13 2010
@@ -1,0 +1,42 @@
+Index: parms-3.dfsg/examples/general/makefile
+===================================================================
+--- parms-3.dfsg.orig/examples/general/makefile	2010-10-13 18:53:33.000000000 +0200
++++ parms-3.dfsg/examples/general/makefile	2010-10-14 08:30:47.000000000 +0200
+@@ -27,7 +27,7 @@
+ 	${LINKER} ${CLINKFLAGS} -o $@ dd-HB-dse.o aux.o skit.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR} ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} 
++	${MATH_LIB_DIR} ${MATH_LIB} -lc
+ 
+ ## the next test run uses metis - link to metis must be provided
+ # METIS header files 
+@@ -45,7 +45,7 @@
+ 	${F90LINKER} ${FLINKFLAGS} -o $@ fdd-HB-dse.o aux.o skit.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR}  ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} 
++	${MATH_LIB_DIR} ${MATH_LIB} -lc 
+ 
+ #fdd-HB-metis.ex: fdd-HB-metis.o aux.o skit.o
+ #	${LINKER} ${LINKFLAGS} -o $@ fdd-HB-metis.o aux.o skit.o \
+Index: parms-3.dfsg/examples/grid/makefile
+===================================================================
+--- parms-3.dfsg.orig/examples/grid/makefile	2010-10-13 18:53:33.000000000 +0200
++++ parms-3.dfsg/examples/grid/makefile	2010-10-14 08:24:59.000000000 +0200
+@@ -25,13 +25,13 @@
+ 	${LINKER} ${CLINKFLAGS} -o $@ dd-grid.o skit.o functs.o fdmat.o aux.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} ${XLIBDIR} ${XLIB} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR}  ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} 
++	${MATH_LIB_DIR} ${MATH_LIB} -litsol
+ 
+ fdd-grid.ex: fdd-grid.o skit.o functs.o fdmat.o aux.o
+ 	${F90LINKER} ${FLINKFLAGS} -o $@ fdd-grid.o skit.o functs.o fdmat.o aux.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} ${XLIBDIR} ${XLIB} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR}  ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} 
++	${MATH_LIB_DIR} ${MATH_LIB} -litsol 
+ 
+ .c.o:
+ 	${CC} ${ICFLAGS} ${ISRCINC} ${XIFLAGS} $(COPTFLAGS) \

Added: packages/parms/trunk/debian/patches/makefile.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/patches/makefile.patch?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/patches/makefile.patch (added)
+++ packages/parms/trunk/debian/patches/makefile.patch Thu Oct 14 07:10:13 2010
@@ -1,0 +1,33 @@
+Index: parms-3.dfsg/makefile
+===================================================================
+--- parms-3.dfsg.orig/makefile	2010-10-13 18:19:43.000000000 +0200
++++ parms-3.dfsg/makefile	2010-10-13 18:23:13.000000000 +0200
+@@ -48,13 +48,14 @@
+ 
+ default: $(LIB) 
+ 
+-all: $(LIB) tests
++all: $(LIB) tests petsc
+ 
+ $(LIB): $(OBJ)
+ 	if [ ! -d lib ]; then \
+ 	  mkdir lib; \
+ 	fi
+ 	$(AR) $(ARFLAGS) $(LIB) $(OBJ) 
++	#$(CC) -shared $(CFLAGS) -Wl,-soname,libparms.so -o ./lib/libparms.so $(OBJ)
+ 
+ tests:  $(LIB)
+ 	(cd examples/grid;make dd-grid.ex ) 
+Index: parms-3.dfsg/makefile.in
+===================================================================
+--- parms-3.dfsg.orig/makefile.in	2010-10-13 18:19:43.000000000 +0200
++++ parms-3.dfsg/makefile.in	2010-10-13 18:19:44.000000000 +0200
+@@ -42,7 +42,7 @@
+ 
+ # LAPACK, BLAS library
+ LAPACK_BLAS_LIB_DIR	=
+-LAPACK_BLAS_LIB		=	-llapack -lblas-3
++LAPACK_BLAS_LIB		=	-llapack -lblas
+ 
+ # general math libary
+ MATH_LIB_DIR		=     

Added: packages/parms/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/patches/series?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/patches/series (added)
+++ packages/parms/trunk/debian/patches/series Thu Oct 14 07:10:13 2010
@@ -1,0 +1,3 @@
+makefile.patch
+examples.patch
+sharedlibs.patch

Added: packages/parms/trunk/debian/patches/sharedlibs.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/patches/sharedlibs.patch?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/patches/sharedlibs.patch (added)
+++ packages/parms/trunk/debian/patches/sharedlibs.patch Thu Oct 14 07:10:13 2010
@@ -1,0 +1,537 @@
+Index: parms-3.dfsg/src/parms_pc_schurras.c
+===================================================================
+--- parms-3.dfsg.orig/src/parms_pc_schurras.c	2010-10-14 08:49:18.000000000 +0200
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,463 +0,0 @@
+-#include "parms_pc_impl.h"
+-#include "parms_opt_impl.h"
+-#if defined(__ICC)
+-#include <mathimf.h>
+-#else
+-#if defined(C99)
+-#include <tgmath.h>
+-#else
+-#include <math.h>
+-#endif 
+-#endif 
+-
+-typedef struct schur_data {
+-  parms_Operator op;
+-  int n, schur_start, nrow;
+-  int im, maxits, in_iters;
+-  MPI_Comm comm;
+-  double pgfpar[2];
+-  FLOAT **vv, **hh, *c, *s, *rs, *hcol, *z2, *wk;
+-} *schur_data;
+-
+-/** Free the memory for struct schur_data.
+- *
+- *  \param self A preconditioner object.
+- *  \return 0 on success.
+- */
+-static int pc_schur_free(parms_PC *self)
+-{
+-  schur_data pc_data;
+-  parms_Operator op;
+-  int i;
+-
+-  pc_data = (schur_data)(*self)->data;
+-  op = pc_data->op;
+-  parms_OperatorFree(&op);
+-
+-  if (pc_data->nrow) {
+-    PARMS_FREE(pc_data->z2);
+-    PARMS_FREE(pc_data->wk);
+-    for (i = 0; i < pc_data->im+1; i++) {
+-      PARMS_FREE(pc_data->vv[i]);
+-    }
+-  }
+-  PARMS_FREE(pc_data->vv);
+-  for (i = 0; i < pc_data->im; i++) {
+-    PARMS_FREE(pc_data->hh[i]);
+-  }
+-  PARMS_FREE(pc_data->hh);
+-  PARMS_FREE(pc_data->c);
+-  PARMS_FREE(pc_data->s);
+-  PARMS_FREE(pc_data->rs);
+-  PARMS_FREE(pc_data->hcol);
+-  MPI_Comm_free(&pc_data->comm);
+-  PARMS_FREE(pc_data);
+-  return 0;
+-}
+-
+-/** Dump the Schur preconditioner.
+- *
+- *  \param self A preconditioner object.
+- *  \param v    A viewer.
+- *  \return 0 on success.
+- */
+-static int pc_schur_view(parms_PC self, parms_Viewer v)
+-{
+-  schur_data pc_data;
+-
+-  pc_data = (schur_data)self->data;
+-  parms_OperatorView(pc_data->op, v);
+-  return 0;
+-}
+-
+-/** Set up data for the Schur preconditioner.
+- *
+- *  Malloc memories for working arrays in the inner GMRES.
+- *
+- *  \param self A preconditioner object.
+- *  \return 0 on success.
+- */
+-static int pc_schur_setup(parms_PC self)
+-{
+-  schur_data pc_data;
+-  parms_Mat A;
+-  void *diag_mat;
+-  parms_FactParam param;
+-  parms_Operator op;
+-  int nrow, i;
+-
+-  A =  self->A;
+-
+-  /* Set parameters for the ILU factorization:
+-     ILUs in pARMS can perform factorizatoin based on the matrix
+-     merged implicitly by several submatrices. 
+-     start       - the location in the merged matrix of the first row
+-                   index of the submatrix.
+-     n           - the size of the merged matrix.
+-     schur_start - the beginning row index of the Schur in the merged
+-                   matrix 
+-  */
+-  param = self->param;
+-  param->start = 0;
+-  param->n = A->is->lsize;
+-  param->schur_start = -1;
+-  pc_data = (schur_data)self->data;
+-
+-  /* Get diagonal part of the matrix */
+-  parms_MatGetDiag(A, &diag_mat);
+-
+-  /* Perform local ILU-type factorization */
+-  parms_PCILU(self, param, diag_mat, &op);
+-  pc_data->op = op;
+-
+-  MPI_Comm_dup(A->is->comm, &pc_data->comm);
+-
+-  /* get Krylov  subspace size */
+-  pc_data->im = param->ipar[4];
+-  if (pc_data->im == 0) {
+-    pc_data->im = 5;
+-  }
+-
+-  /* maximum inner iteration counts */
+-  pc_data->maxits = param->ipar[5];
+-  if (pc_data->maxits == 0) {
+-    pc_data->maxits = 5;
+-  }
+-
+-  /* 
+-     malloc memory for krylov subspace basis vv and Hessenberg matrix
+-  */
+-  PARMS_NEWARRAY(pc_data->vv, pc_data->im+1);
+-
+-  /* Set the size of the matrix */
+-  pc_data->n = param->n;
+-
+-  /* Set the beginning location of the Schur complement */
+-  pc_data->schur_start = parms_OperatorGetSchurPos(op);
+-/*   pc_data->schur_start = A->is->schur_start; */
+-
+-  /* The size of local Schur complement */
+-  nrow = pc_data->n - pc_data->schur_start;
+-  pc_data->nrow = nrow;
+-
+-  /* Allocate memories for auxiliary arrays. */
+-  if(nrow) {
+-    for(i = 0; i < pc_data->im+1; i++) {
+-      PARMS_NEWARRAY(pc_data->vv[i], nrow);
+-    }
+-    PARMS_NEWARRAY(pc_data->z2, nrow);
+-    PARMS_NEWARRAY(pc_data->wk, nrow);
+-  }
+-  else {
+-    pc_data->z2 = NULL;
+-    pc_data->wk = NULL;
+-    pc_data->vv[0] = NULL;
+-  }
+-
+-  PARMS_NEWARRAY(pc_data->hh, pc_data->im);
+-  for(i = 0; i < pc_data->im; i++) {
+-    PARMS_NEWARRAY(pc_data->hh[i], pc_data->im+1);
+-  }
+-  
+-  PARMS_NEWARRAY(pc_data->c,    pc_data->im);
+-  PARMS_NEWARRAY(pc_data->s,    pc_data->im);
+-  PARMS_NEWARRAY(pc_data->rs,   pc_data->im+1);
+-  PARMS_NEWARRAY(pc_data->hcol, pc_data->im+1);
+-
+-  return 0;
+-}
+-
+-/** Apply the preconditioner to the vector y.
+- *
+- *  This preconditioner is actually the lsch_xx preconditioners in old
+- *  version of pARMS. 
+- *
+- *  \param self A preconditioner object.
+- *  \param y    A right-hand-side vector.
+- *  \param x    Solution vector.
+- *  \return 0 on success.
+- */
+-static int pc_schur_apply(parms_PC self, FLOAT *y, FLOAT *x)
+-{
+-  /*--------------------------------------------------------------------
+-    APPROXIMATE LU-SCHUR LEFT PRECONDITONER
+-    *--------------------------------------------------------------------
+-    Schur complement left preconditioner.  This is a preconditioner for 
+-    the global linear system which is based on solving approximately the
+-    Schur  complement system. More  precisely, an  approximation to the
+-    local Schur complement  is obtained (implicitly) in  the form of an
+-    LU factorization  from the LU  factorization  L_i U_i of  the local
+-    matrix A_i. Solving with this approximation amounts to simply doing
+-    the forward and backward solves with the bottom part of L_i and U_i
+-    only (corresponding to the interace variables).  This is done using
+-    a special version of the subroutine lusol0 called lusol0_p. Then it
+-    is possible to  solve  for an  approximate  Schur complement system
+-    using GMRES  on  the  global  approximate Schur  complement  system
+-    (which is preconditionied  by  the diagonal  blocks  represented by
+-    these restricted LU matrices).
+-    --------------------------------------------------------------------
+-    Coded by Y. Saad - Aug. 1997 - updated Nov. 14, 1997.
+-    C version coded by Zhongze Li, Jan. 2001, updated Sept, 17th, 2001
+-    Revised by Zhongze Li, June 1st, 2006.
+-    --------------------------------------------------------------------
+-  */
+-  schur_data     pc_data;
+-  parms_Operator op;
+-  parms_Map      is;
+-  parms_Mat      A;
+-  parms_FactParam param;
+-  MPI_Comm       comm;
+-  int schur_start,nrow, im,i,jj,i1,k,k1,its,j,ii,maxits,incx=1,ierr;
+-  int if_in_continue,if_out_continue;
+-  FLOAT *z2, *wk;
+-  FLOAT **vv, **hh, *c, *s, *rs, *hcol;
+-  REAL  eps,eps1,t,alpha,ro,tloc,gam;
+-  static int iters = 0;
+-
+-  /* retrieve the specific data structure for Schur based preconditioners  */ 
+-  pc_data = (schur_data)self->data;
+-
+-  /* get the matrix A */
+-  A = self->A;
+-
+-  is = A->is;
+-
+-  /* get the dimension of the local matrix */
+-  /* n = pc_data->n; */
+-
+-  /* get the beginning location of the Schur complement */
+-  schur_start = pc_data->schur_start;
+-
+-  /* get the size of the Schur complement */
+-  nrow = pc_data->nrow;
+-
+-  /* get krylov space size */
+-  im = pc_data->im;
+-
+-  /* get maximal iteration number */
+-  maxits = pc_data->maxits;
+-
+-  /* get tolerance */
+-  param = self->param;
+-  eps = param->pgfpar[0];
+-  eps1 = eps;
+-
+-  /* get communicator */
+-  comm = pc_data->comm;
+-
+-  /* get working arrays */
+-  vv   = pc_data->vv;
+-  hh   = pc_data->hh;
+-  c    = pc_data->c;
+-  s    = pc_data->s;
+-  rs   = pc_data->rs;
+-  hcol = pc_data->hcol;
+-  z2   = pc_data->z2;
+-  wk   = pc_data->wk;
+-
+-  /* retrieve the operator */
+-  op = pc_data->op;
+-  /* compute the right-hand side of Schur Complement System
+-     it turns out that  this is the bottom part of inv(A_i)*rhs
+-  */
+-
+-  parms_OperatorLsol(op, y, x);
+-  GCOPY(nrow, &x[schur_start], incx, wk, incx);
+-  parms_OperatorInvS(op, &x[schur_start], vv[0]);
+-
+-  for (i = 0; i < nrow; i++) {
+-    x[schur_start+i] = 0.0;
+-  }
+-
+-
+-  /* solution loop by gmres. */
+-  if_out_continue = 1;
+-  its = 0;
+-
+-  while(if_out_continue) {
+-    t = GDOT(nrow, vv[0], incx, vv[0], incx);
+-    MPI_Allreduce(&t, &ro, 1, MPI_DOUBLE, MPI_SUM, comm);
+-    ro = sqrt(ro);
+-    if(fabs(ro - ZERO) <= EPSILON) { 
+-      ierr = -1;
+-      break;
+-    }
+-
+-    t = 1.0/ro;
+-
+-    GSCAL(nrow, t, vv[0], incx);
+-
+-    if(its == 0) eps1 = eps*ro;
+-    /* initialize 1-static term of rhs of hessenberg system. */
+-    rs[0] = ro;
+-    i = -1;
+-    if_in_continue = 1;
+-    while(if_in_continue) {
+-      ++i;
+-      ++its;
+-      i1 = i + 1;
+-  
+-      /* 
+-	 matrix-vector product
+-	 tmp = (0,y)^t: first fill tmp with zero components from 1 to n
+-	 then copy rhs into "y" part of tmp
+-      */
+-      parms_MatVecOffDiag(A, vv[i], z2, schur_start);
+-      parms_OperatorInvS(op, z2, z2);
+-
+-      /* result = input + last part of z2 */
+-      for(j = 0; j < nrow; j++) {
+-	vv[i1][j] = vv[i][j] + z2[j];
+-      }
+-
+-      /* modified gram - schmidt .. */
+-      for(j = 0; j <= i; j++) {
+-	hcol[j] = GDOT(nrow, vv[j], incx, vv[i1], incx);
+-      }
+-      MPI_Allreduce(hcol, hh[i], i+1, MPI_DOUBLE, MPI_SUM, comm);
+-
+-      for(j = 0; j <= i; j++) {
+-	alpha = -hh[i][j];
+-	GAXPY(nrow, alpha, vv[j], incx, vv[i1], incx);
+-      }
+-
+-      tloc = GDOT(nrow, vv[i1], incx, vv[i1], incx);
+-      MPI_Allreduce(&tloc, &t, 1, MPI_DOUBLE, MPI_SUM, comm);
+-      t = sqrt(t);
+-      hh[i][i1] = t;
+-      if(fabs(t - ZERO) > EPSILON) {
+-	t = 1.0/t;
+-	GSCAL(nrow, t, vv[i1], incx);
+-      }
+-      /* 
+-	 done with modified gram Schmidt and Arnoldi step..
+-	 now update factorization of hh 
+-      */
+-      if(i != 0) {
+-	/* perform previous transformations on i-th column of h */
+-	for(k = 1; k <= i; k++) {
+-	  k1 = k-1;
+-	  t = hh[i][k1];
+-	  hh[i][k1] = c[k1]*t + s[k1]*hh[i][k];
+-	  hh[i][k] = -s[k1]*t + c[k1]*hh[i][k];
+-	}
+-      }
+-      gam = sqrt(hh[i][i]*hh[i][i] + hh[i][i1]*hh[i][i1]);
+-      /* 
+-	 if gamma is zero then any small value will do ...
+-	 will affect only residual estimate 
+-      */
+-      if(fabs(gam-ZERO) < EPSILON) gam = EPSMAC;
+-      /* get next plane rotation */
+-      c[i] = hh[i][i] / gam;
+-      s[i] = hh[i][i1] / gam;
+-      rs[i1] = -s[i]*rs[i];
+-      rs[i] = c[i]*rs[i];
+- 
+-      /* determine residual norm and test for convergence */
+-      hh[i][i] = c[i]*hh[i][i] + s[i]*hh[i][i1];
+-      ro = fabs(rs[i1]);
+-      if(i+1 >= im || ro <= eps1 || its >= maxits)
+-	if_in_continue = 0;
+-    }
+-
+-    /* now compute solution. first solve upper triangular system. */
+-    for(ii = i; ii >= 0; --ii) {
+-      t = rs[ii];
+-      for(j = ii+1; j <= i; j++) {
+-	t = t - hh[j][ii]*rs[j];
+-      }
+-      rs[ii] = t / hh[ii][ii];
+-    }
+-    /* form linear combination of v(*,i)'s to update solution */
+-    for(j = 0; j < i+1; j++) {
+-      GAXPY(nrow, rs[j], vv[j], incx, &x[schur_start], incx);
+-    }
+-    /* restart outer loop when necessary */
+-    if(ro <= eps1) {
+-      ierr = 0;
+-      if_out_continue = 0;
+-    }
+-    else if(its >= maxits) {
+-      ierr = 1;
+-      if_out_continue = 0;
+-    }
+-    /* else compute residual vector (from the v's) and continue.. */
+-    else {
+-      for(j = 0; j <= i; j++) {
+-	jj= i1-j+1;
+-	rs[jj-1] = -s[jj-1]*rs[jj];
+-	rs[jj] = c[jj-1]*rs[jj];
+-      }
+-      for(j = 0; j <= i1; j++) {
+-	t = rs[j];
+-	if(j == 0) t = t-1.0;
+-	GAXPY(nrow, t, vv[j], incx, vv[0], incx);
+-      }
+-    }
+-  }
+-  /* 
+-     post-processing to compute interior variables..
+-     compute RHS for last system. similar to Schur iteration
+-     first get a vector fo the form (0,y)^T
+-  */
+-  parms_MatVecOffDiag(A, &x[schur_start], z2, schur_start); 
+-
+-  GCOPY(nrow, wk, incx, &x[schur_start], incx); 
+-  for (i = 0; i < is->ninf; i++) {
+-    x[i+is->nint] -= z2[i+is->nint-schur_start]; 
+-  }
+-  /* solve the Schur complement system */
+-  parms_OperatorInvS(op, &x[schur_start], &x[schur_start]);
+-  /* backward sweep */
+-  parms_OperatorAscend(op, x, x);
+-
+-  iters += its;
+-  pc_data->in_iters = iters;
+-
+-  return ierr;
+-}
+-
+-/** Get the ratio of the number of nonzero entries of the
+- *  preconditioning matrix to that of the original matrix.
+- *
+- *  \param self   A preconditioner.
+- *  \param ratio  A pointer to the ratio.      
+- *  \return 0 on success.
+- */
+-static int pc_schur_getratio(parms_PC self, double *ratio)
+-{
+-  schur_data pc_data;
+-  parms_Operator op;
+-  int nnz_mat, nnz_pc;
+-  int gnnz_mat, gnnz_pc;
+-
+-  pc_data = (schur_data)self->data;
+-  op = pc_data->op;
+-  parms_OperatorGetNnz(op, &nnz_mat, &nnz_pc);
+-  MPI_Allreduce(&nnz_mat, &gnnz_mat, 1, MPI_INT, MPI_SUM,
+-		MPI_COMM_WORLD); 
+-  MPI_Allreduce(&nnz_pc, &gnnz_pc, 1, MPI_INT, MPI_SUM,
+-		MPI_COMM_WORLD); 
+-  *ratio = (double)gnnz_pc/(double)gnnz_mat;  
+-  return 0;
+-}
+-
+-/** Create a Schur-complement based preconditioner.
+- *
+- *  \param self A preconditioner object.
+- *  \return 0 on success.
+- */
+-int parms_PCCreate_Schur(parms_PC self)
+-{
+-  schur_data data;
+-
+-  PARMS_NEW(data);
+-  self->data = data;
+-  self->ops->pc_free     = pc_schur_free;
+-  self->ops->pc_view     = pc_schur_view;
+-  self->ops->apply    = pc_schur_apply;
+-  self->ops->setup    = pc_schur_setup;
+-  self->ops->getratio = pc_schur_getratio;
+-  return 0;
+-}
+Index: parms-3.dfsg/makefile
+===================================================================
+--- parms-3.dfsg.orig/makefile	2010-10-14 08:49:19.000000000 +0200
++++ parms-3.dfsg/makefile	2010-10-14 08:50:03.000000000 +0200
+@@ -15,6 +15,7 @@
+ 
+ # library path and directory declaration
+ LIB	=    ./lib/libparms.a
++SHLIB	=    ./lib/libparms.so
+ DIRS    =    ./ ./include ./lib ./src ./src/include ./src/DDPQ \
+              ./src/FORTRAN ./examples ./examples/general \
+              ./examples/grid ./examples/petsc ./examples/matrices  
+@@ -26,7 +27,7 @@
+              ./src/parms_mem.o ./src/parms_operator.o  \
+              ./src/parms_ilu_vcsr.o ./src/parms_pc.o \
+ 	     ./src/parms_pc_bj.o  ./src/parms_pc_ras.o  \
+-	     ./src/parms_pc_schur.o ./src/parms_pc_schurras.o  \
++	     ./src/parms_pc_schur.o \
+              ./src/parms_qsplit.o ./src/parms_solver.o  \
+              ./src/parms_table.o ./src/parms_timer.o  \
+              ./src/parms_vec.o ./src/parms_viewer.o ./src/fgmres.o   
+@@ -46,9 +47,9 @@
+ 
+ OBJ     =     $(OBJ1) $(OBJ2) $(OBJ3)
+ 
+-default: $(LIB) 
++default: $(LIB) $(SHLIB)
+ 
+-all: $(LIB) tests petsc
++all: $(LIB) $(SHLIB) tests petsc
+ 
+ $(LIB): $(OBJ)
+ 	if [ ! -d lib ]; then \
+@@ -57,6 +58,13 @@
+ 	$(AR) $(ARFLAGS) $(LIB) $(OBJ) 
+ 	#$(CC) -shared $(CFLAGS) -Wl,-soname,libparms.so -o ./lib/libparms.so $(OBJ)
+ 
++$(SHLIB): $(OBJ)
++	if [ ! -d lib ]; then \
++	  mkdir lib; \
++	fi
++	$(CC) -shared $(CFLAGS) -Wl,-soname,libparms.so.3 -o $(SHLIB).3 $(OBJ)
++	cd lib && ln -s libparms.so.3 libparms.so
++
+ tests:  $(LIB)
+ 	(cd examples/grid;make dd-grid.ex ) 
+ 	(cd examples/general;make dd-HB-dse.ex)
+Index: parms-3.dfsg/examples/general/makefile
+===================================================================
+--- parms-3.dfsg.orig/examples/general/makefile	2010-10-14 08:49:19.000000000 +0200
++++ parms-3.dfsg/examples/general/makefile	2010-10-14 08:49:19.000000000 +0200
+@@ -27,7 +27,7 @@
+ 	${LINKER} ${CLINKFLAGS} -o $@ dd-HB-dse.o aux.o skit.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR} ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} -lc
++	${MATH_LIB_DIR} ${MATH_LIB} -litsol
+ 
+ ## the next test run uses metis - link to metis must be provided
+ # METIS header files 
+@@ -45,7 +45,7 @@
+ 	${F90LINKER} ${FLINKFLAGS} -o $@ fdd-HB-dse.o aux.o skit.o \
+ 	${SHFLAGS} ${LIBFLAGS} ${PARMS_LIBS} \
+ 	${MPI_LIB_DIR} ${MPI_LIB} ${LAPACK_BLAS_LIB_DIR}  ${LAPACK_BLAS_LIB} \
+-	${MATH_LIB_DIR} ${MATH_LIB} -lc 
++	${MATH_LIB_DIR} ${MATH_LIB} -litsol
+ 
+ #fdd-HB-metis.ex: fdd-HB-metis.o aux.o skit.o
+ #	${LINKER} ${LINKFLAGS} -o $@ fdd-HB-metis.o aux.o skit.o \

Added: packages/parms/trunk/debian/rules
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/rules?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/rules (added)
+++ packages/parms/trunk/debian/rules Thu Oct 14 07:10:13 2010
@@ -1,0 +1,52 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+
+# Add here any variable or target overrides you need.
+CFLAGS += -fPIC -DUSE_MPI -DREAL=double -DDBL -DHAS_BLAS
+CFFLAGS += -fPIC -DFORTRAN_UNDERSCORE -DVOID_POINTER_SIZE_8
+FFLAGS += -fPIC -DVOID_POINTER_SIZE_8 -g
+
+
+# no check for this software
+DEB_MAKE_CHECK_TARGET := tests
+#DEB_MAKE_CHECK_TARGET := tests petsc
+
+# PETSC_DIR is the location of PETSc.
+export PETSC_DIR=/usr/lib/petscdir/3.1
+export PETSC_ARCH=linux-gnu-c-opt
+
+install/libparms-doc::
+	cd docs && pdflatex refmanual.tex
+	cd docs && pdflatex ug.tex && bibtex ug && pdflatex ug.tex
+	
+	mkdir -p $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	install -m 644 docs/refmanual.pdf $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	install -m 644 docs/ug.pdf $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	
+	mkdir -p $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	install -m 644 makefile.in $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	
+	cp -r examples $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+	cp makefile.in $(CURDIR)/debian/libparms-doc/usr/share/doc/parms
+
+install/libparms3::
+	mkdir -p $(CURDIR)/debian/libparms3/usr/lib
+	install lib/*.so.* $(CURDIR)/debian/libparms3/usr/lib
+
+install/libparms-dev::
+	mkdir -p $(CURDIR)/debian/libparms-dev/usr/include
+	install -m 644 include/* $(CURDIR)/debian/libparms-dev/usr/include
+	
+	mkdir -p $(CURDIR)/debian/libparms-dev/usr/lib
+	install lib/*.a $(CURDIR)/debian/libparms-dev/usr/lib
+	mv lib/*.so $(CURDIR)/debian/libparms-dev/usr/lib
+
+clean::
+	find . -name \*.o | xargs -r rm
+	find examples -name \*.ex | xargs -r rm
+	-rm lib/libparms.*
+	-rm docs/*.aux docs/*.bbl docs/*.blg docs/*.log docs/*.pdf

Propchange: packages/parms/trunk/debian/rules
------------------------------------------------------------------------------
    svn:executable = *

Added: packages/parms/trunk/debian/source/format
URL: http://svn.debian.org/wsvn/debian-science/packages/parms/trunk/debian/source/format?rev=36946&op=file
==============================================================================
--- packages/parms/trunk/debian/source/format (added)
+++ packages/parms/trunk/debian/source/format Thu Oct 14 07:10:13 2010
@@ -1,0 +1,1 @@
+3.0 (quilt)




More information about the debian-science-commits mailing list