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