From 3f302b360c9666c4e20c5b9f3a6eb5ce7ed8b6e9 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Wed, 23 Jul 2008 08:51:18 +0000 Subject: [PATCH] mld2p4: config/pac.m4 configure docs/html/WARNINGS docs/html/images.log docs/html/images.pl docs/html/images.tex docs/html/img100.png docs/html/img101.png docs/html/img92.png docs/html/img93.png docs/html/img94.png docs/html/img95.png docs/html/img96.png docs/html/img97.png docs/html/img98.png docs/html/img99.png docs/html/index.html docs/html/internals.pl docs/html/labels.pl docs/html/node1.html docs/html/node10.html docs/html/node11.html docs/html/node12.html docs/html/node13.html docs/html/node14.html docs/html/node15.html docs/html/node16.html docs/html/node17.html docs/html/node18.html docs/html/node19.html docs/html/node2.html docs/html/node20.html docs/html/node21.html docs/html/node22.html docs/html/node23.html docs/html/node24.html docs/html/node25.html docs/html/node26.html docs/html/node27.html docs/html/node28.html docs/html/node29.html docs/html/node3.html docs/html/node30.html docs/html/node31.html docs/html/node4.html docs/html/node5.html docs/html/node6.html docs/html/node7.html docs/html/node8.html docs/html/node9.html docs/html/userhtml.html docs/pdf/Makefile docs/pdf/abstract.tex docs/pdf/background.tex docs/pdf/bibliography.tex docs/pdf/building.tex docs/pdf/conventions.tex docs/pdf/distribution.tex docs/pdf/errors.tex docs/pdf/gettingstarted.tex docs/pdf/overview.tex docs/pdf/title.tex docs/pdf/userguide.tex docs/pdf/userhtml.tex docs/pdf/userinterface.tex Configure minro fix: require psblas 2.3 Doc fixes: dual version of title for pdf/html, fixed tables. --- config/pac.m4 | 2 +- configure | 2 +- docs/html/WARNINGS | 25 +-- docs/html/images.log | 283 +++++++++++++++----------- docs/html/images.pl | 60 +++--- docs/html/images.tex | 296 ++++++++++++++++++--------- docs/html/img100.png | Bin 673 -> 375 bytes docs/html/img101.png | Bin 0 -> 684 bytes docs/html/img92.png | Bin 272 -> 687 bytes docs/html/img93.png | Bin 634 -> 275 bytes docs/html/img94.png | Bin 257 -> 636 bytes docs/html/img95.png | Bin 200 -> 259 bytes docs/html/img96.png | Bin 216 -> 202 bytes docs/html/img97.png | Bin 648 -> 218 bytes docs/html/img98.png | Bin 678 -> 647 bytes docs/html/img99.png | Bin 372 -> 683 bytes docs/html/index.html | 140 +++---------- docs/html/internals.pl | 42 +++- docs/html/labels.pl | 170 +++++++++++++++- docs/html/node1.html | 155 +++++++------- docs/html/node10.html | 84 ++++---- docs/html/node11.html | 391 ++++++++++++++++++------------------ docs/html/node12.html | 179 +++++++++-------- docs/html/node13.html | 118 ++++++----- docs/html/node14.html | 118 +++++------ docs/html/node15.html | 109 +++++----- docs/html/node16.html | 33 +-- docs/html/node17.html | 53 ++--- docs/html/node18.html | 33 +-- docs/html/node19.html | 293 ++++++++++++++++----------- docs/html/node2.html | 243 ++++++++-------------- docs/html/node20.html | 33 +-- docs/html/node21.html | 52 ++--- docs/html/node22.html | 51 ++--- docs/html/node23.html | 137 +++++++------ docs/html/node24.html | 33 +-- docs/html/node25.html | 38 ++-- docs/html/node26.html | 37 ++-- docs/html/node27.html | 42 ++-- docs/html/node28.html | 36 ++-- docs/html/node29.html | 31 ++- docs/html/node3.html | 179 ++++++++++++++--- docs/html/node30.html | 82 +++++--- docs/html/node31.html | 29 +-- docs/html/node4.html | 45 +++-- docs/html/node5.html | 49 ++--- docs/html/node6.html | 114 ++++++----- docs/html/node7.html | 53 ++--- docs/html/node8.html | 38 ++-- docs/html/node9.html | 40 ++-- docs/html/userhtml.html | 140 +++---------- docs/pdf/Makefile | 4 +- docs/pdf/abstract.tex | 4 +- docs/pdf/background.tex | 2 +- docs/pdf/bibliography.tex | 36 +++- docs/pdf/building.tex | 97 ++++----- docs/pdf/conventions.tex | 8 - docs/pdf/distribution.tex | 12 +- docs/pdf/errors.tex | 8 +- docs/pdf/gettingstarted.tex | 29 +-- docs/pdf/overview.tex | 8 +- docs/pdf/title.tex | 27 ++- docs/pdf/userguide.tex | 51 ++++- docs/pdf/userhtml.tex | 20 +- docs/pdf/userinterface.tex | 88 ++++---- 65 files changed, 2445 insertions(+), 2037 deletions(-) create mode 100644 docs/html/img101.png delete mode 100644 docs/pdf/conventions.tex diff --git a/config/pac.m4 b/config/pac.m4 index 24823089..2037614e 100644 --- a/config/pac.m4 +++ b/config/pac.m4 @@ -290,7 +290,7 @@ AC_DEFUN([PAC_ARG_WITH_PSBLAS], [ AC_ARG_WITH(psblas, AC_HELP_STRING([--with-psblas], [The source directory for PSBLAS, for example, - --with-psblas=/opt/packages/psblas-2.2]), + --with-psblas=/opt/packages/psblas-2.3]), [pac_cv_psblas_dir=$withval], [pac_cv_psblas_dir='']) ] diff --git a/configure b/configure index 71e66674..460e526f 100755 --- a/configure +++ b/configure @@ -1268,7 +1268,7 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-psblas The source directory for PSBLAS, for example, - --with-psblas=/opt/packages/psblas-2.2 + --with-psblas=/opt/packages/psblas-2.3 --with-libs List additional link flags here. For example, --with-libs=-lspecial_system_lib or --with-libs=-L/path/to/libs diff --git a/docs/html/WARNINGS b/docs/html/WARNINGS index 07a60fab..880604a3 100644 --- a/docs/html/WARNINGS +++ b/docs/html/WARNINGS @@ -8,30 +8,11 @@ No implementation found for style `rotating' redefining command \thepage -The userhtml.aux file was not found, so sections will not be numbered -and cross-references will be shown as icons. +? brace missing for \ -? brace missing for \setlength - -No number for "Applicationofthemulti-levelhybridpost-smoothedpreconditioner." - -No number for "Preconditionertypes,correspondingstringsanddefaultchoices." - -No number for "Setupandapplicationofthedefaultmulti-levelSchwarzpreconditioner." - -No number for "Setupofahybridthree-levelSchwarzpreconditioner." - -No number for "Setupofanadditivethree-levelSchwarzpreconditioner." +Substitution of arg to newlabelxx delayed. -No number for "Setupofaone-levelSchwarzpreconditioner." - -No number for "Parametersdefiningthetypeofmulti-levelpreconditioner." - -No number for "Parametersdefiningtheone-levelpreconditionerusedassmoother." - -No number for "Parametersdefiningtheaggregationalgorithm." - -No number for "Parametersdefiningthecoarse-spacecorrectionatthecoarsestlevel." +? brace missing for \setlength couldn't convert character ecaron into available encodings ...set $ACCENT_IMAGES to get an image diff --git a/docs/html/images.log b/docs/html/images.log index 162a207b..c562b391 100644 --- a/docs/html/images.log +++ b/docs/html/images.log @@ -1,4 +1,4 @@ -This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2008.5.20) 22 JUL 2008 18:30 +This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2008.5.20) 23 JUL 2008 10:16 entering extended mode %&-line parsing enabled. **./images.tex @@ -28,8 +28,10 @@ File: size11.clo 2005/09/16 v1.4f Standard LaTeX file (size option) \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 -) (/usr/share/texmf/tex/latex/pstricks/pstricks.sty +) +(/usr/share/texmf/tex/latex/pstricks/pstricks.sty Package: pstricks 2006/08/10 v0.32 LaTeX wrapper for `PSTricks' (RN,HV) + (/usr/share/texmf/tex/generic/pstricks/pstricks.tex `PSTricks' v1.15 <2006/12/22> (tvz) \pst@dima=\dimen103 @@ -62,13 +64,16 @@ Package: pstricks 2006/08/10 v0.32 LaTeX wrapper for `PSTricks' (RN,HV) \theoverlaybox=\box28 ) File: pstricks.tex 2006/12/22 v1.15 `PSTricks' (tvz) + (/usr/share/texmf/tex/latex/xcolor/xcolor.sty Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + (/usr/share/texmf/tex/latex/config/color.cfg File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive ) Package xcolor Info: Package option `override' ignored on input line 216. Package xcolor Info: Driver file: dvips.def on input line 225. + (/usr/share/texmf/tex/latex/graphics/dvips.def File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) ) @@ -80,8 +85,10 @@ Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. -)) (/usr/share/texmf/tex/latex/fancybox/fancybox.sty +)) +(/usr/share/texmf/tex/latex/fancybox/fancybox.sty Package: fancybox 2000/09/19 1.3 + Style option: `fancybox' v1.3 <2000/09/19> (tvz) \@fancybox=\box29 \shadowsize=\dimen118 @@ -99,11 +106,14 @@ Package: amsfonts 2001/10/25 v2.2f \symAMSb=\mathgroup5 LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' (Font) U/euf/m/n --> U/euf/b/n on input line 132. -) (/usr/share/texmf/tex/generic/oberdiek/ifpdf.sty +) +(/usr/share/texmf/tex/generic/oberdiek/ifpdf.sty Package: ifpdf 2006/02/20 v1.4 Provides the ifpdf switch (HO) Package ifpdf Info: pdfTeX in pdf mode not detected. -) (/usr/share/texmf/tex/latex/hyperref/hyperref.sty +) +(/usr/share/texmf/tex/latex/hyperref/hyperref.sty Package: hyperref 2007/02/07 v6.75r Hypertext links for LaTeX + (/usr/share/texmf/tex/latex/graphics/keyval.sty Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \KV@toks@=\toks22 @@ -111,11 +121,14 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \@linkdim=\dimen119 \Hy@linkcounter=\count93 \Hy@pagecounter=\count94 + (/usr/share/texmf/tex/latex/hyperref/pd1enc.def File: pd1enc.def 2007/02/07 v6.75r Hyperref: PDFDocEncoding definition (HO) -) (/usr/share/texmf/tex/latex/config/hyperref.cfg +) +(/usr/share/texmf/tex/latex/config/hyperref.cfg File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive -) (/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty +) +(/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty Package: kvoptions 2006/08/22 v2.4 Connects package keyval with LaTeX options ( HO) ) @@ -131,6 +144,7 @@ Package hyperref Info: Link nesting OFF on input line 2293. Package hyperref Info: Hyper index ON on input line 2296. Package hyperref Info: Plain pages OFF on input line 2303. Package hyperref Info: Backreferencing OFF on input line 2308. + Implicit mode ON; LaTeX internals redefined Package hyperref Info: Bookmarks ON on input line 2444. (/usr/share/texmf/tex/latex/html/url.sty @@ -155,6 +169,7 @@ Package hyperref Info: Link coloring ON on input line 3120. *hyperref using default driver hdvips* (/usr/share/texmf/tex/latex/hyperref/hdvips.def File: hdvips.def 2007/02/07 v6.75r Hyperref driver for dvips + (/usr/share/texmf/tex/latex/hyperref/pdfmark.def File: pdfmark.def 2007/02/07 v6.75r Hyperref definitions for pdfmark specials \pdf@docset=\toks25 @@ -162,15 +177,20 @@ File: pdfmark.def 2007/02/07 v6.75r Hyperref definitions for pdfmark specials \pdf@toks=\toks26 \pdf@defaulttoks=\toks27 \Fld@listcount=\count99 -)) (/usr/share/texmf/tex/latex/base/ifthen.sty +)) +(/usr/share/texmf/tex/latex/base/ifthen.sty Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) -) (/usr/share/texmf/tex/latex/graphics/graphicx.sty +) +(/usr/share/texmf/tex/latex/graphics/graphicx.sty Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf/tex/latex/graphics/graphics.sty Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf/tex/latex/graphics/trig.sty Package: trig 1999/03/16 v1.09 sin cos tan (DPC) -) (/usr/share/texmf/tex/latex/config/graphics.cfg +) +(/usr/share/texmf/tex/latex/config/graphics.cfg File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive ) Package graphics Info: Driver file: dvips.def on input line 90. @@ -180,6 +200,7 @@ Package graphics Info: Driver file: dvips.def on input line 90. ) \c@theorem=\count100 \c@corollary=\count101 + (/usr/share/texmf/tex/latex/rotating/rotating.sty Package: rotating 1997/09/26, v2.13 Rotation package \c@r@tfl@t=\count102 @@ -187,9 +208,11 @@ Package: rotating 1997/09/26, v2.13 Rotation package ) \c@subroutine=\count103 \c@example=\count104 + (/usr/share/texmf/tex/latex/pstricks/pstcol.sty Package: pstcol 2005/11/16 v1.2 LaTeX wrapper for `PSTricks' (RN,HV) + Package pstcol Warning: ************************************ (pstcol) The package `pstcol' is obsolet! (pstcol) You should use `pstricks' directly: @@ -218,12 +241,24 @@ Try typing to proceed. Package: inputenc 2006/05/05 v1.1b Input encoding file \inpenc@prehook=\toks28 \inpenc@posthook=\toks29 + (/usr/share/texmf/tex/latex/base/latin1.def File: latin1.def 2006/05/05 v1.1b Input encoding file )) \sizebox=\box33 \lthtmlwrite=\write4 -No file images.aux. + (./images.aux +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/title.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/abstract.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/overview.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/distribution.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/building.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/background.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/gettingstarted.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/userinterface.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/errors.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/license.aux) +(/home/sfilippo/NUMERICAL/PSBLAS2/mld2p4-dev/docs/pdf/tmp/bibliography.aux)) \openout1 = `images.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 152. @@ -241,8 +276,10 @@ LaTeX Font Info: ... okay on input line 152. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 152. LaTeX Font Info: ... okay on input line 152. Package hyperref Info: Link coloring ON on input line 152. + (/usr/share/texmf/tex/latex/hyperref/nameref.sty Package: nameref 2006/12/27 v2.28 Cross-referencing by name of section + (/usr/share/texmf/tex/latex/oberdiek/refcount.sty Package: refcount 2006/02/20 v3.0 Data extraction from references (HO) ) @@ -250,12 +287,12 @@ Package: refcount 2006/02/20 v3.0 Data extraction from references (HO) ) LaTeX Info: Redefining \ref on input line 152. LaTeX Info: Redefining \pageref on input line 152. + (./images.out) +(./images.out) \@outlinefile=\write5 \openout5 = `images.out'. -Package hyperref Warning: Rerun to get /PageLabels entry. - latex2htmlLength hsize=349.0pt @@ -280,522 +317,528 @@ latex2htmlLength oddsidemargin=22.0pt latex2htmlLength evensidemargin=70.0pt \centeroffset=\skip43 -LaTeX Font Info: Try loading font information for U+msa on input line 184. +LaTeX Font Info: Try loading font information for U+msa on input line 185. (/usr/share/texmf/tex/latex/amsfonts/umsa.fd File: umsa.fd 2002/01/19 v2.2g AMS font definitions ) -LaTeX Font Info: Try loading font information for U+msb on input line 184. +LaTeX Font Info: Try loading font information for U+msb on input line 185. + (/usr/share/texmf/tex/latex/amsfonts/umsb.fd File: umsb.fd 2002/01/19 v2.2g AMS font definitions ) -l2hSize :displaymath238:15.72917pt::0.0pt::349.0pt. +l2hSize :displaymath242:15.72917pt::0.0pt::349.0pt. [1 ] -l2hSize :tex2html_wrap_inline265:7.48248pt::0.0pt::8.76004pt. +l2hSize :tex2html_wrap_inline268:7.48248pt::0.0pt::8.76004pt. [2 ] -l2hSize :tex2html_wrap_inline586:9.30704pt::9.30704pt::83.67497pt. +l2hSize :tex2html_wrap_inline588:9.30704pt::9.30704pt::83.67497pt. [3 ] -l2hSize :tex2html_wrap_inline588:8.7125pt::8.7125pt::55.89207pt. +l2hSize :tex2html_wrap_inline590:8.7125pt::8.7125pt::55.89207pt. [4 ] -l2hSize :tex2html_wrap_inline592:8.7125pt::8.7125pt::84.68239pt. +l2hSize :tex2html_wrap_inline594:8.7125pt::8.7125pt::84.68239pt. [5 ] -l2hSize :tex2html_wrap_inline594:8.7125pt::8.7125pt::99.38406pt. +l2hSize :tex2html_wrap_inline596:8.7125pt::8.7125pt::99.38406pt. [6 ] -l2hSize :tex2html_wrap_inline596:7.48248pt::0.0pt::9.15695pt. +l2hSize :tex2html_wrap_inline598:7.48248pt::0.0pt::9.15695pt. [7 ] -l2hSize :tex2html_wrap_inline598:8.10416pt::8.10416pt::25.90352pt. +l2hSize :tex2html_wrap_inline600:8.10416pt::8.10416pt::25.90352pt. [8 ] -l2hSize :tex2html_wrap_inline600:7.60416pt::0.0pt::5.8286pt. +l2hSize :tex2html_wrap_inline602:7.60416pt::0.0pt::5.8286pt. [9 ] -l2hSize :tex2html_wrap_inline602:7.48248pt::0.0pt::12.41005pt. +l2hSize :tex2html_wrap_inline604:7.48248pt::0.0pt::12.41005pt. [10 ] -l2hSize :tex2html_wrap_inline606:7.07185pt::0.0pt::10.16177pt. +l2hSize :tex2html_wrap_inline608:7.07185pt::0.0pt::10.16177pt. [11 ] -l2hSize :tex2html_wrap_inline608:9.62923pt::9.62923pt::43.62254pt. +l2hSize :tex2html_wrap_inline610:9.62923pt::9.62923pt::43.62254pt. [12 ] -l2hSize :tex2html_wrap_inline610:9.62923pt::9.62923pt::65.17778pt. +l2hSize :tex2html_wrap_inline612:9.62923pt::9.62923pt::65.17778pt. [13 ] -l2hSize :tex2html_wrap_inline616:10.66058pt::10.66058pt::58.85606pt. +l2hSize :tex2html_wrap_inline618:10.66058pt::10.66058pt::58.85606pt. [14 ] -l2hSize :tex2html_wrap_inline618:10.66058pt::10.66058pt::27.83247pt. +l2hSize :tex2html_wrap_inline620:10.66058pt::10.66058pt::27.83247pt. [15 ] -l2hSize :tex2html_wrap_inline620:10.02922pt::10.02922pt::11.68126pt. +l2hSize :tex2html_wrap_inline622:10.02922pt::10.02922pt::11.68126pt. [16 ] -l2hSize :tex2html_wrap_inline622:10.02922pt::10.02922pt::16.9712pt. +l2hSize :tex2html_wrap_inline624:10.02922pt::10.02922pt::16.9712pt. [17 ] -l2hSize :tex2html_wrap_inline624:11.46367pt::11.46367pt::56.33008pt. +l2hSize :tex2html_wrap_inline626:11.46367pt::11.46367pt::56.33008pt. [18 ] -l2hSize :tex2html_wrap_inline626:8.10416pt::8.10416pt::33.19717pt. +l2hSize :tex2html_wrap_inline628:8.10416pt::8.10416pt::33.19717pt. [19 ] -l2hSize :tex2html_wrap_inline628:11.46367pt::11.46367pt::41.86319pt. +l2hSize :tex2html_wrap_inline630:11.46367pt::11.46367pt::41.86319pt. [20 ] -l2hSize :tex2html_wrap_inline630:7.07185pt::0.0pt::6.24812pt. +l2hSize :tex2html_wrap_inline632:7.07185pt::0.0pt::6.24812pt. [21 ] -l2hSize :tex2html_wrap_inline634:10.02922pt::10.02922pt::13.50749pt. +l2hSize :tex2html_wrap_inline636:10.02922pt::10.02922pt::13.50749pt. [22 ] -l2hSize :tex2html_wrap_inline636:10.96367pt::0.0pt::18.2182pt. +l2hSize :tex2html_wrap_inline638:10.96367pt::0.0pt::18.2182pt. [23 ] -l2hSize :tex2html_wrap_inline638:7.60416pt::0.0pt::14.11334pt. +l2hSize :tex2html_wrap_inline640:7.60416pt::0.0pt::14.11334pt. [24 ] -l2hSize :tex2html_wrap_inline640:11.46367pt::11.46367pt::124.12694pt. +l2hSize :tex2html_wrap_inline642:11.46367pt::11.46367pt::124.12694pt. [25 ] -l2hSize :tex2html_wrap_inline644:10.02922pt::10.02922pt::16.9712pt. +l2hSize :tex2html_wrap_inline646:10.02922pt::10.02922pt::16.9712pt. [26 ] -l2hSize :displaymath564:33.45825pt::0.0pt::349.0pt. +l2hSize :displaymath566:33.45825pt::0.0pt::349.0pt. [27 ] -l2hSize :tex2html_wrap_inline646:10.02922pt::10.02922pt::13.3212pt. +l2hSize :tex2html_wrap_inline648:10.02922pt::10.02922pt::13.3212pt. [28 ] -l2hSize :tex2html_wrap_inline652:10.02922pt::10.02922pt::42.50967pt. +l2hSize :tex2html_wrap_inline654:10.02922pt::10.02922pt::42.50967pt. [29 ] -l2hSize :tex2html_wrap_inline654:7.72179pt::7.72179pt::58.3423pt. +l2hSize :tex2html_wrap_inline656:7.72179pt::7.72179pt::58.3423pt. [30 ] -l2hSize :tex2html_wrap_inline656:10.02922pt::10.02922pt::47.85603pt. +l2hSize :tex2html_wrap_inline658:10.02922pt::10.02922pt::47.85603pt. [31 ] -l2hSize :tex2html_wrap_inline660:7.57185pt::7.57185pt::11.78078pt. +l2hSize :tex2html_wrap_inline662:7.57185pt::7.57185pt::11.78078pt. [32 ] -l2hSize :tex2html_wrap_inline662:10.02922pt::10.02922pt::88.43413pt. +l2hSize :tex2html_wrap_inline664:10.02922pt::10.02922pt::88.43413pt. [33 ] -l2hSize :tex2html_wrap_inline664:7.57185pt::7.57185pt::6.05675pt. +l2hSize :tex2html_wrap_inline666:7.57185pt::7.57185pt::6.05675pt. [34 ] -l2hSize :tex2html_wrap_inline668:7.57185pt::7.57185pt::14.87756pt. +l2hSize :tex2html_wrap_inline670:7.57185pt::7.57185pt::14.87756pt. [35 ] -l2hSize :tex2html_wrap_inline672:11.46367pt::11.46367pt::71.66493pt. +l2hSize :tex2html_wrap_inline674:11.46367pt::11.46367pt::71.66493pt. [36 ] -l2hSize :tex2html_wrap_inline674:10.58096pt::10.58096pt::13.6964pt. +l2hSize :tex2html_wrap_inline676:10.58096pt::10.58096pt::13.6964pt. [37 ] -l2hSize :tex2html_wrap_inline676:10.02922pt::10.02922pt::13.50749pt. +l2hSize :tex2html_wrap_inline678:10.02922pt::10.02922pt::13.50749pt. [38 ] -l2hSize :tex2html_wrap_inline678:10.02922pt::10.02922pt::39.05879pt. +l2hSize :tex2html_wrap_inline680:10.02922pt::10.02922pt::39.05879pt. [39 ] -l2hSize :displaymath565:33.45825pt::0.0pt::349.0pt. +l2hSize :displaymath567:33.45825pt::0.0pt::349.0pt. [40 ] -l2hSize :displaymath566:33.45825pt::0.0pt::349.0pt. +l2hSize :displaymath568:33.45825pt::0.0pt::349.0pt. [41 ] -l2hSize :tex2html_wrap_inline680:7.60416pt::0.0pt::25.90352pt. +l2hSize :tex2html_wrap_inline682:7.60416pt::0.0pt::25.90352pt. [42 ] -l2hSize :tex2html_wrap_inline686:7.98248pt::7.98248pt::15.88345pt. +l2hSize :tex2html_wrap_inline688:7.98248pt::7.98248pt::15.88345pt. [43 ] -l2hSize :tex2html_wrap_inline692:7.98248pt::7.98248pt::18.01262pt. +l2hSize :tex2html_wrap_inline694:7.98248pt::7.98248pt::18.01262pt. [44 ] -l2hSize :tex2html_wrap_inline694:7.57185pt::7.57185pt::14.24352pt. +l2hSize :tex2html_wrap_inline696:7.57185pt::7.57185pt::14.24352pt. [45 ] -l2hSize :tex2html_wrap_inline696:9.30704pt::9.30704pt::60.92035pt. +l2hSize :tex2html_wrap_inline698:9.30704pt::9.30704pt::60.92035pt. [46 ] -l2hSize :displaymath567:16.30702pt::0.0pt::349.0pt. +l2hSize :displaymath569:16.30702pt::0.0pt::349.0pt. [47 ] -l2hSize :tex2html_wrap_inline700:7.98248pt::7.98248pt::21.70126pt. +l2hSize :tex2html_wrap_inline702:7.98248pt::7.98248pt::21.70126pt. [48 ] -l2hSize :displaymath568:17.04697pt::0.0pt::349.0pt. +l2hSize :displaymath570:17.04697pt::0.0pt::349.0pt. [49 ] -l2hSize :tex2html_wrap_inline704:10.26059pt::10.26059pt::23.72566pt. +l2hSize :tex2html_wrap_inline706:10.26059pt::10.26059pt::23.72566pt. [50 ] -l2hSize :tex2html_wrap_inline710:7.98248pt::7.98248pt::18.29398pt. +l2hSize :tex2html_wrap_inline712:7.98248pt::7.98248pt::18.29398pt. [51 ] -l2hSize :displaymath569:17.04697pt::0.0pt::349.0pt. +l2hSize :displaymath571:17.04697pt::0.0pt::349.0pt. [52 ] -l2hSize :tex2html_wrap_inline714:10.26059pt::10.26059pt::34.67923pt. +l2hSize :tex2html_wrap_inline716:10.26059pt::10.26059pt::34.67923pt. [53 ] -l2hSize :tex2html_wrap_inline720:10.26059pt::10.26059pt::23.72566pt. +l2hSize :tex2html_wrap_inline722:10.26059pt::10.26059pt::23.72566pt. [54 ] -l2hSize :displaymath570:28.68124pt::0.0pt::349.0pt. +l2hSize :displaymath572:28.68124pt::0.0pt::349.0pt. [55 ] -l2hSize :displaymath571:17.88034pt::0.0pt::349.0pt. +l2hSize :displaymath573:17.88034pt::0.0pt::349.0pt. [56 ] -l2hSize :displaymath572:28.68124pt::0.0pt::349.0pt. +l2hSize :displaymath574:28.68124pt::0.0pt::349.0pt. [57 ] -l2hSize :displaymath573:17.88034pt::0.0pt::349.0pt. +l2hSize :displaymath575:17.88034pt::0.0pt::349.0pt. [58 ] -l2hSize :tex2html_wrap_inline734:7.48248pt::0.0pt::12.3644pt. +l2hSize :tex2html_wrap_inline736:7.48248pt::0.0pt::12.3644pt. [59 ] -l2hSize :tex2html_wrap_inline738:9.12923pt::0.0pt::52.16011pt. +l2hSize :tex2html_wrap_inline740:9.12923pt::0.0pt::52.16011pt. [60 ] -l2hSize :tex2html_wrap_inline740:7.60416pt::0.0pt::21.40202pt. +l2hSize :tex2html_wrap_inline742:7.60416pt::0.0pt::21.40202pt. [61 ] -l2hSize :tex2html_wrap_inline742:7.60416pt::0.0pt::4.03026pt. +l2hSize :tex2html_wrap_inline744:7.60416pt::0.0pt::4.03026pt. [62 ] -l2hSize :tex2html_wrap_inline744:7.98248pt::7.98248pt::11.892pt. +l2hSize :tex2html_wrap_inline746:7.98248pt::7.98248pt::11.892pt. [63 ] -l2hSize :tex2html_wrap_inline746:7.98248pt::7.98248pt::14.30252pt. +l2hSize :tex2html_wrap_inline748:7.98248pt::7.98248pt::14.30252pt. [64 ] -l2hSize :tex2html_wrap_inline748:7.98248pt::7.98248pt::36.32253pt. +l2hSize :tex2html_wrap_inline750:7.98248pt::7.98248pt::36.32253pt. [65 ] -l2hSize :tex2html_wrap860:139.25392pt::133.77895pt::349.0pt. +l2hSize :tex2html_wrap862:139.25392pt::133.77895pt::349.0pt. [66 ] -l2hSize :tex2html_wrap_inline776:7.98248pt::7.98248pt::15.98515pt. +l2hSize :tex2html_wrap_inline778:7.98248pt::7.98248pt::15.98515pt. [67 ] -l2hSize :tex2html_wrap_inline784:9.94032pt::9.94032pt::15.98515pt. +l2hSize :tex2html_wrap_inline786:9.94032pt::9.94032pt::15.98515pt. [68 ] -l2hSize :tex2html_wrap_inline798:7.98248pt::7.98248pt::13.91736pt. +l2hSize :tex2html_wrap_inline800:7.98248pt::7.98248pt::13.91736pt. [69 ] -l2hSize :tex2html_wrap_inline802:7.98248pt::7.98248pt::31.03764pt. +l2hSize :tex2html_wrap_inline804:7.98248pt::7.98248pt::31.03764pt. [70 ] -l2hSize :displaymath574:20.71762pt::0.0pt::349.0pt. +l2hSize :displaymath576:20.71762pt::0.0pt::349.0pt. [71 ] -l2hSize :tex2html_wrap_inline804:8.7125pt::8.7125pt::41.27534pt. +l2hSize :tex2html_wrap_inline806:8.7125pt::8.7125pt::41.27534pt. [72 ] -l2hSize :tex2html_wrap_inline806:7.22179pt::0.0pt::4.31995pt. +l2hSize :tex2html_wrap_inline808:7.22179pt::0.0pt::4.31995pt. [73 ] -l2hSize :tex2html_wrap_inline808:9.62923pt::9.62923pt::17.16011pt. +l2hSize :tex2html_wrap_inline810:9.62923pt::9.62923pt::17.16011pt. [74 ] -l2hSize :tex2html_wrap_inline812:9.94032pt::9.94032pt::44.73853pt. +l2hSize :tex2html_wrap_inline814:9.94032pt::9.94032pt::44.73853pt. [75 ] -l2hSize :tex2html_wrap_inline814:9.30704pt::9.30704pt::54.03362pt. +l2hSize :tex2html_wrap_inline816:9.30704pt::9.30704pt::54.03362pt. [76 ] -l2hSize :displaymath531:29.29593pt::0.0pt::349.0pt. +l2hSize :displaymath533:29.29593pt::0.0pt::349.0pt. [77 ] -l2hSize :tex2html_wrap_inline816:7.98248pt::7.98248pt::14.70099pt. +l2hSize :tex2html_wrap_inline818:7.98248pt::7.98248pt::14.70099pt. [78 ] -l2hSize :tex2html_wrap_inline818:7.48248pt::0.0pt::9.09842pt. +l2hSize :tex2html_wrap_inline820:7.48248pt::0.0pt::9.09842pt. [79 ] -l2hSize :tex2html_wrap_inline820:9.30704pt::9.30704pt::46.61087pt. +l2hSize :tex2html_wrap_inline822:9.30704pt::9.30704pt::46.61087pt. [80 ] -l2hSize :displaymath542:15.72917pt::0.0pt::349.0pt. +l2hSize :displaymath544:15.72917pt::0.0pt::349.0pt. [81 ] -l2hSize :tex2html_wrap_inline822:7.48248pt::0.0pt::7.89314pt. +l2hSize :tex2html_wrap_inline824:7.48248pt::0.0pt::7.89314pt. [82 ] -l2hSize :displaymath546:15.72917pt::0.0pt::349.0pt. +l2hSize :displaymath548:15.72917pt::0.0pt::349.0pt. [83 ] -l2hSize :tex2html_wrap_inline824:7.07185pt::0.0pt::7.75627pt. +l2hSize :tex2html_wrap_inline826:7.07185pt::0.0pt::7.75627pt. [84 ] -l2hSize :tex2html_wrap_inline826:9.12923pt::0.0pt::29.49117pt. +l2hSize :tex2html_wrap_inline828:9.12923pt::0.0pt::29.49117pt. [85 ] -l2hSize :tex2html_wrap_inline983:7.60416pt::0.0pt::26.06703pt. +l2hSize :tex2html_wrap_inline985:7.60416pt::0.0pt::26.06703pt. [86 ] -l2hSize :tex2html_wrap_inline1324:7.07185pt::0.0pt::8.68147pt. +l2hSize :tex2html_wrap_inline1316:7.07185pt::0.0pt::8.68147pt. [87 ] -l2hSize :tex2html_wrap_inline1328:7.57185pt::7.57185pt::17.58084pt. +l2hSize :tex2html_wrap_inline1320:7.57185pt::7.57185pt::17.58084pt. [88 ] -l2hSize :tex2html_wrap_inline1342:7.07185pt::0.0pt::4.50171pt. +l2hSize :tex2html_wrap_inline1334:7.07185pt::0.0pt::4.50171pt. [89 ] -l2hSize :tex2html_wrap_inline1346:8.7125pt::8.7125pt::32.78915pt. +l2hSize :tex2html_wrap_inline1338:8.7125pt::8.7125pt::32.78915pt. [90 ] -l2hSize :tex2html_wrap_inline1348:7.60416pt::0.0pt::5.99211pt. +l2hSize :tex2html_wrap_inline1340:7.60416pt::0.0pt::5.99211pt. [91 ] -l2hSize :tex2html_wrap_inline1352:7.57185pt::7.57185pt::17.58084pt. +l2hSize :tex2html_wrap_inline1346:9.62923pt::9.62923pt::75.59969pt. [92 ] -l2hSize :tex2html_wrap_inline1374:9.62923pt::9.62923pt::71.50383pt. +l2hSize :tex2html_wrap_inline1362:7.57185pt::7.57185pt::17.58084pt. [93 ] -l2hSize :tex2html_wrap_inline1378:7.57185pt::7.57185pt::11.36446pt. +l2hSize :tex2html_wrap_inline1374:9.62923pt::9.62923pt::71.50383pt. [94 ] -l2hSize :tex2html_wrap_inline1382:7.07185pt::0.0pt::6.80576pt. +l2hSize :tex2html_wrap_inline1378:7.57185pt::7.57185pt::11.36446pt. [95 ] -l2hSize :tex2html_wrap_inline1384:7.57185pt::7.57185pt::6.30898pt. +l2hSize :tex2html_wrap_inline1382:7.07185pt::0.0pt::6.80576pt. [96 ] -l2hSize :tex2html_wrap_inline1386:9.62923pt::9.62923pt::80.83733pt. +l2hSize :tex2html_wrap_inline1384:7.57185pt::7.57185pt::6.30898pt. [97 ] -l2hSize :tex2html_wrap_inline1388:9.94032pt::9.94032pt::82.71652pt. +l2hSize :tex2html_wrap_inline1386:9.62923pt::9.62923pt::80.83733pt. [98 ] -l2hSize :tex2html_wrap_inline1390:9.62923pt::9.62923pt::27.98401pt. +l2hSize :tex2html_wrap_inline1388:9.94032pt::9.94032pt::82.71652pt. [99 ] -l2hSize :tex2html_wrap_inline1392:9.94032pt::9.94032pt::83.21068pt. +l2hSize :tex2html_wrap_inline1390:9.62923pt::9.62923pt::27.98401pt. [100 +] +l2hSize :tex2html_wrap_inline1392:9.94032pt::9.94032pt::83.21068pt. +[101 + + ] (./images.aux) ) Here is how much of TeX's memory you used: - 4265 strings out of 94074 - 55276 string characters out of 1167173 - 134209 words of memory out of 1500000 - 7519 multiletter control sequences out of 10000+50000 + 4373 strings out of 94074 + 57907 string characters out of 1167173 + 141384 words of memory out of 1500000 + 7590 multiletter control sequences out of 10000+50000 10304 words of font info for 41 fonts, out of 1200000 for 2000 645 hyphenation exceptions out of 8191 30i,8n,37p,306b,390s stack positions out of 5000i,500n,6000p,200000b,10000s -Output written on images.dvi (100 pages, 72052 bytes). +Output written on images.dvi (101 pages, 72868 bytes). diff --git a/docs/html/images.pl b/docs/html/images.pl index af31e37c..7b58171d 100644 --- a/docs/html/images.pl +++ b/docs/html/images.pl @@ -85,7 +85,7 @@ $cached_env_img{$key} = q|$op(M^{-1}) = M^{-T}$|; $key = q/W_i^{delta-1};MSF=1.6;LFS=11;AAT/; @@ -140,8 +140,8 @@ $cached_env_img{$key} = q|$y$|; $key = q/{displaymath}A_C=R_CAR_C^T{displaymath};MSF=1.6;LFS=11;AAT/; @@ -205,6 +205,12 @@ $cached_env_img{$key} = q|$A_l$|; +$key = q/A_i^delta;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$A_i^\delta$|; + $key = q/n_C;MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$W_i^\delta$|; -$key = q/A_i^delta;MSF=1.6;LFS=11;AAT/; -$cached_env_img{$key} = q|$A_i^\delta$|; - $key = q/{displaymath}M_{AS}^{-1}=sum_{i=1}^m(R_i^{delta})^T(A_i^delta)^{-1}R_i^{delta},{displaymath};MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|0;MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$>0$|; + WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" + SRC="|."$dir".q|img93.png" + ALT="$> 0$">|; $key = q/(tilde{R}_i^0)^TinRe^{n_i^deltatimesn};MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$x$|; $key = q/G=(W,E);MSF=1.6;LFS=11;AAT/; @@ -388,7 +388,7 @@ $cached_env_img{$key} = q|$M^{-1})$|; $key = q/{displaymath}M_{C}^{-1}=R_C^TA_C^{-1}R_C,{displaymath};MSF=1.6;LFS=11;AAT/; @@ -418,6 +418,12 @@ $cached_env_img{$key} = q|$\in [0, 1]$|; +$key = q/Re^n;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$\Re^n$|; + $key = q/{displaymath}array{{l}w=M_{C}^{-1}v,z=w+M_{1L}^{-1}(v-Aw),array{{displaymath};MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$p,t$|; -$key = q/Re^n;MSF=1.6;LFS=11;AAT/; -$cached_env_img{$key} = q|$\Re^n$|; - $key = q/t;MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$op$|; $key = q/G;MSF=1.6;LFS=11;AAT/; @@ -520,6 +520,12 @@ $cached_env_img{$key} = q|$\omega$|; +$key = q/4slash(3||D^{-1}A||_infty);MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$4/(3\vert\vert D^{-1}A\vert\vert _\infty)$|; + $key = q/P_C;MSF=1.6;LFS=11;AAT/; $cached_env_img{$key} = q|$op(M^{-1}) = M^{-1}$|; $key = q/W={1,2,ldots,n};MSF=1.6;LFS=11;AAT/; @@ -578,8 +584,8 @@ $cached_env_img{$key} = q|$y = op(M^{-1})  x$|; $key = q/{displaymath}S=I-omegaD^{-1}A,{displaymath};MSF=1.6;LFS=11;AAT/; @@ -613,7 +619,7 @@ $cached_env_img{$key} = q|$op(M^{-1}) = M^{-C}$|; $key = q/W_i^deltasupsetW_i^{delta-1};MSF=1.6;LFS=11;AAT/; diff --git a/docs/html/images.tex b/docs/html/images.tex index 860a21bf..550a1716 100644 --- a/docs/html/images.tex +++ b/docs/html/images.tex @@ -1,4 +1,4 @@ -\batchmode +\nonstopmode \documentclass[a4paper,twoside,11pt]{article} \usepackage{pstricks} @@ -180,7 +180,8 @@ \endgroup \stepcounter{section} {\newpage\clearpage -\lthtmldisplayA{displaymath238}% +% contents=begin{displaymath} Ax=b, end{displaymath} +\lthtmldisplayA{displaymath242}% \begin{displaymath} Ax=b, \end{displaymath}% @@ -188,12 +189,12 @@ Ax=b, \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline265}% +% contents=$A$ +\lthtmlinlinemathA{tex2html_wrap_inline268}% $A$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} -\stepcounter{section} \stepcounter{section} \stepcounter{section} \stepcounter{subsection} @@ -203,153 +204,178 @@ $A$% \stepcounter{section} \stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline586}% +% contents=$A=(a_{ij}) \in \Re^{n \times n}$ +\lthtmlinlinemathA{tex2html_wrap_inline588}% $A=(a_{ij}) \in \Re^{n \times n}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline588}% +% contents=$G=(W,E)$ +\lthtmlinlinemathA{tex2html_wrap_inline590}% $G=(W,E)$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline592}% +% contents=$W=\{1, 2, \ldots, n\}$ +\lthtmlinlinemathA{tex2html_wrap_inline594}% $W=\{1, 2, \ldots, n\}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline594}% +% contents=$E=\{(i,j) : a_{ij} \neq 0\}$ +\lthtmlinlinemathA{tex2html_wrap_inline596}% $E=\{(i,j) : a_{ij} \neq 0\}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline596}% +% contents=$G$ +\lthtmlinlinemathA{tex2html_wrap_inline598}% $G$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline598}% +% contents=$\delta > 0$ +\lthtmlinlinemathA{tex2html_wrap_inline600}% $\delta > 0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline600}% +% contents=$\delta$ +\lthtmlinlinemathA{tex2html_wrap_inline602}% $\delta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline602}% +% contents=$W$ +\lthtmlinlinemathA{tex2html_wrap_inline604}% $W$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline606}% +% contents=$m$ +\lthtmlinlinemathA{tex2html_wrap_inline608}% $m$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline608}% +% contents=$W_i^0 \subset W$ +\lthtmlinlinemathA{tex2html_wrap_inline610}% $W_i^0 \subset W$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline610}% +% contents=$\cup_{i=1}^m W_i^0 = W$ +\lthtmlinlinemathA{tex2html_wrap_inline612}% $\cup_{i=1}^m W_i^0 = W$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline616}% +% contents=$W_i^\delta \supset W_i^{\delta-1}$ +\lthtmlinlinemathA{tex2html_wrap_inline618}% $W_i^\delta \supset W_i^{\delta-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline618}% +% contents=$W_i^{\delta-1}$ +\lthtmlinlinemathA{tex2html_wrap_inline620}% $W_i^{\delta-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline620}% +% contents=$n_i^\delta$ +\lthtmlinlinemathA{tex2html_wrap_inline622}% $n_i^\delta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline622}% +% contents=$W_i^\delta$ +\lthtmlinlinemathA{tex2html_wrap_inline624}% $W_i^\delta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline624}% +% contents=$R_i^{\delta} \in \Re^{n_i^\delta \times n}$ +\lthtmlinlinemathA{tex2html_wrap_inline626}% $R_i^{\delta} \in \Re^{n_i^\delta \times n}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline626}% +% contents=$v \in \Re^n$ +\lthtmlinlinemathA{tex2html_wrap_inline628}% $v \in \Re^n$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline628}% +% contents=$v_i^{\delta} \in \Re^{n_i^\delta}$ +\lthtmlinlinemathA{tex2html_wrap_inline630}% $v_i^{\delta} \in \Re^{n_i^\delta}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline630}% +% contents=$v$ +\lthtmlinlinemathA{tex2html_wrap_inline632}% $v$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline634}% +% contents=$R_i^{\delta}$ +\lthtmlinlinemathA{tex2html_wrap_inline636}% $R_i^{\delta}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline636}% +% contents=$\Re^{n_i^\delta}$ +\lthtmlinlinemathA{tex2html_wrap_inline638}% $\Re^{n_i^\delta}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline638}% +% contents=$\Re^n$ +\lthtmlinlinemathA{tex2html_wrap_inline640}% $\Re^n$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline640}% +% contents=$A_i^\delta=R_i^\delta A (R_i^\delta)^T \in \Re^{n_i^\delta \times n_i^\delta}$ +\lthtmlinlinemathA{tex2html_wrap_inline642}% $A_i^\delta=R_i^\delta A (R_i^\delta)^T \in \Re^{n_i^\delta \times n_i^\delta}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline644}% +% contents=$W_i^{\delta}$ +\lthtmlinlinemathA{tex2html_wrap_inline646}% $W_i^{\delta}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath564}% +% contents=begin{displaymath} M_{AS}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T (A_i^\delta)^{-1} R_i^{\delta}, end{displaymath} +\lthtmldisplayA{displaymath566}% \begin{displaymath} M_{AS}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T (A_i^\delta)^{-1} R_i^{\delta}, @@ -358,79 +384,92 @@ M_{AS}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline646}% +% contents=$A_i^\delta$ +\lthtmlinlinemathA{tex2html_wrap_inline648}% $A_i^\delta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline652}% +% contents=$v_i = R_i^{\delta} v$ +\lthtmlinlinemathA{tex2html_wrap_inline654}% $v_i = R_i^{\delta} v$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline654}% +% contents=$i=1,\ldots,m$ +\lthtmlinlinemathA{tex2html_wrap_inline656}% $i=1,\ldots,m$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline656}% +% contents=$A_i^\delta w_i = v_i$ +\lthtmlinlinemathA{tex2html_wrap_inline658}% $A_i^\delta w_i = v_i$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline660}% +% contents=$w_i$ +\lthtmlinlinemathA{tex2html_wrap_inline662}% $w_i$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline662}% +% contents=$w = \sum_{i=1}^m (R_i^{\delta})^T w_i$ +\lthtmlinlinemathA{tex2html_wrap_inline664}% $w = \sum_{i=1}^m (R_i^{\delta})^T w_i$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline664}% +% contents=$p$ +\lthtmlinlinemathA{tex2html_wrap_inline666}% $p$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline668}% +% contents=$p,t$ +\lthtmlinlinemathA{tex2html_wrap_inline670}% $p,t$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline672}% +% contents=$(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$ +\lthtmlinlinemathA{tex2html_wrap_inline674}% $(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline674}% +% contents=$\tilde{R}_i^0$ +\lthtmlinlinemathA{tex2html_wrap_inline676}% $\tilde{R}_i^0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline676}% +% contents=$R_i^\delta$ +\lthtmlinlinemathA{tex2html_wrap_inline678}% $R_i^\delta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline678}% +% contents=$W_i^\delta \backslash W_i^0$ +\lthtmlinlinemathA{tex2html_wrap_inline680}% $W_i^\delta \backslash W_i^0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath565}% +% contents=begin{displaymath} M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T (A_i^\delta)^{-1} R_i^{\delta}. end{displaymath} +\lthtmldisplayA{displaymath567}% \begin{displaymath} M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T (A_i^\delta)^{-1} R_i^{\delta}. @@ -439,7 +478,8 @@ M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath566}% +% contents=begin{displaymath} M_{ASH}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T (A_i^\delta)^{-1} \tilde{R}_i^0. end{displaymath} +\lthtmldisplayA{displaymath568}% \begin{displaymath} M_{ASH}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T (A_i^\delta)^{-1} \tilde{R}_i^0. \end{displaymath}% @@ -447,37 +487,43 @@ M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline680}% +% contents=$\delta=0$ +\lthtmlinlinemathA{tex2html_wrap_inline682}% $\delta=0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline686}% +% contents=$A_C$ +\lthtmlinlinemathA{tex2html_wrap_inline688}% $A_C$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline692}% +% contents=$W_C$ +\lthtmlinlinemathA{tex2html_wrap_inline694}% $W_C$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline694}% +% contents=$n_C$ +\lthtmlinlinemathA{tex2html_wrap_inline696}% $n_C$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline696}% +% contents=$R_C \in \Re^{n_C \times n}$ +\lthtmlinlinemathA{tex2html_wrap_inline698}% $R_C \in \Re^{n_C \times n}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath567}% +% contents=begin{displaymath} A_C=R_C A R_C^T end{displaymath} +\lthtmldisplayA{displaymath569}% \begin{displaymath} A_C=R_C A R_C^T \end{displaymath}% @@ -485,13 +531,15 @@ A_C=R_C A R_C^T \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline700}% +% contents=$M_{1L}$ +\lthtmlinlinemathA{tex2html_wrap_inline702}% $M_{1L}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath568}% +% contents=begin{displaymath} M_{C}^{-1}= R_C^T A_C^{-1} R_C, end{displaymath} +\lthtmldisplayA{displaymath570}% \begin{displaymath} M_{C}^{-1}= R_C^T A_C^{-1} R_C, \end{displaymath}% @@ -499,19 +547,22 @@ M_{C}^{-1}= R_C^T A_C^{-1} R_C, \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline704}% +% contents=$M_{C}^{-1}$ +\lthtmlinlinemathA{tex2html_wrap_inline706}% $M_{C}^{-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline710}% +% contents=$M_{C}$ +\lthtmlinlinemathA{tex2html_wrap_inline712}% $M_{C}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath569}% +% contents=begin{displaymath} M_{2LA}^{-1} = M_{C}^{-1} + M_{1L}^{-1}. end{displaymath} +\lthtmldisplayA{displaymath571}% \begin{displaymath} M_{2LA}^{-1} = M_{C}^{-1} + M_{1L}^{-1}. \end{displaymath}% @@ -519,19 +570,22 @@ M_{2LA}^{-1} = M_{C}^{-1} + M_{1L}^{-1}. \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline714}% +% contents=$M_{2L-A}^{-1}$ +\lthtmlinlinemathA{tex2html_wrap_inline716}% $M_{2L-A}^{-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline720}% +% contents=$M_{1L}^{-1}$ +\lthtmlinlinemathA{tex2html_wrap_inline722}% $M_{1L}^{-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath570}% +% contents=begin{displaymath} begin{array}{l} w = M_{1L}^{-1} v, \\z = w + M_{C}^{-1} (v-Aw); end{array} end{displaymath} +\lthtmldisplayA{displaymath572}% \begin{displaymath} \begin{array}{l} w = M_{1L}^{-1} v, \\ @@ -542,7 +596,8 @@ z = w + M_{C}^{-1} (v-Aw); \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath571}% +% contents=begin{displaymath} M_{2LH-PRE}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1}. end{displaymath} +\lthtmldisplayA{displaymath573}% \begin{displaymath} M_{2LH-PRE}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1}. \end{displaymath}% @@ -550,7 +605,8 @@ M_{2LH-PRE}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1}. \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath572}% +% contents=begin{displaymath} begin{array}{l} w = M_{C}^{-1} v , \\z = w + M_{1L}^{-1} (v-Aw) , end{array} end{displaymath} +\lthtmldisplayA{displaymath574}% \begin{displaymath} \begin{array}{l} w = M_{C}^{-1} v , \\ @@ -561,7 +617,8 @@ z = w + M_{1L}^{-1} (v-Aw) , \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath573}% +% contents=begin{displaymath} M_{2LH-POST}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}. end{displaymath} +\lthtmldisplayA{displaymath575}% \begin{displaymath} M_{2LH-POST}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}. \end{displaymath}% @@ -569,49 +626,57 @@ M_{2LH-POST}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}. \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline734}% +% contents=$M$ +\lthtmlinlinemathA{tex2html_wrap_inline736}% $M$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline738}% +% contents=$w=M^{-1}v$ +\lthtmlinlinemathA{tex2html_wrap_inline740}% $w=M^{-1}v$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline740}% +% contents=$nlev$ +\lthtmlinlinemathA{tex2html_wrap_inline742}% $nlev$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline742}% +% contents=$l$ +\lthtmlinlinemathA{tex2html_wrap_inline744}% $l$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline744}% +% contents=$A_l$ +\lthtmlinlinemathA{tex2html_wrap_inline746}% $A_l$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline746}% +% contents=$M_l$ +\lthtmlinlinemathA{tex2html_wrap_inline748}% $M_l$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline748}% +% contents=$A_1=A$ +\lthtmlinlinemathA{tex2html_wrap_inline750}% $A_1=A$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlpictureA{tex2html_wrap860}% +% contents=\framebox{ begin{minipage}{.85\textwidth} {\small begin{tabbing} \quad \=\quad \=\quad \=\quad \\[-1mm] $v_1 = v$; \\[2mm] \textbf{for $l=2, nlev$\ do}\\[1mm] \> ! transfer $v_{l-1}$\ to the next ...} +\lthtmlpictureA{tex2html_wrap862}% \framebox{ \begin{minipage}{.85\textwidth} {\small \begin{tabbing} @@ -643,31 +708,36 @@ $w = y_1$; \stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline776}% +% contents=$R_C$ +\lthtmlinlinemathA{tex2html_wrap_inline778}% $R_C$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline784}% +% contents=$R_C^T$ +\lthtmlinlinemathA{tex2html_wrap_inline786}% $R_C^T$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline798}% +% contents=$N_r$ +\lthtmlinlinemathA{tex2html_wrap_inline800}% $N_r$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline802}% +% contents=$r \in W$ +\lthtmlinlinemathA{tex2html_wrap_inline804}% $r \in W$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath574}% +% contents=begin{displaymath} N_r = \left\{s \in W: |a_{rs}| > \theta \sqrt{|a_{rr}a_{ss}|} \right\} \cup \left\{ r \right\} , end{displaymath} +\lthtmldisplayA{displaymath576}% \begin{displaymath} N_r = \left\{s \in W: |a_{rs}| > \theta \sqrt{|a_{rr}a_{ss}|} \right\} \cup \left\{ r \right\} , \end{displaymath}% @@ -675,37 +745,43 @@ $r \in W$% \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline804}% +% contents=$\theta \in [0,1]$ +\lthtmlinlinemathA{tex2html_wrap_inline806}% $\theta \in [0,1]$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline806}% +% contents=$i$ +\lthtmlinlinemathA{tex2html_wrap_inline808}% $i$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline808}% +% contents=$W_i^0$ +\lthtmlinlinemathA{tex2html_wrap_inline810}% $W_i^0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline812}% +% contents=$P_C=R_C^T$ +\lthtmlinlinemathA{tex2html_wrap_inline814}% $P_C=R_C^T$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline814}% +% contents=$P \in \Re^{n \times n_C}$ +\lthtmlinlinemathA{tex2html_wrap_inline816}% $P \in \Re^{n \times n_C}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath531}% +% contents=begin{displaymath} P=(p_{ij}), \quad p_{ij}= \left\{ begin{array}{ll} 1 & \quad \mbox{if} \; i \in V^j_C \\0 & \quad \mbox{otherwise} end{array} \right. . end{displaymath} +\lthtmldisplayA{displaymath533}% \begin{displaymath} P=(p_{ij}), \quad p_{ij}= \left\{ \begin{array}{ll} @@ -717,25 +793,29 @@ P=(p_{ij}), \quad p_{ij}= \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline816}% +% contents=$P_C$ +\lthtmlinlinemathA{tex2html_wrap_inline818}% $P_C$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline818}% +% contents=$P$ +\lthtmlinlinemathA{tex2html_wrap_inline820}% $P$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline820}% +% contents=$S \in \Re^{n \times n}$ +\lthtmlinlinemathA{tex2html_wrap_inline822}% $S \in \Re^{n \times n}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath542}% +% contents=begin{displaymath} P_C = S P, end{displaymath} +\lthtmldisplayA{displaymath544}% \begin{displaymath} P_C = S P, \end{displaymath}% @@ -743,13 +823,15 @@ P_C = S P, \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline822}% +% contents=$S$ +\lthtmlinlinemathA{tex2html_wrap_inline824}% $S$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmldisplayA{displaymath546}% +% contents=begin{displaymath} S = I - \omega D^{-1} A , end{displaymath} +\lthtmldisplayA{displaymath548}% \begin{displaymath} S = I - \omega D^{-1} A , \end{displaymath}% @@ -757,20 +839,23 @@ S = I - \omega D^{-1} A , \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline824}% +% contents=$\omega$ +\lthtmlinlinemathA{tex2html_wrap_inline826}% $\omega$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline826}% +% contents=$D^{-1}A$ +\lthtmlinlinemathA{tex2html_wrap_inline828}% $D^{-1}A$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} \stepcounter{section} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline983}% +% contents=$\theta = 0$ +\lthtmlinlinemathA{tex2html_wrap_inline985}% $\theta = 0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -778,7 +863,8 @@ $\theta = 0$% \stepcounter{subsection} \stepcounter{section} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1324}% +% contents=$w$ +\lthtmlinlinemathA{tex2html_wrap_inline1316}% $w$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -786,80 +872,100 @@ $w$% \stepcounter{subsection} \stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1328}% +% contents=$\ge 0$ +\lthtmlinlinemathA{tex2html_wrap_inline1320}% $\ge 0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1342}% +% contents=$t$ +\lthtmlinlinemathA{tex2html_wrap_inline1334}% $t$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1346}% +% contents=$\in [0, 1]$ +\lthtmlinlinemathA{tex2html_wrap_inline1338}% $\in [0, 1]$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1348}% +% contents=$\theta$ +\lthtmlinlinemathA{tex2html_wrap_inline1340}% $\theta$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1352}% -$>0$% +% contents=$4/(3||D^{-1}A||_\infty)$ +\lthtmlinlinemathA{tex2html_wrap_inline1346}% +$4/(3||D^{-1}A||_\infty)$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +% contents=$> 0$ +\lthtmlinlinemathA{tex2html_wrap_inline1362}% +$> 0$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} \stepcounter{subsection} \stepcounter{subsection} {\newpage\clearpage +% contents=$y = op(M^{-1})\, x$ \lthtmlinlinemathA{tex2html_wrap_inline1374}% $y = op(M^{-1})\, x$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$op$ \lthtmlinlinemathA{tex2html_wrap_inline1378}% $op$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$x$ \lthtmlinlinemathA{tex2html_wrap_inline1382}% $x$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$y$ \lthtmlinlinemathA{tex2html_wrap_inline1384}% $y$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$op(M^{-1}) = M^{-1}$ \lthtmlinlinemathA{tex2html_wrap_inline1386}% $op(M^{-1}) = M^{-1}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$op(M^{-1}) = M^{-T}$ \lthtmlinlinemathA{tex2html_wrap_inline1388}% $op(M^{-1}) = M^{-T}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$M^{-1})$ \lthtmlinlinemathA{tex2html_wrap_inline1390}% $M^{-1})$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage +% contents=$op(M^{-1}) = M^{-C}$ \lthtmlinlinemathA{tex2html_wrap_inline1392}% $op(M^{-1}) = M^{-C}$% \lthtmlinlinemathZ diff --git a/docs/html/img100.png b/docs/html/img100.png index 1bb60423c160a8db6868a3993794ceba8acb5008..ed0d3816ac1f481df035a9fcf12477cd779a136d 100644 GIT binary patch delta 311 zcmV-70m%NL1@{6WiBL{Q4GJ0x0000DNk~Le0000m0000d1Oos70nGU30g)j~e*pDK zL_t(2kz-&00@e&5ae)C9a4-T1E(Q$Hz`($dDT)RXfY{+e2asew3>IKRGJXL;?Fhhf zfq}n)0p=18MmD$+9Q*+vAe;}#8U#o%90C3#0V0&^f=P}K3|VffeK^eg+mG$yQ*17GyCIgPVP_=1oN>w^Jd@>>j)h%A^mftMSN$e zatU~bj$;uu8^Xe}OvgF&wc!CvSk`u|J3n!T)QzOQ7p(XJ=oxBXsyn+G_j0N$e5vPQ zdyeh?%3^=8*7$5%P82_;;$(DqkK@eB4>G9Umn1isJoiT`gk@8;h9y(ce=b9^td$`) zwEHbE;o)Zoe#{!DzwvjZn{W%XK1PCMtXycg^zU3z0S=haBD>WX(2k21ohBlxjd#K@2ct+(O4C_#MYC> z^5Fh+yday^InD+#3MFtWQurHKt%GcE8@QKC8n@qLU0uXgy0eY0u_`r2PW%8D*~lb@ zyAOZQOR%G&xwF5410%pBVYqrBETk6L#TFKNH7-BLiSZG>u}|f5IaVna533vscVx3T x(KR1VoIVQnRpn_g!BtK1DNgannEnTyj-OcM`xsbU*aiRq002ovPDHLkV1jok8Os0w diff --git a/docs/html/img101.png b/docs/html/img101.png new file mode 100644 index 0000000000000000000000000000000000000000..ba49760fdf8e6e1015a04bc116ce6154a7fbf58c GIT binary patch literal 684 zcmV;d0#p5oP)RHR400001 zbW%=J06^y0W&i*JDoI2^R7i>KRK05yK@|V(-hRy8DRYH_LclGqNO=$t%PX|9$dze= zQ&=xy zo8P{9AN$@L;0W#uD>yg{$W4^PYYrrc@LtN2Ct`p#$OG6JF9yG;L~aHdJv3g4G?>mP6WX2$u#ZrV-j~Ussy33PFet zO(A4EABDWfQ_;g{&~(tcYCWV@qJA|~?_p1b-Y0BG8@WbR%HD)ck;SO3&cM;-A!e!k zXZTlo_m2^*&eN!TL@>-T4h_JqZzQloX&7qEip(ElJBoOB-|XHXyVEQd=m~Govev~S zHLp}gG&_lyZnEY9TvCX=L^ryow;LP4WT8@xK0>7J2;O0L33uy{Z;M~>1 z19ppcHldJA8U8Butqmf|lon9feY;@37ziI1UJ;!~XBw=w?)osXYam-_-G SrtUES0000+99q>%(2@0APPAUL%n<$950Te!@!3L zr{p=@&0#B$D+z>S=uyNW?NV%soV~DiIwP_HkFzl)=w4>5s^d&CjX+a>aNj7b;rzO6DSLyvexQ+iTnU9?Y1oSG z$_dt5J~Jb`!2?mZI=b@S%bxkX=43Byz0j@w5A=bM6e;^JTn#6*8{M1JNm)So`g0@;rr~;x;z4qu+?p zHw`-9i8VTI+2uadg9LX#&&Jr%-_iI|r?*E%lOCipgXvd*H?-W{cfos~X*l|5&S6~k z4x9A$Yn~@eZ%v(#wcOIxw7S8auZ-@%2E9xP(fb4O{vPVU(l<5mww^vCX6IqL_jrJ- zY3UuKuiMxH9~`H%JsbS!W0pOtk-ZmBvHodW=o*(^p&h%kOY-?}zI$CP+z&84#f9gI uUuB-qm$?@oiS97`<);7m`?2CST7mD6@%&GGr-TCmrII^fq{Y7)59eQNGkxbJPR`e10!?&BTXPjccQ9By@Z4W4-XHJ z*Ll9~B9LM%3GxeOaCmkj4ak}3>EaloF)=wIA>l!S15*vhG8SfLX(M?yiADPk;MgrW2_2p%pOUMQxti(OmS^! zbmTsf_HMxmy+w?lc}%)@xk${=Z^~E}$tTb#p1{J?bCq)i6Aw=$uR{_$^Wor*rgaPk nx~mUx3Z=gYSli#;{an^LB{Ts57^z7A diff --git a/docs/html/img93.png b/docs/html/img93.png index fb6b7f9cead5d6bd428a5978d231a459559f2097..43c3ba66b4ed20f2da1b66183f1680b85d53e534 100644 GIT binary patch delta 210 zcmeyxGMP!SGr-TCmrII^fq{Y7)59eQNXvsT3o`=)lr3`x;TbtOiWHl zNO+Lq!1RYhO_`Zlnwg!M?Lk070tds&><7oExUl*r2%9&|kaal5z95y);hT=ruMbRo zaSDcv9kLF6$x#d?95<%+NH5@#WMdP|Q&`IybjN36>=El#$wplBKN>QJGj|*`InB7} z0W*i=lPaMARtbsKjaiWm8cggG3RO%8O4OU@G0g~DFmrb&JHvM$vG#uP^@c#lGI+ZB KxvXk~20{R3YiBL{Q4GJ0x0000DNk~Le0001W0000d1Oos70kmr><&hyve*ySO zL_t(YiS1RtZ__{&{_I?wb8BKRNM&=`C?Fz6CXW?MGqGgx*lrPHmmU-(w-OM91l>sg zgRI>wkeDqbq>e~Pov)?phTuJ)t+*tzj6@X%KI!iL_Pu-W?hI7%NYUg#;u;!21w3ao z#!cKAvcqwJPsC$Iw|Q(0;wft(f69`a^Ek5~8?BEl-0B;%yYH|XgMfBPXdCt4NaBw$ z78!iS+)|<0D^iiWYulugmQ$v-y+uS6qV9T2KBV8*g`C&Yv>``KC72?(qWqiVXC3qv zEO>XWHjo+*Lq2(PO5&lVp=9#Z$Fk8V+faA>dRIVB+MKBm0X$KV{hqO=f1*v*cZR*P z`i>+^I?j0!4r6Za{U9#aS*7u{@C`@VNTBC-j405ZD56p6o0k|SCX8pq zxXRAdQ82(~_N3F+-w2JXfBh;6VW;%PVE;N_3QG<S-(0{jFaiBL{Q4GJ0x0000DNk~Le0001X0000d1Oos70bg8^=8+*we*yYQ zL_t(YiS1OqZ__{&|M@c)C&V5)R6-yxNQ_>Xn=TY2P%|)4G2pdR(@HE|I1sH)WuQ`* zs8dJ8#72-90vlWZgid9>LWeTJduJzch?N=vDiZu8zwdkR-rYL`1z1ldQ3n=UsDKv{ z(_JJuI49Divp9FnHHMJB1`7dXf0a__U?RtBtqgB!z+MV*oRZ>qV8z7OJ_=Uxunoan zWNUVR!zO+T5f5lv5_|s8mZCEsjUUKIKAG0O8-XRKj1w4*kVxi4mfxa6r z$CEwN==L%>L^CbcJ%#cLUE;ye%%}y0A~sX2tKln`m=h?IGA#5mtcJv-lQv zzNQ5?_xoUbXUpXIERLtq{V<(o`so#fiZ28K-fe@?|O!MPZ!4!iK)p6 z3`~q{77r2<9<&tykThUC{+5BQt&cwcs_yjT3@w5}KIQ%_n#n1hQDQ zwmv+-BB+qBdbpoyLk=^mnlRJcShiW*+G5Q!Yb{hi5NG-Q+J8gt96X_0-eU->FVdQ&MBb@0FV(pSpWb4 diff --git a/docs/html/img95.png b/docs/html/img95.png index c52240f8c1180dff331cf3f6df9d2681243ab08c..3ac21e5c1eb07b7a28a8c23c856a53895e54b897 100644 GIT binary patch delta 236 zcmX@X*vw?n8Q|y6%O%Cdz`(%k>ERLtq(y;Po`so#fw6b#>QErZAiyWYb@S%UD^{$S zGiT0(2@_gcS|*w**1w88Jr5|&SQ6wH%;50sMjDXQ=;`7ZA~7{Nfq{vU&Ei2q!h_c0 z9}`s)8gk1Rn44d-`*4PQXozo<^@wC~@ljYJ!fr9)z`?TzCQJ}GaQ?ud4-Xo+m=Alk ziE}E*xG&|Zgu4Y`8 js^+x)m_NJLE>?!D(-L=%X5CQ)x`x5i)z4*}Q$iB}O{!4k delta 176 zcmZo>I>Bh#8Q|y6%O%Cdz`(%k>ERLtr1?OYg_(hYaaJNj36P^3;1lAydGqEKD^|>z zGiSnt2@@?8iw^MHf#euVg8YIR9G=}s19Ch)T^vI=W+o>jB%~)Ka4;mX#j!~kBs|b+ zFuHlPk!3OiGuw$ChOXib43RYsXAT|hSjoaDbW{CTV+NxfdxwKbvw_F;t`A(yYz$0G WS)X4QwmkgJ diff --git a/docs/html/img96.png b/docs/html/img96.png index 2c3a36e81383d14899a041603e8ffe1ac743f2b1..f01b05c153d7c8af489cdfe81bf9f424e3a976f5 100644 GIT binary patch delta 178 zcmcb?c#2WAGr-TCmrII^fq{Y7)59eQNb>_R9}6=B17qppY%d_kV4|v0y^W2Hfq{XF zii(7U1P>1nQ215k>3Kkku_VYZn8D%MjWi&~!_&nvgkxrMLc)W@goF%+BsM!X34??O z9t}p8CJreK%xo)OF$m?XacC0ni2NC8Fm*vg!nDI56WSQknL|9{8P;@`x*y|Oz{-%P X&mR7X(f2;kOa@O^KNpsDP63Gr-TCmrII^fq{Y7)59eQNb>=)JPR`e17pzZi(WvE?nG6kdIJLk6%`c; z2?-t^9-x>rl+aTt+a-dqOvIxd<;Q*g?QdF``26r+QQ)J>gTe~DWM4fMPoQh diff --git a/docs/html/img97.png b/docs/html/img97.png index a9d84a65494ef7a0d8b94a7d8bab70544847e698..2694e0c66290f2e5ffbb9c4d404e60db4b3f5032 100644 GIT binary patch delta 191 zcmeBRy~U{78Q|y6%O%Cdz`(%k>ERLtqJdbRg_(hYap#>ZPasEkqN-}Wii(Pagai){ z4^Uv+Zo5t(#aI&L7tG-B>_!@p6Yc5Z7{W0#Ie~$RPvGE#10Na~r624*a9}}0C>zHO z%SM*xj4_v1G_*F(Y}~l8q46Q(g%dq&Y+~Mzz9csFaq>7ibTyYU8{f#wV_(N2aQ5^B l=FmbG7lXGMs)q|0o`vxUzSy1Bun%YtgQu&X%Q~loCIE-=Jx%}s delta 624 zcmV-$0+0RL0f+@9iBL{Q4GJ0x0000DNk~Le0001l0000d1Oos70ZZl0LI3~&Fp(uC ze=smGBqSsl7#Iu;3;+NC>RHR400001bW%=J06^y0W&i*J21!IgR7i>KRljf4Fckjo zE|+t!cjN|G!9!Is-hhf=Doov)p+X2GK7&N`T2X#f6w-_0~ByY(uV#`+h!dH!5%TQg`4Z!-s&dZA7n>?EFYD^mi^&i7we;xk7 znCoRjUQrFO1QGNi53Okg>=&3lbQBU6$$-=h44ya}Nu!SCLk~=~l!?){jB|slxqou0 zNgLQ4hwg!pVPG|n$C5T58yq;ZX1gf2$vEAafA2`Surm#TM=`khUf`Dmg(TS`TZ=-ON7sDzdw3Hhe)Ti5@~2#hfi>FK0j8s4$Nr#bZeg4!2=Uf zvSb0DXH1tN_4q1xY@WjD@Q_;2hRky-MQi7(-1eJLf3jNycchg z_@lJg?XJb`1HOW-F9H>OG-O`wsP4#YRO$k?b#aXU6t(wSExrPC5%2_(rmHCc0000< KMNUMnLSTZzL>cY? diff --git a/docs/html/img98.png b/docs/html/img98.png index 0497bd702a4c49617485d62f0c89b06a01caedf4..090257eb08b293d625870488b5b197c16e2b4fa1 100644 GIT binary patch delta 584 zcmV-O0=NC91&0M8iBL{Q4GJ0x0000DNk~Le0001l0000d1Oos70ZZl0LXja%e+5ZI zK~zYI?NvQ*)Ibn@cel3JmrLw2bXF?FhhkA7BqWz7By?BNq;ZiVK)KPAfsgIBU&c$qu2UeCfYAesV(*( z5k|VY%A_ub5tDF)(%Ra>V?6QFqVdf;&&kXirY38~ju9he#0#Ca1Mc+WbW007aKrqF zkV-RwdkrsfCHPr~YdG`%w4t9VZr+BhU{8Vb0<(iw48fxf2XoqF1g7MXe^9DDdb`Oc zjbfRX$on#81~t$e_!33< WJno+{5(G&A00001q`u_9aLYp8$oZiyGudDdrqYEz8G^Z&f zzw<~pNw|iNzagq3TA62=4eg}D1MaUVsuEEdg(%Xh4W&&smIm2zt9w(gzAB%e@Zc(Q&?sq0|WpP{a<%k8^E~p3CsE*F4CC|dPXm^f_C@}H~F5K z7|s!D2kr>(HCxz64{&S{%p@F3H(Ht04EuEKulDOgO~(%L1vO)wJ;HPriHqmO92$?+ zYj$GORBK}RJow>?GJ^?C#S&lQ62Fb|fB*73_9s2F_^_<{tQ`OV002ovPDHLkV1fXO BDbxS} diff --git a/docs/html/img99.png b/docs/html/img99.png index 321efb07dbe0dd29699d3f01ba644c597e805cee..5d467bfe9ae1224ffa2c86b7b185fa09153ff7a0 100644 GIT binary patch delta 621 zcmV-z0+Rjo0;>ffiBL{Q4GJ0x0000DNk~Le0001o0000e1Oos70a1j+l#wAze*!5< zL_t(YiS1Rti_}0A{_=Y^tCuYl6c$Xe#gz+!Sfs&%5m#&! z3lFqeZPMDv7XAT?f5C!3u*_|7C?fi1lG)qjc1aXG1n+~)yu5kyy>BvaCcpvA7lmQq zBp|lX46o_Q5aOK>%_ex;0P9c&f3OpFg5WF|2c--fCj1?+Leog5187Ya;6B^1?yCHW zOd8O@L_=7%yd_AjbK%5Hlrk1|<&b+8&%UWBvM}=uHYnT2?uT-?~#+*FMNiJY`8V^v#dpyB8?hCmbLoYP<;g=RrS&qQX zK0Y5Jk$5Vb>L<*x*t-C$-y-B&d5 z0|S2p+&QewP7qx&epk^W&&A>>4*+}3&5+Fi(E|}!lz|g?}3Jn7w$^L<114l;# zKLZa)<^%Hwuna4ZWLgk_6t)E{e+me;8W)7YiflL!GRJ^quaFH$3 + + + - -

- -MLD2P4 User's and Reference Guidetitle - -
- - -
-
-MLD2P4 -
+MLD2P4
-User's and Reference Guide -

-
-
-
A guide for the Multi-Level Domain Decomposition
+User's and Reference Guide
+
A guide for the Multi-Level Domain Decomposition

Parallel Preconditioners Package -based on PSBLAS
- -
- -

+based on PSBLAS +Pasqua D'Ambra
- - -
-
-Pasqua D'Ambra -
ICAR-CNR, Naples, Italy +ICAR-CNR, Naples, Italy


-
Daniela di Serafino -
Second University of Naples, Italy +
Daniela di Serafino
+Second University of Naples, Italy

-
Salvatore Filippone -
University of Rome ``Tor Vergata'', Italy - -
- -


- - -
-
-Software version: 1.0 +
Salvatore Filippone
-July 22, 2008 - -
- -

+University of Rome ``Tor Vergata'', Italy +Software version: 1.0
+July 24, 2008

- -

Abstract:

-
-MLD2P4 (MULTI-LEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON -PSBLAS) is a package of parallel algebraic multi-level preconditioners. -It implements various versions of one-level additive and of multi-level additive -and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach -is applied to generate coarse-level corrections, so that no geometric background is needed -concerning the matrix to be preconditioned. The matrix is required to be square, real -or complex, with a symmetric sparsity pattern. - -

-MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the -context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) -computational framework and can be used in conjuction with the Krylov solvers -available in this framework. MLD2P4 enables the user to easily specify different aspects -of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search -for the ``best'' preconditioner for the problem at hand. - -

-The package has been designed employing object-oriented techniques, -using Fortran 95, with interfaces to additional third party libraries -such as UMFPACK, SuperLU and SuperLU_Dist, that -can be exploited in building multi-level preconditioners. The parallel -implementation is based on a Single Program Multiple Data (SPMD) -paradigm for distributed-memory architectures; the inter-process data -communication is based on MPI and is managed mainly through PSBLAS. - -

-This guide provides a brief description of the functionalities and -the user interface of MLD2P4. -

-

- -

- -


+

-
    + -
    - - -next -up -previous - -contents -
    - Next: Contents -   Contents - +

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/internals.pl b/docs/html/internals.pl index df38b3cf..a7bf6a10 100644 --- a/docs/html/internals.pl +++ b/docs/html/internals.pl @@ -18,6 +18,10 @@ $key = q/cite_dd2_96/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/sec:ex_and_test/; +$ref_files{$key} = "$dir".q|node9.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_Saad_book/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; @@ -30,7 +34,7 @@ $key = q/sec:conventions/; $ref_files{$key} = "$dir".q|node3.html|; $noresave{$key} = "$nosave"; -$key = q/cite_SUPERLUDIST/; +$key = q/cite_blas2/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; @@ -38,6 +42,10 @@ $key = q/cite_dd1_94/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/cite_SUPERLUDIST/; +$ref_files{$key} = "$dir".q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_TUMINARO_TONG/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; @@ -55,7 +63,7 @@ $ref_files{$key} = "$dir".q|node12.html|; $noresave{$key} = "$nosave"; $key = q/sec:overview/; -$ref_files{$key} = "$dir".q|node2.html|; +$ref_files{$key} = "$dir".q|node3.html|; $noresave{$key} = "$nosave"; $key = q/sec:multilevel/; @@ -87,7 +95,11 @@ $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; $key = q/system1/; -$ref_files{$key} = "$dir".q|node2.html|; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_MPI2/; +$ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; $key = q/fig:ex_3la/; @@ -102,6 +114,10 @@ $key = q/sec:errors/; $ref_files{$key} = "$dir".q|node28.html|; $noresave{$key} = "$nosave"; +$key = q/tab:precinit/; +$ref_files{$key} = "$dir".q|node13.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:ex_default/; $ref_files{$key} = "$dir".q|node14.html|; $noresave{$key} = "$nosave"; @@ -122,14 +138,14 @@ $key = q/eq:jac_smoother/; $ref_files{$key} = "$dir".q|node12.html|; $noresave{$key} = "$nosave"; -$key = q/fig:ex_3lh/; -$ref_files{$key} = "$dir".q|node14.html|; -$noresave{$key} = "$nosave"; - $key = q/sec:precaply/; $ref_files{$key} = "$dir".q|node22.html|; $noresave{$key} = "$nosave"; +$key = q/fig:ex_3lh/; +$ref_files{$key} = "$dir".q|node14.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_BREZINA_VANEK/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; @@ -142,6 +158,10 @@ $key = q/cite_para_04/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/cite_BLACS/; +$ref_files{$key} = "$dir".q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_EFSTATHIOU/; $ref_files{$key} = "$dir".q|node30.html|; $noresave{$key} = "$nosave"; @@ -174,6 +194,10 @@ $key = q/eq:smoothed_prol/; $ref_files{$key} = "$dir".q|node12.html|; $noresave{$key} = "$nosave"; +$key = q/cite_blas1/; +$ref_files{$key} = "$dir".q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:ex_1l/; $ref_files{$key} = "$dir".q|node14.html|; $noresave{$key} = "$nosave"; @@ -186,5 +210,9 @@ $key = q/sec:precfree/; $ref_files{$key} = "$dir".q|node24.html|; $noresave{$key} = "$nosave"; +$key = q/cite_blas3/; +$ref_files{$key} = "$dir".q|node30.html|; +$noresave{$key} = "$nosave"; + 1; diff --git a/docs/html/labels.pl b/docs/html/labels.pl index 1cf53c81..9602d7d3 100644 --- a/docs/html/labels.pl +++ b/docs/html/labels.pl @@ -18,6 +18,10 @@ $key = q/cite_dd2_96/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/sec:ex_and_test/; +$external_labels{$key} = "$URL/" . q|node9.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_Saad_book/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; @@ -30,7 +34,7 @@ $key = q/sec:conventions/; $external_labels{$key} = "$URL/" . q|node3.html|; $noresave{$key} = "$nosave"; -$key = q/cite_SUPERLUDIST/; +$key = q/cite_blas2/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; @@ -38,6 +42,10 @@ $key = q/cite_dd1_94/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/cite_SUPERLUDIST/; +$external_labels{$key} = "$URL/" . q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_TUMINARO_TONG/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; @@ -55,7 +63,7 @@ $external_labels{$key} = "$URL/" . q|node12.html|; $noresave{$key} = "$nosave"; $key = q/sec:overview/; -$external_labels{$key} = "$URL/" . q|node2.html|; +$external_labels{$key} = "$URL/" . q|node3.html|; $noresave{$key} = "$nosave"; $key = q/sec:multilevel/; @@ -87,7 +95,11 @@ $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; $key = q/system1/; -$external_labels{$key} = "$URL/" . q|node2.html|; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_MPI2/; +$external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; $key = q/fig:ex_3la/; @@ -102,6 +114,10 @@ $key = q/sec:errors/; $external_labels{$key} = "$URL/" . q|node28.html|; $noresave{$key} = "$nosave"; +$key = q/tab:precinit/; +$external_labels{$key} = "$URL/" . q|node13.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:ex_default/; $external_labels{$key} = "$URL/" . q|node14.html|; $noresave{$key} = "$nosave"; @@ -122,14 +138,14 @@ $key = q/eq:jac_smoother/; $external_labels{$key} = "$URL/" . q|node12.html|; $noresave{$key} = "$nosave"; -$key = q/fig:ex_3lh/; -$external_labels{$key} = "$URL/" . q|node14.html|; -$noresave{$key} = "$nosave"; - $key = q/sec:precaply/; $external_labels{$key} = "$URL/" . q|node22.html|; $noresave{$key} = "$nosave"; +$key = q/fig:ex_3lh/; +$external_labels{$key} = "$URL/" . q|node14.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_BREZINA_VANEK/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; @@ -142,6 +158,10 @@ $key = q/cite_para_04/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; +$key = q/cite_BLACS/; +$external_labels{$key} = "$URL/" . q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/cite_EFSTATHIOU/; $external_labels{$key} = "$URL/" . q|node30.html|; $noresave{$key} = "$nosave"; @@ -174,6 +194,10 @@ $key = q/eq:smoothed_prol/; $external_labels{$key} = "$URL/" . q|node12.html|; $noresave{$key} = "$nosave"; +$key = q/cite_blas1/; +$external_labels{$key} = "$URL/" . q|node30.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:ex_1l/; $external_labels{$key} = "$URL/" . q|node14.html|; $noresave{$key} = "$nosave"; @@ -186,6 +210,10 @@ $key = q/sec:precfree/; $external_labels{$key} = "$URL/" . q|node24.html|; $noresave{$key} = "$nosave"; +$key = q/cite_blas3/; +$external_labels{$key} = "$URL/" . q|node30.html|; +$noresave{$key} = "$nosave"; + 1; @@ -193,5 +221,133 @@ $noresave{$key} = "$nosave"; # labels from external_latex_labels array. +$key = q/sec:license/; +$external_latex_labels{$key} = q|A|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ex_3la/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:errors/; +$external_latex_labels{$key} = q|7|; +$noresave{$key} = "$nosave"; + +$key = q/tab:p_smoother/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/tab:precinit/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precinit/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precset/; +$external_latex_labels{$key} = q|6.2|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ex_default/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ex_and_test/; +$external_latex_labels{$key} = q|3.4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:started/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precdescr/; +$external_latex_labels{$key} = q|6.6|; +$noresave{$key} = "$nosave"; + +$key = q/sec:overview/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/eq:tent_prol/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precaply/; +$external_latex_labels{$key} = q|6.4|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ex_3lh/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/eq:jac_smoother/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:multilevel/; +$external_latex_labels{$key} = q|4.1|; +$noresave{$key} = "$nosave"; + +$key = q/tab:p_coarse/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/fig:mlhpost_alg/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/tab:p_type/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:userinterface/; +$external_latex_labels{$key} = q|6|; +$noresave{$key} = "$nosave"; + +$key = q/sec:background/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/tab:p_aggregation/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:aggregation/; +$external_latex_labels{$key} = q|4.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:examples/; +$external_latex_labels{$key} = q|5.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:building/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/sec:distribution/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/system1/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/eq:smoothed_prol/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ex_1l/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precbld/; +$external_latex_labels{$key} = q|6.3|; +$noresave{$key} = "$nosave"; + +$key = q/sec:precfree/; +$external_latex_labels{$key} = q|6.5|; +$noresave{$key} = "$nosave"; + 1; diff --git a/docs/html/node1.html b/docs/html/node1.html index a35b336f..913df80f 100644 --- a/docs/html/node1.html +++ b/docs/html/node1.html @@ -1,4 +1,4 @@ - + -Contents - +Abstract + @@ -25,8 +25,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next @@ -37,93 +38,91 @@ original version by: Nikos Drakos, CBLU, University of Leeds previous + SRC="file:/usr/share/latex2html/icons/prev.png"> + +contents
    - Next: General Overview + Next: Contents Up: userhtml Previous: userhtml +   Contents
    -
    +
    -
    -

    -Contents -

    - +

    +Abstract +

    + +MLD2P4 (MULTI-LEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON +PSBLAS) is a package of parallel algebraic multi-level preconditioners. +It implements various versions of one-level additive and of multi-level additive +and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach +is applied to generate coarse-level corrections, so that no geometric background is needed +concerning the matrix to be preconditioned. The matrix is required to be square, real +or complex, with a symmetric sparsity pattern. - - +

    +MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the +context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) +computational framework and can be used in conjuction with the Krylov solvers +available in this framework. MLD2P4 enables the user to easily specify different aspects +of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search +for the ``best'' preconditioner for the problem at hand.

    - +The package has been designed employing object-oriented techniques, +using Fortran 95, with interfaces to additional third party libraries +such as UMFPACK, SuperLU and SuperLU_Dist, that +can be exploited in building multi-level preconditioners. The parallel +implementation is based on a Single Program Multiple Data (SPMD) +paradigm for distributed-memory architectures; the inter-process data +communication is based on MPI and is managed mainly through PSBLAS. +

    -


    +This guide provides a brief description of the functionalities and +the user interface of MLD2P4. + +

    + + +

    +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node10.html b/docs/html/node10.html index d8ca4205..d12b89f1 100644 --- a/docs/html/node10.html +++ b/docs/html/node10.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Multi-level Schwarz Preconditioners - Up: Up: userhtml - Previous: Previous: Example and test programs -   Contents -
    +   Contents
    +

    @@ -61,7 +62,7 @@ Multi-level Domain Decomposition Background

    -Domain Decomposition (DD) preconditioners, coupled with Krylov iterative +Domain Decomposition (DD) preconditioners, coupled with Krylov iterative solvers, are widely used in the parallel solution of large and sparse linear systems. These preconditioners are based on the divide and conquer technique: the matrix to be preconditioned is divided into submatrices, a ``local'' linear system @@ -74,13 +75,13 @@ solution of the original problem from the local solutions [6,7,15]. + HREF="node30.html#dd2_96">20].

    -Additive Schwarz preconditioners are DD preconditioners using overlapping +Additive Schwarz preconditioners are DD preconditioners using overlapping submatrices, i.e. with some common rows, to couple the local information related to the submatrices (see, e.g., [15]). + HREF="node30.html#dd2_96">20]). The main motivation for choosing Additive Schwarz preconditioners is their intrinsic parallelism. A drawback of these preconditioners is that the number of iterations of the preconditioned solvers @@ -93,15 +94,15 @@ in a coarse space, which globally couples the information related to the single submatrices.

    -Two-level Schwarz preconditioners are obtained +Two-level Schwarz preconditioners are obtained by combining basic (one-level) Schwarz preconditioners with a coarse-level correction. In this context, the one-level preconditioner is often called `smoother'. Different two-level preconditioners are obtained by varying the choice of the smoother and of the coarse-level correction, and the way they are combined [15]. The same reasoning can be applied starting + HREF="node30.html#dd2_96">20]. The same reasoning can be applied starting from the coarse-level system, i.e. a coarse-space correction can be built -from this system, thus obtaining multi-level preconditioners. +from this system, thus obtaining multi-level preconditioners.

    It is worth noting that optimal preconditioners do not necessarily correspond @@ -123,68 +124,69 @@ are considered. The algebraic approach builds coarse-space corrections using onl information. It performs a fully automatic coarsening and enforces the interplay between the fine and coarse levels by suitably choosing the coarse space and the coarse-to-fine interpolation [17]. + HREF="node30.html#StubenGMD69_99">22].

    MLD2P4 uses a pure algebraic approach for building the sequence of coarse matrices -starting from the original matrix. The algebraic approach is based on the smoothed -aggregation algorithm [smoothed +aggregation algorithm [1,19]. A decoupled version + HREF="node30.html#VANEK_MANDEL_BREZINA">24]. A decoupled version of this algorithm is implemented, where the smoothed aggregation is applied locally to each submatrix [18]. In the next two subsections we provide + HREF="node30.html#TUMINARO_TONG">23]. In the next two subsections we provide a brief description of the multi-level Schwarz preconditioners and of the smoothed aggregation technique as implemented in MLD2P4. For further details the user is referred to [2,3,4,15]. + HREF="node30.html#dd2_96">20].



    Subsections - -
    + +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node11.html b/docs/html/node11.html index 18e0525c..831d040e 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Smoothed Aggregation - Up: Up: Multi-level Domain Decomposition Background - Previous: Previous: Multi-level Domain Decomposition Background -   Contents -
    +   Contents
    +

    @@ -70,157 +71,157 @@ Given the linear system , where -$A=(a_{ij}) \in \Re^{n \times n}$ is a + ALT="$A=(a_{ij}) \in \Re^{n \times n}$"> is a nonsingular sparse matrix with a symmetric nonzero pattern, -let $G=(W,E)$ be the adjacency graph of $G=(W,E)$ be the adjacency graph of $A$, where -$W=\{1, 2, \ldots, n\}$ + ALT="$W=\{1, 2, \ldots, n\}$"> and -$E=\{(i,j) : a_{ij} \neq 0\}$ are the vertex set and the edge set of $E=\{(i,j) : a_{ij} \neq 0\}$ are the vertex set and the edge set of $G$, + ALT="$G$">, respectively. Two vertices are called adjacent if there is an edge connecting -them. For any integer $\delta > 0$, a $\delta > 0$, a $\delta$-overlap -partition of $\delta$-overlap +partition of $W$ can be defined recursively as follows. -Given a 0-overlap (or non-overlapping) partition of $W$ can be defined recursively as follows. +Given a 0-overlap (or non-overlapping) partition of $W$, -i.e. a set of $W$, +i.e. a set of $m$ disjoint nonempty sets -$W_i^0 \subset W$ such that + ALT="$W_i^0 \subset W$"> such that -$\cup_{i=1}^m W_i^0 = W$, a $\cup_{i=1}^m W_i^0 = W$, a $\delta$-overlap -partition of $\delta$-overlap +partition of $W$ is obtained by considering the sets + ALT="$W$"> is obtained by considering the sets -$W_i^\delta \supset W_i^{\delta-1}$ obtained by including the vertices that + ALT="$W_i^\delta \supset W_i^{\delta-1}$"> obtained by including the vertices that are adjacent to any vertex in -$W_i^{\delta-1}$. + ALT="$W_i^{\delta-1}$">.

    -Let $n_i^\delta$ be the size of $n_i^\delta$ be the size of $W_i^\delta$ and -$R_i^{\delta} \in
-\Re^{n_i^\delta \times n}$ the restriction operator that maps -a vector the restriction operator that maps +a vector $v \in \Re^n$ onto the vector -$v_i^{\delta} \in \Re^{n_i^\delta}$ -containing the components of $v_i^{\delta} \in \Re^{n_i^\delta}$ +containing the components of $v$ corresponding to the vertices in -$v$ corresponding to the vertices in +$W_i^\delta$. The transpose of $W_i^\delta$. The transpose of $R_i^{\delta}$ is a + ALT="$R_i^{\delta}$"> is a prolongation operator from -$\Re^{n_i^\delta}$ to $\Re^{n_i^\delta}$ to $\Re^n$. + ALT="$\Re^n$">. The matrix -$A_i^\delta=R_i^\delta A (R_i^\delta)^T \in
-\Re^{n_i^\delta \times n_i^\delta}$ can be considered -as a restriction of can be considered +as a restriction of $A$ corresponding to the set $A$ corresponding to the set $W_i^{\delta}$. + ALT="$W_i^{\delta}$">.

    -The classical one-level AS preconditioner is defined by +The classical one-level AS preconditioner is defined by

    -
    +
    -$v_i = R_i^{\delta} v$, $v_i = R_i^{\delta} v$, $i=1,\ldots,m$; + ALT="$i=1,\ldots,m$">;
  • solution of the linear systems -$A_i^\delta w_i = v_i$, - $A_i^\delta w_i = v_i$, + $i=1,\ldots,m$; + ALT="$i=1,\ldots,m$">;
  • -
  • prolongation and sum of the prolongation and sum of the $w_i$'s, i.e. -$w = \sum_{i=1}^m (R_i^{\delta})^T w_i$. + ALT="$w = \sum_{i=1}^m (R_i^{\delta})^T w_i$">.
  • Note that the linear systems at step 2 are usually solved approximately, -e.g. using incomplete LU factorizations such as ILU($p$), MILU($p$), MILU($p$) and -ILU($p$) and +ILU($p,t$) [14, Chapter 10]. + ALT="$p,t$">) [19, Chapter 10].

    A variant of the classical AS preconditioner that outperforms it in terms of convergence rate and of computation and communication -time on parallel distributed-memory computers is the so-called Restricted AS -(RAS) preconditioner [Restricted AS +(RAS) preconditioner [5,10]. It -is obtained by zeroing the components of 13]. It +is obtained by zeroing the components of $w_i$ corresponding to the + ALT="$w_i$"> corresponding to the overlapping vertices when applying the prolongation. Therefore, RAS differs from classical AS by the prolongation operators, which are substituted by -$(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$, -where $(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$, +where $\tilde{R}_i^0$ is obtained by zeroing the rows of $\tilde{R}_i^0$ is obtained by zeroing the rows of $R_i^\delta$ + ALT="$R_i^\delta$"> corresponding to the vertices in -$W_i^\delta \backslash W_i^0$: + ALT="$W_i^\delta \backslash W_i^0$">:

    -
    +
    -$R_C \in \Re^{n_C \times n}$, $R_C \in \Re^{n_C \times n}$, $A_C$ is defined as + ALT="$A_C$"> is defined as

    -
    +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node12.html b/docs/html/node12.html index 2842f66b..8d1b6ea7 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Getting Started - Up: Up: Multi-level Domain Decomposition Background - Previous: Previous: Multi-level Schwarz Preconditioners -   Contents -
    +   Contents
    +

    @@ -60,29 +61,29 @@ Smoothed Aggregation

    -In order to define the restriction operator $R_C$, which is used to compute -the coarse-level matrix $R_C$, which is used to compute +the coarse-level matrix $A_C$, MLD2P4 uses the smoothed aggregation + ALT="$A_C$">, MLD2P4 uses the smoothed aggregation algorithm described in [1,19]. + HREF="node30.html#VANEK_MANDEL_BREZINA">24]. The basic idea of this algorithm is to build a coarse set of vertices -$W_C$ by suitably grouping the vertices of $W_C$ by suitably grouping the vertices of $W$ into disjoint subsets -(aggregates), and to define the coarse-to-fine space transfer operator $W$ into disjoint subsets +(aggregates), and to define the coarse-to-fine space transfer operator $R_C^T$ by + ALT="$R_C^T$"> by applying a suitable smoother to a simple piecewise constant prolongation operator, to improve the quality of the coarse-space correction. @@ -90,29 +91,29 @@ prolongation operator, to improve the quality of the coarse-space correction. Three main steps can be identified in the smoothed aggregation procedure:

      -
    1. coarsening of the vertex set coarsening of the vertex set $W$, to obtain $W$, to obtain $W_C$; + ALT="$W_C$">;
    2. -
    3. construction of the prolongator construction of the prolongator $R_C^T$; + ALT="$R_C^T$">;
    4. -
    5. application of application of $R_C$ and $R_C$ and $R_C^T$ to build $R_C^T$ to build $A_C$. + ALT="$A_C$">.
    @@ -120,20 +121,20 @@ Three main steps can be identified in the smoothed aggregation procedure: To perform the coarsening step, we have implemented the aggregation algorithm sketched in [4]. According to [19], a modification of + HREF="node30.html#VANEK_MANDEL_BREZINA">24], a modification of this algorithm has been actually considered, -in which each aggregate $N_r$ is made of vertices of $N_r$ is made of vertices of $W$ that are strongly coupled -to a certain root vertex $W$ that are strongly coupled +to a certain root vertex $r \in W$, i.e.

    -
    + ALT="$r \in W$">, i.e.

    +
    -$\theta \in [0,1]$. -Since this algorithm has a sequential nature, a decoupled version of -it has been chosen, where each processor $\theta \in [0,1]$. +Since this algorithm has a sequential nature, a decoupled version of +it has been chosen, where each processor $i$ independently applies the algorithm to -the set of vertices $i$ independently applies the algorithm to +the set of vertices $W_i^0$ assigned to it in the initial data distribution. This + ALT="$W_i^0$"> assigned to it in the initial data distribution. This version is embarrassingly parallel, since it does not require any data communication. On the other hand, it may produce non-uniform aggregates near boundary vertices, i.e. near vertices adjacent to vertices in other processors, and is strongly -dependent on the number of processors and on the initial partitioning of the matrix $A$. + ALT="$A$">. Nevertheless, this algorithm has been chosen for the implementation in MLD2P4, since it has been shown to produce good results in practice [3,4,18]. + HREF="node30.html#TUMINARO_TONG">23].

    -The prolongator $P_C=R_C^T$ is built starting from a tentative prolongator + ALT="$P_C=R_C^T$"> is built starting from a tentative prolongator -$P \in \Re^{n \times n_C}$, defined as + ALT="$P \in \Re^{n \times n_C}$">, defined as
    -

    +
    + - +
    -(2)
    +(2)

    -$P_C$ is obtained by -applying to $P_C$ is obtained by +applying to $P$ a smoother -$S \in \Re^{n \times n}$: + ALT="$S \in \Re^{n \times n}$">:
    -
    +
    + - +
    \begin{displaymath}
 P_C = S P,
 \end{displaymath} -(3)
    +(3)

    in order to remove oscillatory components from the range of the prolongator and hence to improve the convergence properties of the multi-level Schwarz method [1,17]. -A simple choice for 22]. +A simple choice for $S$ is the damped Jacobi smoother: + ALT="$S$"> is the damped Jacobi smoother:
    -
    +
    + - +
    \begin{displaymath}
 S = I - \omega D^{-1} A ,
 \end{displaymath} -(4)
    +(4)

    -where the value of $\omega$ can be chosen -using some estimate of the spectral radius of $\omega$ can be chosen +using some estimate of the spectral radius of $D^{-1}A$ [ [1].

    -


    + +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node13.html b/docs/html/node13.html index c19e6216..73a09be7 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Examples - Up: Up: userhtml - Previous: Previous: Smoothed Aggregation -   Contents -
    +   Contents
    +

    @@ -63,58 +64,51 @@ Getting Started

    We describe the basics for building and applying MLD2P4 one-level and multi-level Schwarz preconditioners with the Krylov solvers included in PSBLAS [11]. + HREF="node30.html#PSBLASGUIDE">14]. The following steps are required:

      -
    1. Declare the preconditioner data structure. It is a derived data type, - mld_xprec_type, where x may be s, d, c +
    2. Declare the preconditioner data structure. It is a derived data type, + mld_xprec_ type, where x may be s, d, c or z, according to the basic data type of the sparse matrix (s = real single precision; d = real double precision; c = complex single precision; z = complex double precision). This data structure is accessed by the user only through the MLD2P4 routines, following an object-oriented approach.
    3. -
    4. Allocate and initialize the preconditioner data structure, according to - a preconditioner type chosen by the user. This is performed by the routine +
    5. Allocate and initialize the preconditioner data structure, according to + a preconditioner type chosen by the user. This is performed by the routine mld_precinit, which also sets defaults for each preconditioner type selected by the user. The defaults associated to each preconditioner - type are given in Table [*], where the strings used by + type are given in Table 1, where the strings used by mld_precinit to identify the preconditioner types are also given. Note that these strings are valid also if uppercase letters are substituted by corresponding lowercase ones.
    6. -
    7. Modify the selected preconditioner type, by properly setting - preconditioner parameters. This is performed by the routine mld_precset. +
    8. Modify the selected preconditioner type, by properly setting + preconditioner parameters. This is performed by the routine mld_precset. This routine must be called only if the user wants to modify the default values of the parameters associated to the selected preconditioner type, to obtain a variant of the preconditioner. Examples of use of mld_precset are given in - Section [*]; a complete list of all the + Section 5.1; a complete list of all the preconditioner parameters and their allowed and default values is provided in - Section [*], Tables [*]-[*]. + Section 6, Tables 2-5.
    9. -
    10. Build the preconditioner for a given matrix. This is performed by +
    11. Build the preconditioner for a given matrix. This is performed by the routine mld_precbld.
    12. -
    13. Apply the preconditioner at each iteration of a Krylov solver. +
    14. Apply the preconditioner at each iteration of a Krylov solver. This is performed by the routine mld_precaply. When using the PSBLAS Krylov solvers, this step is completely transparent to the user, since mld_precaply is called by the PSBLAS routine implementing the Krylov solver (psb_krylov).
    15. -
    16. Free the preconditioner data structure. This is performed by - the routine mld_precfree. This step is complementary to step 1 and should +
    17. Free the preconditioner data structure. This is performed by + the routine mld_ precfree. This step is complementary to step 1 and should be performed when the preconditioner is no more used.
    -A detailed description of the above routines is given in Section [*]. -Examples showing the basic use of MLD2P4 are reported in Section [*]. +A detailed description of the above routines is given in Section 6. +Examples showing the basic use of MLD2P4 are reported in Section 5.1.

    Note that the Fortran 95 module mld_prec_mod, containing the definition of the @@ -122,12 +116,11 @@ preconditioner data type and the interfaces to the routines of MLD2P4, must be used in any program calling such routines. The modules psb_base_mod, for the sparse matrix and communication descriptor data types, and psb_krylov_mod, for interfacing with the -Krylov solvers, must be also used (see Section [*]). +Krylov solvers, must be also used (see Section 5.1).

    -
    Remark 1. The coarsest-level solver used by the default two-level +
    Remark 1. The coarsest-level solver used by the default two-level preconditioner has been chosen by taking into account that, on parallel machines, it often leads to the smallest execution time when applied to linear systems coming from finite-difference discretizations of basic @@ -138,13 +131,12 @@ preconditioners [[*] +factorization (see Section 6 for the coarsest-level solvers available in MLD2P4).

    -
    Remark 2. The include path for MLD2P4 must override +
    Remark 2. The include path for MLD2P4 must override those for PSBLAS, e.g. the latter must come first in the sequence passed to the compiler, as the MLD2P4 version of the Krylov solver interfaces must override that of PSBLAS. This will change in the future @@ -153,9 +145,9 @@ compilers.


    -
    +
    - + SuperLU for the single precision ones, if they have been + installed; ILU(0), otherwise).
    Table: +Table 1: Preconditioner types, corresponding strings and default choices.
    @@ -192,16 +184,17 @@ Preconditioner types, corresponding strings and default choices. Post-smoother: RAS with overlap 1 and ILU(0) on the local blocks. Aggregation: smoothed aggregation with - threshold $\theta = 0$. + ALT="$\theta = 0$">. Coarsest matrix: distributed among the processors. Coarsest-level solver: 4 sweeps of the block-Jacobi solver, - with LU factorization of the blocks + with LU (or ILU) factorization of the blocks (UMFPACK for the double precision versions and - SuperLU for the single precision ones)
    @@ -217,42 +210,43 @@ Preconditioner types, corresponding strings and default choices. Subsections - -
    + +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node14.html b/docs/html/node14.html index 2cd3505f..a8d52ffd 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: User Interface - Up: Up: Getting Started - Previous: Previous: Getting Started -   Contents -
    +   Contents
    +

    @@ -60,11 +61,9 @@ Examples

    -The code reported in Figure [*] shows how to set and apply the default +The code reported in Figure 2 shows how to set and apply the default multi-level preconditioner available in the real double precision version -of MLD2P4 (see Table [*]). This preconditioner is chosen +of MLD2P4 (see Table 1). This preconditioner is chosen by simply specifying 'ML' as second argument of mld_precinit (a call to mld_precset is not needed) and is applied with the BiCGSTAB solver provided by PSBLAS. As previously observed, the modules psb_base_mod, @@ -78,25 +77,23 @@ here for brevity; the statements concerning the deallocation of the PSBLAS data structure are neglected too. The complete code can be found in the example program file mld_dexample_ml.f90, in the directory examples/fileread of the MLD2P4 tree (see -Section [*]). +Section 3.4). For details on the use of the PSBLAS routines, see the PSBLAS User's Guide [11]. + HREF="node30.html#PSBLASGUIDE">14].

    The setup and application of the default multi-level preconditioners for the real single precision and the complex, single and double precision, versions are obtained with straightforward modifications of the previous -example (see Section [*] for details). If these versions are installed, +example (see Section 6 for details). If these versions are installed, the corresponding Fortran 95 codes are available in examples/fileread/.

    -

    +
    -
    Figure: +Figure 2: Setup and application of the default multi-level Schwarz preconditioner.
    @@ -165,8 +162,7 @@ Setup and application of the default multi-level Schwarz preconditioner.

    Different versions of multi-level preconditioners can be obtained by changing the default values of the preconditioner parameters. The code reported in -Figure [*] shows how to set a three-level hybrid Schwarz +Figure 3 shows how to set a three-level hybrid Schwarz preconditioner, which uses block Jacobi with ILU(0) on the local blocks as post-smoother, has a coarsest matrix replicated on the processors, and solves the coarsest-level system with the LU factorization from UMFPACK [mld_precinit.

    -Figure [*] shows how to +Figure 4 shows how to set a three-level additive Schwarz preconditioner, which uses RAS, with overlap 1 and ILU(0) on the blocks, as pre- and post-smoother, and applies five block-Jacobi sweeps, with the UMFPACK LU factorization on the blocks, as distributed coarsest-level solver. Again, mld_precset is used only to set -non-default values of the parameters (see Tables [*]-[*]). +non-default values of the parameters (see Tables 2-5). In both cases, the construction and the application of the preconditioner are carried out as for the default multi-level preconditioner. -The code fragments shown in in Figures [*]-[*] are +The code fragments shown in in Figures 3-4 are included in the example program file mld_dexample_ml.f90 too.

    -Finally, Figure [*] shows the setup of a one-level +Finally, Figure 5 shows the setup of a one-level additive Schwarz preconditioner, i.e. RAS with overlap 2. The corresponding -example program is available in mld_dexample_1lev.f90. +example program is available in mld_dexample_ 1lev.f90.

    For all the previous preconditioners, example programs where the sparse matrix and @@ -207,10 +197,20 @@ the right-hand side are generated by discretizing a PDE with Dirichlet boundary conditions are also available in the directory examples/pdegen.

    + +
    Remark 3. Any PSBLAS-based program using the basic preconditioners +implemented in PSBLAS 2.0, i.e. the diagonal and block-Jacobi ones, +can use the diagonal and block-Jacobi preconditioners +implemented in MLD2P4 without any change in the code. +The PSBLAS-based program must be only recompiled +and linked to the MLD2P4 library. -

    +
    +

    + +

    -
    Figure: +Figure 3: Setup of a hybrid three-level Schwarz preconditioner.
    @@ -240,9 +240,9 @@ Setup of a hybrid three-level Schwarz preconditioner.

    -

    +
    -
    Figure: +Figure 4: Setup of an additive three-level Schwarz preconditioner.
    @@ -272,9 +272,9 @@ Setup of an additive three-level Schwarz preconditioner.

    -

    +
    -
    Figure: +Figure 5: Setup of a one-level Schwarz preconditioner.
    @@ -296,46 +296,38 @@ Setup of a one-level Schwarz preconditioner.

    - -
    Remark 3. Any PSBLAS-based program using the basic preconditioners -implemented in PSBLAS 2.0, i.e. the diagonal and block-Jacobi ones, -can use the diagonal and block-Jacobi preconditioners -implemented in MLD2P4 without any change in the code. -The PSBLAS-based program must be only recompiled -and linked to the MLD2P4 library. -

    -


    +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node15.html b/docs/html/node15.html index cc90b4c5..7ad51677 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precinit - Up: Up: userhtml - Previous: Previous: Examples -   Contents -
    +   Contents
    +

    @@ -61,7 +62,7 @@ User Interface

    -The basic user interface of MLD2P4 consists of six routines. The four routines mld_precinit, +The basic user interface of MLD2P4 consists of six routines. The four routines mld_ precinit, mld_precset, mld_precbld and mld_precaply encapsulate all the functionalities for the setup and the application of any one-level and multi-level preconditioner implemented in the package. @@ -76,29 +77,29 @@ i.e.

    • the sparse matrix data structure, containing the matrix to be - preconditioned, must be of type mld_xspmat_type - with x = s for real single precision, x = d - for real double precision, x = c for complex single precision, - x = z for complex double precision; + preconditioned, must be of type mld_xspmat_type + with x = s for real single precision, x = d + for real double precision, x = c for complex single precision, + x = z for complex double precision;
    • the preconditioner data structure must be of type - mld_xprec_type, with x = + mld_xprec_type, with x = s, d, c, z, according to the sparse matrix data structure;
    • -
    • the arrays containing the vectors the arrays containing the vectors $v$ and $v$ and $w$ involved in - the preconditioner application $w$ involved in + the preconditioner application $w=M^{-1}v$ must be of type - type(kind_parameter), with type = - real, complex and kind_parameter = kind(1.e0), + ALT="$w=M^{-1}v$"> must be of type + type(kind_parameter), with type = + real, complex and kind_parameter = kind(1.e0), kind(1.d0), according to the sparse matrix and preconditioner data structure; note that the PSBLAS module psb_base_mod provides the constants psb_spk_ @@ -106,91 +107,93 @@ i.e.
    • real parameters defining the preconditioner must be declared according to the precision of the sparse matrix and preconditioner - data structures (see Section [*]). + data structures (see Section 6.2).
    A description of each routine is given in the remainder of this section. +

    +



    Subsections - -
    + +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node16.html b/docs/html/node16.html index 51e59573..c0d74419 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: User Interface -   Contents -
    +   Contents
    +

    @@ -76,15 +77,15 @@ according to the preconditioner type chosen by the user. Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node17.html b/docs/html/node17.html index 4cc27ced..916439d3 100644 --- a/docs/html/node17.html +++ b/docs/html/node17.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precset - Up: Up: Subroutine mld_precinit - Previous: Previous: Subroutine mld_precinit -   Contents -
    +   Contents
    +

    @@ -61,46 +62,46 @@ Arguments

    - + - - + - + - + - + - + - + -
    ptype(mld_xprec_type), intent(inout).type(mld_xprec_type), intent(inout).
     The preconditioner data structure. Note that x +The preconditioner data structure. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    ptypecharacter(len=*), intent(in).character(len=*), intent(in).
     The type of preconditioner. Its values are specified - in Table [*].The type of preconditioner. Its values are specified + in Table 1.
     Note that the strings are case insensitive.Note that the strings are case insensitive.
    infointeger, intent(out).integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] for details.Error code. If no error, 0 is returned. See Section 7 for details.
    nlevinteger, optional, intent(in).integer, optional, intent(in).
     The number of levels of the multilevel preconditioner. +The number of levels of the multilevel preconditioner. If nlev is not present and ptype='ML', 'ml', then nlev=2 is assumed. Otherwise, nlev is ignored.
    +

    +



    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node18.html b/docs/html/node18.html index d6651557..0f4ca2a4 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -76,15 +77,15 @@ contained in val. Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node19.html b/docs/html/node19.html index f67181fd..f54ae053 100644 --- a/docs/html/node19.html +++ b/docs/html/node19.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precbld - Up: Up: Subroutine mld_precset - Previous: Previous: Subroutine mld_precset -   Contents -
    +   Contents
    +

    @@ -61,43 +62,38 @@ Arguments

    - + - - + - + numbers, as reported in Tables 2-5. - - - + -
    ptype(mld_xprec_type), intent(inout).type(mld_xprec_type), intent(inout).
     The preconditioner data structure. Note that x must +The preconditioner data structure. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    whatinteger, intent(in).integer, intent(in).
     The number identifying the parameter to be set. +The number identifying the parameter to be set. A mnemonic constant has been associated to each of these - numbers, as reported in Tables [*]-[*].
    val integer or character(len=*) or - real(psb_spk_) or real(psb_dpk_), +integer or character(len=*) or + real(psb_spk_) or real(psb_dpk_), intent(in).
     The value of the parameter to be set. The list of allowed +The value of the parameter to be set. The list of allowed values and the corresponding data types is given in - Tables [*]-[*]. + Tables 2-5. When the value is of type character(len=*), it is also treated as case insensitive.
    infointeger, intent(out).integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] +Error code. If no error, 0 is returned. See Section 7 for details.
    @@ -120,17 +116,20 @@ can be logically divided into four groups, i.e. parameters defining A list of the parameters that can be set, along with their allowed and -default values, is given in Tables [*]-[*]. +default values, is given in Tables 2-5. For a detailed description of the meaning of the parameters, please -refer to Section [*]. +refer to Section 4.

    - +

    +
    + + + +
    Table 2: +Parameters defining the type of multi-level preconditioner. +
    - +
    @@ -149,7 +148,7 @@ refer to Section 'DIAG' 'BJAC' 'AS' + block Jacobi, AS. @@ -160,11 +159,21 @@ refer to Section 
    what DATA TYPE val'AS' Basic one-level preconditioner (i.e. smoother): diagonal, - block Jacobi, AS
    mld_smoother_pos_ character(len=*)
    +
    +

    +

    - +

    +
    + + + +
    Table 3: +Parameters defining the one-level preconditioner used as smoother. +
    - +
    @@ -173,10 +182,10 @@ refer to Section  - + ALT="$\ge 0$"> @@ -201,44 +210,44 @@ refer to Section 'ILU' 'MILU' 'ILUT' 'UMF' 'SLU' - - + ALT="$\ge 0$"> - + ALT="$p$"> of the incomplete LU factorizations. - - + - - + + + ALT="$p,t$">) factorization. @@ -250,11 +259,21 @@ refer to Section 
    what DATA TYPE val
    mld_sub_ovr_ integerany integer number any int. num. $\ge 0$1 Number of overlap layers.
    'UMF'Local solver: ILU(Local solver: ILU($p$), MILU($p$), MILU($p$), ILU($p$), ILU($p,t$), LU from UMFPACK, LU from SuperLU + ALT="$p,t$">), LU from UMFPACK, LU from SuperLU (plus triangular solve).
    mld_sub_fillin_ integerAny int. num. Any int. num. $\ge 0$0Fill-in level Fill-in level $p$ of the incomplete LU factorizations.
    mld_sub_iluthrs_real(kind_parameter)Any real num. real(kind_parameter)Any real num. $\ge 0$0.e0 (or 0.d0)Drop tolerance $\ge 0$0Drop tolerance $t$ in the ILU($t$ in the ILU($p,t$) factorization.
    mld_sub_ren_ character(len=*)
    +
    +

    +

    - +

    +
    + + + +
    Table 4: +Parameters defining the aggregation algorithm. +
    - +
    @@ -271,62 +290,86 @@ refer to Section character(len=*) - + - - + - - + + + ALT="$\theta$"> in the aggregation algorithm. - - - + + - - + + ALT="$\omega$"> in the smoothed aggregation algorithm. + If the user specifies a negative value, then $\omega$ is set to its default + value; otherwise, $\omega$ is set to the value provided by the + user. In the latter case no estimate of the eigenvalue $D^{-1}A$ with + largest modulus is computed.
    what DATA TYPE val'SMOOTH' 'RAW' 'SMOOTH'Type of aggregation: smoothed or raw, i.e. using the tentative prolongator.Type of aggregation: smoothed, raw (i.e. using the tentative prolongator).
    mld_aggr_thresh_real(kind_parameter)Any real num. real(kind_parameter)Any real num. $\in [0, 1]$0.e0 (or 0.d0)The threshold $\in [0, 1]$0The threshold $\theta$ in the aggregation algorithm.
    mld_aggr_eig_ character(len=*) 'A_NORMI' 'A_NORMI'Estimate of the maximum eigenvalue of Estimate of the eigenvalue $D^{-1}A$ - for the smoothed aggregation. Currently, only the infinity norm of + ALT="$D^{-1}A$"> with largest modulus, + to build the damping parameter $\omega$ in the smoothed aggregation. + Currently, only the infinity norm of the matrix is available.
    mld_aggr_damp_real(kind_parameter)Any real num. real(kind_parameter)Any real num. +$>0$4.e0/3.e0 (or 4.d0/3.d0)The damping parameter $4/(3\vert\vert D^{-1}A\vert\vert _\infty)$The damping parameter $\omega$ in the aggregation algorithm.
    +
    +

    +

    - +

    +
    + + + +
    Table 5: +Parameters defining the coarse-space correction at the coarsest +level.
    - +
    - - - - - - + With 'SLUDIST' the coarsest matrix + must be distributed; with 'UMF' or + 'SLU' it must be replicated. + + + + + + @@ -344,90 +393,96 @@ refer to Section 'UMF' 'SLU' - - + + - - - + + + ALT="$p$"> of the incomplete LU factorizations. - - + - - + + + ALT="$p,t$">) factorization.
    what DATA TYPE val DEFAULT COMMENTS
    mld_coarse_mat_character(len=*)'DISTR' 'REPL''DISTR'Coarsest matrix: distributed among the processors or replicated on each of them.
    mld_coarse_solve_ character(len=*) 'BJAC' 'UMF' 'SLU' @@ -334,9 +377,15 @@ refer to Section 'BJAC' Solver used at the coarsest level: block Jacobi, sequential LU from UMFPACK, sequential LU from SuperLU, distributed LU from SuperLU_Dist. - If the coarsest matrix is distributed, only 'BJAC' and 'SLUDIST' - can be chosen; if it is replicated, only 'BJAC' or 'SLUDIST' can - be selected.
    mld_coarse_mat_character(len=*)'DISTR' 'REPL''DISTR'Coarsest matrix: distributed among the processors or replicated on each of them.
    mld_coarse_subsolve_ character(len=*)'UMF' Solver for the diagonal blocks of the coarse matrix, in case the block Jacobi solver - is chosen as coarsest-level solver: ILU($p$), MILU($p$), MILU($p$), ILU($p$), ILU($p,t$), LU from UMFPACK, + ALT="$p,t$">), LU from UMFPACK, LU from SuperLU, plus triangular solve.
    mld_coarse_sweeps_ integerAny int. num. $>0$4Any int. num. $> 0$4 Number of Block-Jacobi sweeps when 'BJAC' is used as coarsest-level solver.
    mld_coarse_fillin_ integerAny int. num. Any int. num. $\ge 0$0Fill-in level $\ge 0$0Fill-in level $p$ of the incomplete LU factorizations.
    mld_coarse_iluthrs_real(kind_parameter)Any real. num. real(kind_parameter)Any real. num. $\ge 0$0.d0 (or 0.e0)Drop tolerance $\ge 0$0Drop tolerance $t$ in the ILU($t$ in the ILU($p,t$) factorization.
    +
    +

    +
    + +

    -


    +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node2.html b/docs/html/node2.html index c243d11a..81bb94dd 100644 --- a/docs/html/node2.html +++ b/docs/html/node2.html @@ -1,4 +1,4 @@ - + -General Overview - +Contents + @@ -25,189 +25,104 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - -contents + SRC="file:/usr/share/latex2html/icons/prev.png">
    - Next: Notational Conventions - Up: Next: General Overview + Up: userhtml - Previous: Contents -   Contents -
    + Previous: Abstract
    +
    - -

    -
    -General Overview -

    - -

    -The MULTI-LEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON -PSBLAS (MLD2P4) provides multi-level Schwarz preconditioners [15], -to be used in the iterative solutions of sparse linear systems:
    -

    - - - - -
    \begin{displaymath}
-Ax=b,
-\end{displaymath} -(1)
    -

    -where $A$ is a square, real or complex, sparse matrix with a symmetric sparsity pattern. -These preconditioners have the following general features: +

    +Contents +

    + + +

    -The package is written in Fortran 95, following an -object-oriented approach through the exploitation of features -such as abstract data type creation, functional -overloading and dynamic memory management. -The parallel implementation is based -on a Single Program Multiple Data (SPMD) paradigm for distributed-memory architectures. -Single and double precision implementations of MLD2P4 are available for both the -real and the complex case, that can be used through a single interface. - -

    -MLD2P4 has been designed to implement scalable and easy-to-use multilevel preconditioners -in the context of the PSBLAS (Parallel Sparse BLAS) -computational framework [12]. -PSBLAS is a library originally developed to address the parallel implementation of -iterative solvers for sparse linear system, by providing basic linear algebra -operators and data management facilities for distributed sparse matrices; it -also includes parallel Krylov solvers, built on the top of the basic PSBLAS kernels. -The preconditioners available in MLD2P4 can be used with these Krylov solvers. -The choice of PSBLAS has been mainly motivated by the need of having -a portable and efficient software infrastructure implementing ``de facto'' standard -parallel sparse linear algebra kernels, to pursue goals such as performance, -portability, modularity ed extensibility in the development of the preconditioner -package. On the other hand, the implementation of MLD2P4 has led to some -revisions and extentions of the PSBLAS kernels, leading to the -recent PSBLAS 2.0 version [11]. The inter-process comunication required -by MLD2P4 is encapsulated into the PSBLAS routines, except few cases where -MPI [16] is explicitly called. Therefore, MLD2P4 can be run on any parallel -machine where PSBLAS and MPI implementations are available. - -

    -MLD2P4 has a layered and modular software architecture where three main layers can be identified. -The lower layer consists of the PSBLAS kernels, the middle one implements -the construction and application phases of the preconditioners, and the upper one -provides a uniform and easy-to-use interface to all the preconditioners. -This architecture allows for different levels of use of the package: -few black-box routines at the upper layer allow non-expert users to easily -build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver. -On the other hand, the routines of the middle and lower layer can be used and extended -by expert users to build new versions of multi-level Schwarz preconditioners. -We provide here a description of the upper-layer routines, but not of the -medium-layer ones. - -

    -This guide is organized as follows. The notational conventions used in -the guide and in the naming of the MLD2P4 routines are reported in -Section [*]. Information on the distribution of the source code and the -related license is given in Section [*], while details on the configuration -and installation of package are given in Section [*]. A description of -multi-level Schwarz preconditioners based on smoothed aggregation is provided -in Section [*], to help the users in choosing among the different preconditioners -implemented in MLD2P4. The basics for building and applying the preconditioners -with the Krylov solvers implemented in PSBLAS are reported in Section [*], where the -Fortran 95 codes of a few sample programs are also shown. A reference guide for -the upper-layer routines of MLD2P4, that are the user interface, is provided -in Section [*]. The error handling mechanism used by the package is briefly described -in Section [*]. The copyright terms concerning the distribution and modification -of MLD2P4 are reported in Appendix [*]. - +

    -


    - - -next - -up - -previous - -contents -
    - Next: Notational Conventions - Up: userhtml - Previous: Contents -   Contents - +

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node20.html b/docs/html/node20.html index 09431593..61b999e4 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -75,15 +76,15 @@ the user through the routines mld_precinit and mld_precset Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node21.html b/docs/html/node21.html index 1ce719b8..a83d3079 100644 --- a/docs/html/node21.html +++ b/docs/html/node21.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precaply - Up: Up: Subroutine mld_precbld - Previous: Previous: Subroutine mld_precbld -   Contents -
    +   Contents
    +

    @@ -61,37 +62,36 @@ Arguments

    - + - + HREF="node30.html#PSBLASGUIDE">14]. - + - + HREF="node30.html#PSBLASGUIDE">14]. - + - - + - +
    atype(psb_xspmat_type), intent(in).type(psb_xspmat_type), intent(in).
     The sparse matrix structure containing the local part of the - matrix to be preconditioned. Note that x must be chosen according +The sparse matrix structure containing the local part of the + matrix to be preconditioned. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use. See the PSBLAS User's Guide for details [11].
    desc_atype(psb_desc_type), intent(in).type(psb_desc_type), intent(in).
     The communication descriptor of a. See the PSBLAS User's Guide for +The communication descriptor of a. See the PSBLAS User's Guide for details [11].
    ptype(mld_xprec_type), intent(inout).type(mld_xprec_type), intent(inout).
     The preconditioner data structure. Note that x must be chosen according +The preconditioner data structure. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    infointeger, intent(out).integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] for details.Error code. If no error, 0 is returned. See Section 7 for details.
    @@ -100,7 +100,7 @@ single/double precision version of MLD2P4 under use.


    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node22.html b/docs/html/node22.html index d7b78022..ae47ff35 100644 --- a/docs/html/node22.html +++ b/docs/html/node22.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -71,17 +72,17 @@ Subroutine mld_precaply This routine computes -$y = op(M^{-1})  x$, where $y = op(M^{-1})  x$, where $M$ is a previously built -preconditioner, stored into p, and $op$ + ALT="$M$"> is a previously built +preconditioner, stored into p, and $op$ denotes the preconditioner itself or its transpose, according to the value of trans. Note that, when MLD2P4 is used with a Krylov solver from PSBLAS, @@ -93,15 +94,15 @@ and hence it is completely transparent to the user. Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node23.html b/docs/html/node23.html index 7e7ce7bd..b516d3bb 100644 --- a/docs/html/node23.html +++ b/docs/html/node23.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precfree - Up: Up: Subroutine mld_precaply - Previous: Previous: Subroutine mld_precaply -   Contents -
    +   Contents
    +

    @@ -61,128 +62,130 @@ Arguments

    - + - - + - - + - - + - - + - + - + - + SRC="img100.png" + ALT="$M^{-1})$">. - + -
    ptype(mld_xprec_type), intent(inout).type(mld_xprec_type), intent(inout).
     The preconditioner data structure, containing the local part of The preconditioner data structure, containing the local part of $M$. - Note that x must be chosen according + ALT="$M$">. + Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    xtype(kind_parameter), dimension(:), intent(in).type(kind_parameter), dimension(:), intent(in).
     The local part of the vector $x$. Note that type and - kind_parameter must be chosen according +The local part of the vector $x$. Note that type and + kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    ytype(kind_parameter), dimension(:), intent(out).type(kind_parameter), dimension(:), intent(out).
     The local part of the vector $y$. Note that type and - kind_parameter must be chosen according +The local part of the vector $y$. Note that type and + kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    desc_atype(psb_desc_type), intent(in).type(psb_desc_type), intent(in).
     The communication descriptor associated to the matrix to be +The communication descriptor associated to the matrix to be preconditioned.
    infointeger, intent(out).integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] for details.Error code. If no error, 0 is returned. See Section 7 for details.
    transcharacter(len=1), optional, intent(in).character(len=1), optional, intent(in).
     If trans = 'N','n' then -$op(M^{-1}) = M^{-1}$; + SRC="img98.png" + ALT="$op(M^{-1}) = M^{-1}$">; if trans = 'T','t' then -$op(M^{-1}) = M^{-T}$ - (transpose of $M^{-1})$; if trans = 'C','c' then -$op(M^{-1}) = M^{-C}$ - (conjugate transpose of $op(M^{-1}) = M^{-C}$ + (conjugate transpose of $M^{-1})$.
    worktype(kind_parameter), dimension(:), optional, target.type(kind_parameter), dimension(:), optional, target.
     Workspace. Its size should be at - least 4 * psb_cd_get_local_cols(desc_a) (see the PSBLAS User's Guide). - Note that type and kind_parameter must be chosen according +Workspace. Its size should be at + least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User's Guide). + Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.

    -


    + +

    + +

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node24.html b/docs/html/node24.html index d9639c22..30043348 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -74,15 +75,15 @@ This routine deallocates the preconditioner data structure. Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node25.html b/docs/html/node25.html index cae28244..1b087b74 100644 --- a/docs/html/node25.html +++ b/docs/html/node25.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Subroutine mld_precdescr - Up: Up: Subroutine mld_precfree - Previous: Previous: Subroutine mld_precfree -   Contents -
    +   Contents
    +

    @@ -61,26 +62,27 @@ Arguments

    - + - - +
    ptype(mld_xprec_type), intent(inout).type(mld_xprec_type), intent(inout).
     The preconditioner data structure. Note that x must be chosen according +The preconditioner data structure. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    info integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] for details.Error code. If no error, 0 is returned. See Section 7 for details.
    +

    +



    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node26.html b/docs/html/node26.html index 9879008b..df789a21 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Arguments - Up: Up: User Interface - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -67,23 +68,23 @@ Subroutine mld_precdescr

    -This routine prints a description of the preconditioner -to the standard output or to a file. +This routine prints a description of the preconditioner to the standard output or +to a file. It must be called after mld_precbld has been called.



    Subsections -

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node27.html b/docs/html/node27.html index f9432f78..b95818dc 100644 --- a/docs/html/node27.html +++ b/docs/html/node27.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Error Handling - Up: Up: Subroutine mld_precdescr - Previous: Previous: Subroutine mld_precdescr -   Contents -
    +   Contents
    +

    @@ -61,24 +62,23 @@ Arguments

    - + - - + - + - + -
    ptype(mld_xprec_type), intent(in).type(mld_xprec_type), intent(in).
     The preconditioner data structure. Note that x must be chosen according +The preconditioner data structure. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    infointeger, intent(out).integer, intent(out).
     Error code. If no error, 0 is returned. See Section [*] for details.Error code. If no error, 0 is returned. See Section 7 for details.
    ioutinteger, intent(in), optional.integer, intent(in), optional.
     The id of the file where the preconditioner description +The id of the file where the preconditioner description will be printed; the default is the standard output.
    @@ -87,7 +87,7 @@ Arguments


    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node28.html b/docs/html/node28.html index d7b07c27..3ab74f63 100644 --- a/docs/html/node28.html +++ b/docs/html/node28.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: License - Up: Up: userhtml - Previous: Previous: Arguments -   Contents -
    +   Contents
    +

    @@ -61,7 +62,7 @@ Error Handling

    -The error handling in MLD2P4 is based on the PSBLAS version 2 error +The error handling in MLD2P4 is based on the PSBLAS (version 2) error handling. Error conditions are signaled via an integer argument info; whenever an error condition is detected, an error trace stack is built by the library up to the top-level, user-callable @@ -69,16 +70,17 @@ routine. This routine will then decide, according to the user preferences, whether the error should be handled by terminating the program or by returning the error condition to the user code, which will then take action, and whether -an error message should be printed. These options may be set by using +an error message should be printed. These options may be set by using the PSBLAS error handling routines; for further details see the PSBLAS -user's guide. +User's Guide [14].



    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node29.html b/docs/html/node29.html index 7a139726..066aa963 100644 --- a/docs/html/node29.html +++ b/docs/html/node29.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Bibliography - Up: Up: userhtml - Previous: Previous: Error Handling -   Contents -
    +   Contents
    +

    @@ -100,12 +101,10 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -



    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node3.html b/docs/html/node3.html index e17062f4..34074237 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -1,4 +1,4 @@ - + -Notational Conventions - +General Overview + @@ -25,51 +25,182 @@ original version by: Nikos Drakos, CBLU, University of Leeds - - + next - up - previous - + contents
    - Next: Next: Code Distribution - Up: Up: userhtml - Previous: General Overview -   Contents -
    + Previous: Contents +   Contents
    +
    -

    +


    -Notational Conventions +General Overview

    -- caratteri tipografici usati nella guida (vedi guida ML recente e guida Aztec) -
    - convenzioni sui nomi di routine (anche differenza nei nomi tra high-level e - medium-level?), strutture dati, moduli, costanti, etc. (vedi guida psblas) -
    - versione reale e complessa, singola e doppia precisione +The MULTI-LEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON +PSBLAS (MLD2P4) provides multi-level Schwarz preconditioners [20], +to be used in the iterative solutions of sparse linear systems: +
    +

    + + + + + + +
    \begin{displaymath}
+Ax=b,
+\end{displaymath} +(1)
    +

    +where $A$ is a square, real or complex, sparse matrix with a symmetric sparsity pattern. +These preconditioners have the following general features: + +
      +
    • both additive and hybrid multilevel variants are implemented, +i.e. variants that are additive among the levels and inside each level, and variants +that are multiplicative among the levels and additive inside each level; +the basic Additive Schwarz (AS) preconditioners are obtained by considering only one level; +
    • +
    • a purely algebraic approach is used to +generate a sequence of coarse-level corrections to a basic AS preconditioner, without +explicitly using any information on the geometry of the original problem (e.g. the +discretization of a PDE). The smoothed aggregation technique is applied +as algebraic coarsening strategy [1,24]. +
    • +
    + +

    +The package is written in Fortran 95, following an +object-oriented approach through the exploitation of features +such as abstract data type creation, functional +overloading and dynamic memory management. +The parallel implementation is based +on a Single Program Multiple Data (SPMD) paradigm for distributed-memory architectures. +Single and double precision implementations of MLD2P4 are available for both the +real and the complex case, that can be used through a single interface. + +

    +MLD2P4 has been designed to implement scalable and easy-to-use multilevel preconditioners +in the context of the PSBLAS (Parallel Sparse BLAS) +computational framework [15]. +PSBLAS is a library originally developed to address the parallel implementation of +iterative solvers for sparse linear system, by providing basic linear algebra +operators and data management facilities for distributed sparse matrices; it +also includes parallel Krylov solvers, built on the top of the basic PSBLAS kernels. +The preconditioners available in MLD2P4 can be used with these Krylov solvers. +The choice of PSBLAS has been mainly motivated by the need of having +a portable and efficient software infrastructure implementing ``de facto'' standard +parallel sparse linear algebra kernels, to pursue goals such as performance, +portability, modularity ed extensibility in the development of the preconditioner +package. On the other hand, the implementation of MLD2P4 has led to some +revisions and extentions of the PSBLAS kernels, leading to the +recent PSBLAS 2.0 version [14]. The inter-process comunication required +by MLD2P4 is encapsulated into the PSBLAS routines, except few cases where +MPI [21] is explicitly called. Therefore, MLD2P4 can be run on any parallel +machine where PSBLAS and MPI implementations are available. + +

    +MLD2P4 has a layered and modular software architecture where three main layers can be identified. +The lower layer consists of the PSBLAS kernels, the middle one implements +the construction and application phases of the preconditioners, and the upper one +provides a uniform and easy-to-use interface to all the preconditioners. +This architecture allows for different levels of use of the package: +few black-box routines at the upper layer allow non-expert users to easily +build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver. +On the other hand, the routines of the middle and lower layer can be used and extended +by expert users to build new versions of multi-level Schwarz preconditioners. +We provide here a description of the upper-layer routines, but not of the +medium-layer ones. + +

    +This guide is organized as follows. General information on the distribution of the source code +is reported in Section 2, while details on the configuration +and installation of the package are given in Section 3. A description of +multi-level Schwarz preconditioners based on smoothed aggregation is provided +in Section 4, to help the users in choosing among the different preconditioners +implemented in MLD2P4. The basics for building and applying the preconditioners +with the Krylov solvers implemented in PSBLAS are reported in Section 5, where the +Fortran 95 codes of a few sample programs are also shown. A reference guide for +the upper-layer routines of MLD2P4, that are the user interface, is provided +in Section 6. The error handling mechanism used by the package is briefly described +in Section 7. The copyright terms concerning the distribution and modification +of MLD2P4 are reported in Appendix A. + +

    + +

    +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node30.html b/docs/html/node30.html index 539409a7..e72d2f91 100644 --- a/docs/html/node30.html +++ b/docs/html/node30.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: About this document ... - Up: Up: userhtml - Previous: Previous: License -   Contents -

    +   Contents +

    Bibliography -

    1 +

    + +

    +

    1
    M. Brezina, P. Vanek, A Black-Box Iterative Solver Based on a Two-Level Schwarz Method, @@ -110,57 +114,83 @@ ACM Transactions on Mathematical Software, 30, 2004, 196-199. J.W. Demmel, S.C. Eisenstat, J.R. Gilbert, X.S. Li and J.W.H. Liu, A supernodal approach to sparse partial pivoting, SIAM Journal on Matrix Analysis and Applications, 20, 3, 1999, 720-755. -

    10 +

    10 +
    +J. J. Dongarra, J. Du Croz, I. S. Duff, S. Hammarling, +A set of Level 3 Basic Linear Algebra Subprograms, +ACM Transactions on Mathematical Software, 16, 1990, 1-17. +

    11 +
    +J. J. Dongarra, J. Du Croz, S. Hammarling, R. J. Hanson, +An extended set of FORTRAN Basic Linear Algebra Subprograms, +ACM Transactions on Mathematical Software, 14, 1988, 1-17. +

    12 +
    +J. J. Dongarra and R. C. Whaley, +A User's Guide to the BLACS v. 1.1, +Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of +Tennessee, March 1995 (updated May 1997). +

    13
    E. Efstathiou, J. G. Gander, Why Restricted Additive Schwarz Converges Faster than Additive Schwarz, BIT Numerical Mathematics, 43, 2003, 945-959. -

    11 +

    14
    S. Filippone, A. Buttari, PSBLAS-2.3 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library, available from http://www.ce.uniroma2.it/psblas/. -

    12 +

    15
    S. Filippone, M. Colajanni, PSBLAS: A Library for Parallel Linear Algebra Computation on Sparse Matrices, ACM Transactions on Mathematical Software, 26, 4, 2000, 527-550. -

    13 +

    16 +
    +W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir, +MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions, +MIT Press, 1998. +

    17 +
    +C. L. Lawson, R. J. Hanson, D. Kincaid, F. T. Krogh, +Basic Linear Algebra Subprograms for FORTRAN usage, +ACM Transactions on Mathematical Software, 5, 1979, 308-323. +

    18
    X. S. Li, J. W. Demmel, SuperLU_DIST: A Scalable Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems, ACM Transactions on Mathematical Software, 29, 2, 2003, 110-140. -

    14 +

    19
    Y. Saad, -Iterative methods for sparse linear systems, 2nd edition, +Iterative methods for sparse linear systems, 2nd edition, SIAM, 2003

    -

    15 +

    20
    B. Smith, P. Bjorstad, W. Gropp, Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations, Cambridge University Press, 1996. -

    16 +

    21
    M. Snir, S. Otto, S. Huss-Lederman, D. Walker, J. Dongarra, MPI: The Complete Reference. Volume 1 - The MPI Core, second edition, MIT Press, 1998. -

    17 +

    22
    K. Stüben, Algebraic Multigrid (AMG): an Introduction with Applications, in A. Schüller, U. Trottenberg, C. Oosterlee, editors, Multigrid, Academic Press, 2000. -

    18 +

    23
    R. S. Tuminaro, C. Tong, Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines, in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000. -

    19 +

    24
    P. Vanek, J. Mandel and M. Brezina, Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems, @@ -173,7 +203,7 @@ Computing, 56, 1996, 179-196.

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node31.html b/docs/html/node31.html index 0743e8ba..7c9c1d1e 100644 --- a/docs/html/node31.html +++ b/docs/html/node31.html @@ -1,4 +1,4 @@ - + + +

    @@ -65,13 +66,13 @@ Copyright © 1997, 1998, 1999, Mathematics Department, Macquarie University, Sydney.

    The command line arguments were:
    - latex2html -dir ../html userhtml.tex + latex2html -html_version 4.0 -dir ../../html -mkdir -debug userhtml.tex

    -The translation was initiated by Salvatore Filippone on 2008-07-22 +The translation was initiated by Salvatore Filippone on 2008-07-23


    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node4.html b/docs/html/node4.html index ba0ac76f..2ab7336c 100644 --- a/docs/html/node4.html +++ b/docs/html/node4.html @@ -1,4 +1,4 @@ - + -
    + next - up - previous - + contents
    - Next: Next: Configuring and Building MLD2P4 - Up: Up: userhtml - Previous: Notational Conventions -   Contents -
    + Previous: General Overview +   Contents
    +

    @@ -61,25 +62,25 @@ Code Distribution

    -MLD2P4 is available from our project web site +MLD2P4 is available from the web site

    -http://www.mld2p4.it +http://www.mld2p4.it -
    -where you will also find contact points for further information and -bug reports. + +where contact points for further information can be also found. +To report bugs or ask general usage questions, please, send an email to +bugreport@mld2p4.it.

    The software is available under a modified BSD license, as specified -in appendix [*]; please note that some of the optional +in Appendix A; please note that some of the optional third party libraries may be licensed under a different and more stringent license, most notably the GPL, and this should be taken into account when treating derived works.


    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node5.html b/docs/html/node5.html index dcd7940b..13ebe95d 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Prerequisites - Up: Up: userhtml - Previous: Previous: Code Distribution -   Contents -
    +   Contents
    +

    @@ -63,18 +64,18 @@ Configuring and Building MLD2P4 To build MLD2P4 it is necessary to set up a Makefile with appropriate values for your system; this is done by means of the configure script. The distribution also includes the autoconf and automake -sources employed to generate the script, but this should not normally -be needed to build the software. +sources employed to generate the script, but usually this is not needed +to build the software.

    MLD2P4 is implemented almost entirely in Fortran 95, with some -interfaces to external libraries in C; we require the Fortran compiler -to support the Fortran 95 standard plus the extension TR15581, which +interfaces to external libraries in C; the Fortran compiler +must support the Fortran 95 standard plus the extension TR15581, which enhances the usability of ALLOCATABLE variables. Most modern Fortran compilers support this language level. In particular, this is supported by the GNU Fortran compiler as of version 4.2.0; however we recommend to use the latest available release (4.3.1 at the time of -this writing§). +this writing). The software defines data types and interfaces for real and complex data, in both single and double precision. @@ -83,21 +84,21 @@ real and complex data, in both single and double precision. Subsections -



    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node6.html b/docs/html/node6.html index f9f9e8ee..83760f68 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Optional third party libraries - Up: Up: Configuring and Building MLD2P4 - Previous: Previous: Configuring and Building MLD2P4 -   Contents -
    +   Contents
    +

    Prerequisites

    + +

    The following base libraries are needed:

    BLAS
    -
    The Basic Linear Algebra subprograms. Many vendors provide - optimized versions; if no vendor version is available for a given - platform, the ATLAS software http://www.netlib.org/atlas +
    The Basic Linear Algebra subprograms [10,10,17]. + Many vendors provide optimized versions; if no vendor version is + available for a given platform, the ATLAS software + (http://math-atlas.sourceforge.net/) may be employed. The reference BLAS from Netlib - http://www.netlib.org/blas are meant to define the standard - behaviour of the BLAS interface, so they not optimized for any - particular plaftorm, and should only be used as a last - resort. Note that BLAS computation form a relatively small part of + (http://www.netlib.org/blas) are meant to define the standard + behaviour of the BLAS interface, so they are not optimized for any + particular plaftorm, and should only be used as a last + resort. Note that BLAS computation form a relatively small part of the MLD2P4/PSBLAS computations; they are however critical when using preconditioners based on the UMFPACK or SuperLU third party libraries.
    MPI
    -
    A version of MPI is available on most high performance - computing system; we only require version 1.1. +
    A version of MPI [16,21] is available on most high performance + computing system; only version 1.1 is required.
    BLACS
    -
    The Basic Linear Algebra Communication Subroutines are - available in source form from http://www.netlib.org/blacs; +
    The Basic Linear Algebra Communication Subroutines + [12] are available in source form from http://www.netlib.org/blacs; some vendors include them in their parallel computing - support libraries. + support libraries. + +
    +
    PSBLAS
    +
    Parallel Sparse BLAS [14,15] is + available from +
    http://www.ce.uniroma2.it/psblas; indeed, all the + prerequisites listed so far are also prerequisites of PSBLAS. + Version 2.3 (or later) is required. To build the MLD2P4 library + it is necessary to get access to + the source PSBLAS directory employed to build the version under use; after + the build process completes, only the compiled form of the library is + necessary to build user applications.

    -The MLD2P4 software requires PSBLAS version 2.3 (at least), available -from http://www.ce.uniroma2.it/psblas; indeed, all the -prerequisites listed so far are also prerequisites of PSBLAS. Please -note that to build the MLD2P4 library it is necessary to get access to -the source PSBLAS directory used to build the version under use; after -the build process completes, only the compiled form of the library is -necessary to build user applications. - -

    -Please note that all the libraries listed so fare (BLAS, MPI, BLACS, -PSBLAS) must have Fortran interfaces compatible with the MLD2P4; +Please note that the four previous libraries must have Fortran +interfaces compatible with MLD2P4; usually this means that they should all be built with the same -compiler. +compiler as MLD2P4.

    -


    + +
    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node7.html b/docs/html/node7.html index f4b5f2e4..86a4fce5 100644 --- a/docs/html/node7.html +++ b/docs/html/node7.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Configuration options - Up: Up: Configuring and Building MLD2P4 - Previous: Previous: Prerequisites -   Contents -
    +   Contents
    +

    @@ -67,23 +68,29 @@ for multilevel preconditioners may change to reflect their presence.

    UMFPACK
    -
    A sparse direct factorization package available from +
    [8] + A sparse direct factorization package available from
    http://www.cise.ufl.edu/research/sparse/umfpack/; - provides serial factorization and solution for double - precision real and complex double precision data. We have tested + provides serial factorization and triangular system solution for double + precision real and complex data. We have tested versions 4.4 and 5.1;
    SuperLU
    -
    A sparse direct factorization package available from +
    [9] + A sparse direct factorization package available from
    http://crd.lbl.gov/~xiaoye/SuperLU/; provides serial - factorization and solution for single and double precision real and - complex data. We have tested versions 3.0 and 3.1. + factorization and triangular system solution for single and double precision, + real and complex data. We have tested versions 3.0 and 3.1.
    SuperLU_Dist
    -
    A sparse direct factorization package available +
    [18] + A sparse direct factorization package available from the same site as SuperLU; provides parallel factorization and - solution for real and complex double precision data. We have tested - version 2.1. + triangular system solution for double precision real and complex data. + We have tested version 2.1.
    @@ -91,7 +98,7 @@ for multilevel preconditioners may change to reflect their presence.

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node8.html b/docs/html/node8.html index 6a9dce9b..697d043a 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -1,4 +1,4 @@ - + - + next - up - previous - + contents
    - Next: Next: Example and test programs - Up: Up: Configuring and Building MLD2P4 - Previous: Previous: Optional third party libraries -   Contents -
    +   Contents
    +

    @@ -68,9 +69,10 @@ As a minimal example consider the following:
     ./configure --with-psblas=/home/user/PSBLAS/psblas-2.3
     
    -This assumes that the various MPI compilers and support libraries are -available in the standard directories on the system. Note that the -PSBLAS build directory must be specified with an absolute path. +which assumes that the various MPI compilers and support libraries are +available in the standard directories on the system, and specifies +only the PSBLAS build directory (note that the latter directory must +be specified with an absolute path). The full set of options may be looked at by issuing the command ./configure --help, which produces:
    @@ -133,7 +135,7 @@ Optional Packages:
       --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
       --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
       --with-psblas           The source directory for PSBLAS, for example,
    -                          --with-psblas=/opt/packages/psblas-2.2
    +                          --with-psblas=/opt/packages/psblas-2.3
       --with-libs             List additional link flags here. For example,
                               --with-libs=-lspecial_system_lib or
                               --with-libs=-L/path/to/libs
    @@ -206,7 +208,7 @@ make install
     

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/node9.html b/docs/html/node9.html index dbf041ff..c1a50eef 100644 --- a/docs/html/node9.html +++ b/docs/html/node9.html @@ -1,4 +1,4 @@ - + -
    + next - up - previous - + contents
    - Next: Next: Multi-level Domain Decomposition Background - Up: Up: Configuring and Building MLD2P4 - Previous: Previous: Configuration options -   Contents -
    +   Contents
    +
    -

    -Example and test programs +

    +
    +Example and test programs

    The package contains the examples and tests directories; both of them are further divided into fileread and @@ -75,13 +77,13 @@ both of them are further divided into fileread and

    The fileread directories contain sample programs that read -sparse matrices from files, according to the Matrix Market storage -format; the pargen instead generate matrices in full parallel -mode from the discretization of a sample PDE. +sparse matrices from files, according to the Matrix Market or the +Harwell-Boeing storage format; the pargen instead generate +matrices in full parallel mode from the discretization of a sample PDE.

    Salvatore Filippone -2008-07-22 +2008-07-23
    diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 18ed4357..64b0ac32 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -1,4 +1,4 @@ - + + + - -

    - -MLD2P4 User's and Reference Guidetitle - -
    - - -
    -
    -MLD2P4 -
    +MLD2P4
    -User's and Reference Guide -

    -
    -
    -
    A guide for the Multi-Level Domain Decomposition
    +User's and Reference Guide
    +
    A guide for the Multi-Level Domain Decomposition

    Parallel Preconditioners Package -based on PSBLAS
    - -
    - -

    +based on PSBLAS +Pasqua D'Ambra
    - - -
    -
    -Pasqua D'Ambra -
    ICAR-CNR, Naples, Italy +ICAR-CNR, Naples, Italy


    -
    Daniela di Serafino -
    Second University of Naples, Italy +
    Daniela di Serafino
    +Second University of Naples, Italy

    -
    Salvatore Filippone -
    University of Rome ``Tor Vergata'', Italy - -
    - -


    - - -
    -
    -Software version: 1.0 +
    Salvatore Filippone
    -July 22, 2008 - -
    - -

    +University of Rome ``Tor Vergata'', Italy +Software version: 1.0
    +July 24, 2008

    - -

    Abstract:

    -
    -MLD2P4 (MULTI-LEVEL DOMAIN DECOMPOSITION PARALLEL PRECONDITIONERS PACKAGE BASED ON -PSBLAS) is a package of parallel algebraic multi-level preconditioners. -It implements various versions of one-level additive and of multi-level additive -and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach -is applied to generate coarse-level corrections, so that no geometric background is needed -concerning the matrix to be preconditioned. The matrix is required to be square, real -or complex, with a symmetric sparsity pattern. - -

    -MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the -context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) -computational framework and can be used in conjuction with the Krylov solvers -available in this framework. MLD2P4 enables the user to easily specify different aspects -of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search -for the ``best'' preconditioner for the problem at hand. - -

    -The package has been designed employing object-oriented techniques, -using Fortran 95, with interfaces to additional third party libraries -such as UMFPACK, SuperLU and SuperLU_Dist, that -can be exploited in building multi-level preconditioners. The parallel -implementation is based on a Single Program Multiple Data (SPMD) -paradigm for distributed-memory architectures; the inter-process data -communication is based on MPI and is managed mainly through PSBLAS. - -

    -This guide provides a brief description of the functionalities and -the user interface of MLD2P4. -

    -

    - -

    - -


    +

    -
      + -
      - - -next -up -previous - -contents -
      - Next: Contents -   Contents - +

      Salvatore Filippone -2008-07-22 +2008-07-23
      diff --git a/docs/pdf/Makefile b/docs/pdf/Makefile index e2d56ea9..97222306 100644 --- a/docs/pdf/Makefile +++ b/docs/pdf/Makefile @@ -84,9 +84,9 @@ # TOPFILE = userguide.tex -SECFILE = title.tex abstract.tex overview.tex conventions.tex distribution.tex \ +SECFILE = title.tex abstract.tex overview.tex distribution.tex \ building.tex background.tex gettingstarted.tex userinterface.tex \ - errors.tex bibliography.tex license.tex + errors.tex bibliography.tex license.tex userhtml.tex FIGDIR = figures XPDFFLAGS = diff --git a/docs/pdf/abstract.tex b/docs/pdf/abstract.tex index fed6057d..45856568 100644 --- a/docs/pdf/abstract.tex +++ b/docs/pdf/abstract.tex @@ -1,4 +1,5 @@ -\begin{abstract} +\section*{Abstract} +\addcontentsline{toc}{section}{Abstract} \textsc{MLD2P4 (Multi-Level Domain Decomposition Parallel Preconditioners Package based on PSBLAS}) is a package of parallel algebraic multi-level preconditioners. It implements various versions of one-level additive and of multi-level additive @@ -24,4 +25,3 @@ communication is based on MPI and is managed mainly through PSBLAS. This guide provides a brief description of the functionalities and the user interface of MLD2P4. -\end{abstract} diff --git a/docs/pdf/background.tex b/docs/pdf/background.tex index b1594f94..52e7674b 100644 --- a/docs/pdf/background.tex +++ b/docs/pdf/background.tex @@ -29,7 +29,7 @@ in a coarse space, which globally couples the information related to the single submatrices. \emph{Two-level Schwarz} preconditioners are obtained -by combining basic (one-level) Schwarz preconditioners with a coarse-level +by combining basic (one-level) Sch\-warz preconditioners with a coarse-level correction. In this context, the one-level preconditioner is often called `smoother'. Different two-level preconditioners are obtained by varying the choice of the smoother and of the coarse-level correction, and the diff --git a/docs/pdf/bibliography.tex b/docs/pdf/bibliography.tex index d68f9c64..31f6f4bc 100644 --- a/docs/pdf/bibliography.tex +++ b/docs/pdf/bibliography.tex @@ -1,10 +1,11 @@ %\section{Bibliography\label{sec:bib}} +\begin{thebibliography}{99} +\addcontentsline{toc}{section}{\refname} \markboth{\textsc{MLD2P4 User's and Reference Guide}} {\textsc{References}} %\let\refname\relax -\begin{thebibliography}{99} % %\bibitem{PARA04FOREST} %G.~Bella, S.~Filippone, A.~De Maio, A., Testa, M.: @@ -81,11 +82,21 @@ J.W.~Demmel, S.C.~Eisenstat, J.R.~Gilbert, X.S.~Li and J.W.H.~Liu, A supernodal approach to sparse partial pivoting, SIAM Journal on Matrix Analysis and Applications, 20, 3, 1999, 720--755. % -%\bibitem{BLACS} -%J.~J.~Dongarra and R.~C.~Whaley, -%{\em A User's Guide to the BLACS v.~1.1}, -%Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of -%Tennessee, March 1995 (updated May 1997). +\bibitem{blas3} +J.~J.~Dongarra, J.~Du Croz, I.~S.~Duff, S.~Hammarling, +\emph{A set of Level 3 Basic Linear Algebra Subprograms}, +ACM Transactions on Mathematical Software, 16, 1990, 1--17. +% +\bibitem{blas2} +J.~J.~Dongarra, J.~Du Croz, S.~Hammarling, R.~J.~Hanson, +\emph{An extended set of FORTRAN Basic Linear Algebra Subprograms}, +ACM Transactions on Mathematical Software, 14, 1988, 1--17. +% +\bibitem{BLACS} +J.~J.~Dongarra and R.~C.~Whaley, +{\em A User's Guide to the BLACS v.~1.1}, +Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of +Tennessee, March 1995 (updated May 1997). % %\bibitem{sblas_97} %I.~Duff, M.~Marrone, G.~Radicati and C.~Vittoli, @@ -114,6 +125,17 @@ S.~Filippone, M.~Colajanni, {\em PSBLAS: A Library for Parallel Linear Algebra Computation on Sparse Matrices}, ACM Transactions on Mathematical Software, 26, 4, 2000, 527--550. +% +\bibitem{MPI2} +W.~Gropp, S.~Huss-Lederman, A.~Lumsdaine, E.~Lusk, B.~Nitzberg, W.~Saphir, M.~Snir, +{\em MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions}, +MIT Press, 1998. +% +\bibitem{blas1} +C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh, +\emph{Basic Linear Algebra Subprograms for FORTRAN usage}, +ACM Transactions on Mathematical Software, 5, 1979, 308--323. +% \bibitem{SUPERLUDIST} X.~S.~Li, J.~W.~Demmel, {\em SuperLU\_DIST: A Scalable Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems}, @@ -164,7 +186,7 @@ Cambridge University Press, 1996. M.~Snir, S.~Otto, S.~Huss-Lederman, D.~Walker, J.~Dongarra, {\em MPI: The Complete Reference. Volume 1 - The MPI Core}, second edition, MIT Press, 1998. -% +%% \bibitem{StubenGMD69_99} K.~St\"{u}ben, {\em Algebraic Multigrid (AMG): an Introduction with Applications}, diff --git a/docs/pdf/building.tex b/docs/pdf/building.tex index ed6ffc89..a3006c14 100644 --- a/docs/pdf/building.tex +++ b/docs/pdf/building.tex @@ -4,55 +4,56 @@ To build MLD2P4 it is necessary to set up a Makefile with appropriate values for your system; this is done by means of the \verb|configure| script. The distribution also includes the autoconf and automake -sources employed to generate the script, but this should not normally -be needed to build the software. +sources employed to generate the script, but usually this is not needed +to build the software. MLD2P4 is implemented almost entirely in Fortran~95, with some -interfaces to external libraries in C; we require the Fortran compiler -to support the Fortran~95 standard plus the extension TR15581, which +interfaces to external libraries in C; the Fortran compiler +must support the Fortran~95 standard plus the extension TR15581, which enhances the usability of \verb|ALLOCATABLE| variables. Most modern Fortran compilers support this language level. In particular, this is supported by the GNU Fortran compiler as of version 4.2.0; however we recommend to use the latest available release (4.3.1 at the time of -this writing§). +this writing). The software defines data types and interfaces for real and complex data, in both single and double precision. \subsection{Prerequisites} + The following base libraries are needed: \begin{description} -\item[BLAS] The Basic Linear Algebra subprograms. Many vendors provide - optimized versions; if no vendor version is available for a given - platform, the ATLAS software \verb!http://www.netlib.org/atlas! +\item[BLAS] The Basic Linear Algebra subprograms \cite{blas3,blas3,blas1}. + Many vendors provide optimized versions; if no vendor version is + available for a given platform, the ATLAS software + (\verb!http://math-atlas.sourceforge.net/!) may be employed. The reference BLAS from Netlib - \verb|http://www.netlib.org/blas| are meant to define the standard - behaviour of the BLAS interface, so they not optimized for any - particular plaftorm, and should only be used as a last - resort. Note that BLAS computation form a relatively small part of + (\verb|http://www.netlib.org/blas|) are meant to define the standard + behaviour of the BLAS interface, so they are not optimized for any + particular plaftorm, and should only be used as a last + resort. Note that BLAS computation form a relatively small part of the MLD2P4/PSBLAS computations; they are however critical when using preconditioners based on the UMFPACK or SuperLU third party libraries. -\item[MPI] A version of MPI is available on most high performance - computing system; we only require version 1.1. -\item[BLACS] The Basic Linear Algebra Communication Subroutines are - available in source form from \verb|http://www.netlib.org/blacs|; +\item[MPI] A version of MPI \cite{MPI2,MPI1} is available on most high performance + computing system; only version 1.1 is required. +\item[BLACS] The Basic Linear Algebra Communication Subroutines + \cite{BLACS} are available in source form from \verb|http://www.netlib.org/blacs|; some vendors include them in their parallel computing - support libraries. + support libraries. + \item[PSBLAS] Parallel Sparse BLAS \cite{PSBLASGUIDE,psblas_00} is + available from \\ \verb|http://www.ce.uniroma2.it/psblas|; indeed, all the + prerequisites listed so far are also prerequisites of PSBLAS. + Version 2.3 (or later) is required. To build the MLD2P4 library + it is necessary to get access to + the source PSBLAS directory employed to build the version under use; after + the build process completes, only the compiled form of the library is + necessary to build user applications. \end{description} -The MLD2P4 software requires PSBLAS version 2.3 (at least), available -from \verb|http://www.ce.uniroma2.it/psblas|; indeed, all the -prerequisites listed so far are also prerequisites of PSBLAS. Please -note that to build the MLD2P4 library it is necessary to get access to -the source PSBLAS directory used to build the version under use; after -the build process completes, only the compiled form of the library is -necessary to build user applications. - -Please note that all the libraries listed so fare (BLAS, MPI, BLACS, -PSBLAS) must have Fortran interfaces compatible with the MLD2P4; +Please note that the four previous libraries must have Fortran +interfaces compatible with MLD2P4; usually this means that they should all be built with the same -compiler. - +compiler as MLD2P4. \subsection{Optional third party libraries} @@ -61,19 +62,22 @@ note that these are optional, but if you enable them some defaults for multilevel preconditioners may change to reflect their presence. \begin{description} -\item[UMFPACK] A sparse direct factorization package available from\\ +\item[UMFPACK] \cite{UMFPACK} + A sparse direct factorization package available from \\ \verb|http://www.cise.ufl.edu/research/sparse/umfpack/|; - provides serial factorization and solution for double - precision real and complex double precision data. We have tested + provides serial factorization and triangular system solution for double + precision real and complex data. We have tested versions 4.4 and 5.1; -\item[SuperLU] A sparse direct factorization package available from \\ +\item[SuperLU] \cite{SUPERLU} + A sparse direct factorization package available from \\ \verb|http://crd.lbl.gov/~xiaoye/SuperLU/|; provides serial - factorization and solution for single and double precision real and - complex data. We have tested versions 3.0 and 3.1. -\item[SuperLU\_Dist] A sparse direct factorization package available + factorization and triangular system solution for single and double precision, + real and complex data. We have tested versions 3.0 and 3.1. +\item[SuperLU\_Dist] \cite{SUPERLUDIST} + A sparse direct factorization package available from the same site as SuperLU; provides parallel factorization and - solution for real and complex double precision data. We have tested - version 2.1. + triangular system solution for double precision real and complex data. + We have tested version 2.1. \end{description} \subsection{Configuration options} @@ -85,9 +89,10 @@ As a minimal example consider the following: \begin{verbatim} ./configure --with-psblas=/home/user/PSBLAS/psblas-2.3 \end{verbatim} -This assumes that the various MPI compilers and support libraries are -available in the standard directories on the system. Note that the -PSBLAS build directory must be specified with an {\em absolute} path. +which assumes that the various MPI compilers and support libraries are +available in the standard directories on the system, and specifies +only the PSBLAS build directory (note that the latter directory must +be specified with an {\em absolute} path). The full set of options may be looked at by issuing the command \verb|./configure --help|, which produces: \begin{verbatim} @@ -150,7 +155,7 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-psblas The source directory for PSBLAS, for example, - --with-psblas=/opt/packages/psblas-2.2 + --with-psblas=/opt/packages/psblas-2.3 --with-libs List additional link flags here. For example, --with-libs=-lspecial_system_lib or --with-libs=-L/path/to/libs @@ -218,7 +223,7 @@ followed (optionally) by make install \end{verbatim} -\subsection{Example and test programs} +\subsection{Example and test programs\label{sec:ex_and_test}} The package contains the \verb|examples| and \verb|tests| directories; both of them are further divided into \verb|fileread| and \verb|pargen| subdirectories. Their purpose is as follows: @@ -233,6 +238,6 @@ both of them are further divided into \verb|fileread| and implemented in the library. \end{description} The \verb|fileread| directories contain sample programs that read -sparse matrices from files, according to the Matrix Market storage -format; the \verb|pargen| instead generate matrices in full parallel -mode from the discretization of a sample PDE. +sparse matrices from files, according to the Matrix Market or the +Harwell-Boeing storage format; the \verb|pargen| instead generate +matrices in full parallel mode from the discretization of a sample PDE. diff --git a/docs/pdf/conventions.tex b/docs/pdf/conventions.tex deleted file mode 100644 index 32058331..00000000 --- a/docs/pdf/conventions.tex +++ /dev/null @@ -1,8 +0,0 @@ -\section{Notational Conventions\label{sec:conventions}} -\markboth{\textsc{MLD2P4 User's and Reference Guide}} - {\textsc{\ref{sec:conventions} Notational Conventions}} - - - caratteri tipografici usati nella guida (vedi guida ML recente e guida Aztec) \\ - - convenzioni sui nomi di routine (anche differenza nei nomi tra high-level e - medium-level?), strutture dati, moduli, costanti, etc. (vedi guida psblas) \\ - - versione reale e complessa, singola e doppia precisione\\ \ No newline at end of file diff --git a/docs/pdf/distribution.tex b/docs/pdf/distribution.tex index 45e8f86c..6541de15 100644 --- a/docs/pdf/distribution.tex +++ b/docs/pdf/distribution.tex @@ -3,15 +3,17 @@ {\textsc{\ref{sec:distribution} Code Distribution}} \noindent -MLD2P4 is available from our project web site +MLD2P4 is available from the web site \begin{quotation} -\tt http://www.mld2p4.it +\texttt{http://www.mld2p4.it} \end{quotation} -where you will also find contact points for further information and -bug reports. +where contact points for further information can be also found. +To report bugs or ask general usage questions, please, send an email to +\texttt{bugreport@mld2p4.it}. + The software is available under a modified BSD license, as specified -in appendix~\ref{sec:license}; please note that some of the optional +in Appendix~\ref{sec:license}; please note that some of the optional third party libraries may be licensed under a different and more stringent license, most notably the GPL, and this should be taken into account when treating derived works. diff --git a/docs/pdf/errors.tex b/docs/pdf/errors.tex index 72d4351c..375a5f69 100644 --- a/docs/pdf/errors.tex +++ b/docs/pdf/errors.tex @@ -1,8 +1,8 @@ -\section{Error Handling}\label{sec:errors} +\section{Error Handling\label{sec:errors}} \markboth{\textsc{MLD2P4 User's and Reference Guide}} {\textsc{\ref{sec:errors} Error handling}} -The error handling in MLD2P4 is based on the PSBLAS version 2 error +The error handling in MLD2P4 is based on the PSBLAS (version 2) error handling. Error conditions are signaled via an integer argument \verb|info|; whenever an error condition is detected, an error trace stack is built by the library up to the top-level, user-callable @@ -10,9 +10,9 @@ routine. This routine will then decide, according to the user preferences, whether the error should be handled by terminating the program or by returning the error condition to the user code, which will then take action, and whether -an error message should be printed. These options may be set by using +an error message should be printed. These options may be set by using the PSBLAS error handling routines; for further details see the PSBLAS -user's guide. +User's Guide \cite{PSBLASGUIDE}. %%% Local Variables: %%% mode: latex diff --git a/docs/pdf/gettingstarted.tex b/docs/pdf/gettingstarted.tex index 1d1cbab4..bcef17d5 100644 --- a/docs/pdf/gettingstarted.tex +++ b/docs/pdf/gettingstarted.tex @@ -7,7 +7,7 @@ Schwarz preconditioners with the Krylov solvers included in PSBLAS \cite{PSBLASG The following steps are required: \begin{enumerate} \item \emph{Declare the preconditioner data structure}. It is a derived data type, - \verb|mld_|\-\emph{x}\verb|prec_type|, where \emph{x} may be \verb|s|, \verb|d|, \verb|c| + \verb|mld_|\-\emph{x}\verb|prec_| \verb|type|, where \emph{x} may be \verb|s|, \verb|d|, \verb|c| or \verb|z|, according to the basic data type of the sparse matrix (\verb|s| = real single precision; \verb|d| = real double precision; \verb|c| = complex single precision; \verb|z| = complex double precision). @@ -36,7 +36,7 @@ The following steps are required: this step is completely transparent to the user, since \verb|mld_precaply| is called by the PSBLAS routine implementing the Krylov solver (\verb|psb_krylov|). \item \emph{Free the preconditioner data structure}. This is performed by - the routine \verb|mld_precfree|. This step is complementary to step 1 and should + the routine \verb|mld_| \verb|precfree|. This step is complementary to step 1 and should be performed when the preconditioner is no more used. \end{enumerate} A detailed description of the above routines is given in Section~\ref{sec:userinterface}. @@ -94,9 +94,10 @@ Multilevel &\verb|'ML'| & Multi-level hybrid preconditioner (additive Coarsest matrix: distributed among the processors. Coarsest-level solver: 4 sweeps of the block-Jacobi solver, - with LU factorization of the blocks + with LU (or ILU) factorization of the blocks (UMFPACK for the double precision versions and - SuperLU for the single precision ones) \\ + SuperLU for the single precision ones, if they have been + installed; ILU(0), otherwise). \\ \hline \end{tabular} %} @@ -123,7 +124,7 @@ here for brevity; the statements concerning the deallocation of the PSBLAS data structure are neglected too. The complete code can be found in the example program file \verb|mld_dexample_ml.f90|, in the directory \verb|examples/fileread| of the MLD2P4 tree (see -Section~\ref{sec:building}). +Section~\ref{sec:ex_and_test}). For details on the use of the PSBLAS routines, see the PSBLAS User's Guide \cite{PSBLASGUIDE}. @@ -221,12 +222,21 @@ included in the example program file \verb|mld_dexample_ml.f90| too. Finally, Figure~\ref{fig:ex_1l} shows the setup of a one-level additive Schwarz preconditioner, i.e.\ RAS with overlap 2. The corresponding -example program is available in \verb|mld_dexample_1lev.f90|. +example program is available in \verb|mld_dexample_| \verb|1lev.f90|. For all the previous preconditioners, example programs where the sparse matrix and the right-hand side are generated by discretizing a PDE with Dirichlet boundary conditions are also available in the directory \verb|examples/pdegen|. +\ \\ +\textbf{Remark 3.} Any PSBLAS-based program using the basic preconditioners +implemented in PSBLAS 2.0, i.e.\ the diagonal and block-Jacobi ones, +can use the diagonal and block-Jacobi preconditioners +implemented in MLD2P4 without any change in the code. +The PSBLAS-based program must be only recompiled +and linked to the MLD2P4 library. +\\ + \begin{figure}[tbh] \begin{center} @@ -291,13 +301,6 @@ boundary conditions are also available in the directory \verb|examples/pdegen|. \end{center} \end{figure} -\ \\ -\textbf{Remark 3.} Any PSBLAS-based program using the basic preconditioners -implemented in PSBLAS 2.0, i.e.\ the diagonal and block-Jacobi ones, -can use the diagonal and block-Jacobi preconditioners -implemented in MLD2P4 without any change in the code. -The PSBLAS-based program must be only recompiled -and linked to the MLD2P4 library. %%% Local Variables: %%% mode: latex diff --git a/docs/pdf/overview.tex b/docs/pdf/overview.tex index e23c2965..d4537981 100644 --- a/docs/pdf/overview.tex +++ b/docs/pdf/overview.tex @@ -71,11 +71,9 @@ by expert users to build new versions of multi-level Schwarz preconditioners. We provide here a description of the upper-layer routines, but not of the medium-layer ones. -This guide is organized as follows. The notational conventions used in -the guide and in the naming of the MLD2P4 routines are reported in -Section~\ref{sec:conventions}. Information on the distribution of the source code and the -related license is given in Section~\ref{sec:distribution}, while details on the configuration -and installation of package are given in Section~\ref{sec:building}. A description of +This guide is organized as follows. General information on the distribution of the source code +is reported in Section~\ref{sec:distribution}, while details on the configuration +and installation of the package are given in Section~\ref{sec:building}. A description of multi-level Schwarz preconditioners based on smoothed aggregation is provided in Section~\ref{sec:background}, to help the users in choosing among the different preconditioners implemented in MLD2P4. The basics for building and applying the preconditioners diff --git a/docs/pdf/title.tex b/docs/pdf/title.tex index 0014c655..831759b8 100644 --- a/docs/pdf/title.tex +++ b/docs/pdf/title.tex @@ -3,10 +3,24 @@ % $Id: title.tex 1999 2007-10-29 15:25:27Z sfilippo $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifx\pdfoutput\undefined % We're not running pdftex -\else +\ifcase\pdfoutput % We're not running pdftex +{\Large\bfseries MLD2P4\\[.8ex] User's and Reference Guide}\\ +\emph{\large A guide for the Multi-Level Domain Decomposition \\[.6ex] +Parallel Preconditioners Package +based on PSBLAS} +{\bfseries Pasqua D'Ambra}\\ + ICAR-CNR, Naples, Italy\\[3ex] +{\bfseries Daniela di Serafino}\\ + Second University of Naples, Italy\\[3ex] +{\bfseries Salvatore Filippone} \\ + University of Rome ``Tor Vergata'', Italy +%\\[10ex] +%\today +Software version: 1.0\\ +%\today +July 24, 2008 +\or \pdfbookmark{MLD2P4 User's and Reference Guide}{title} -\fi \newlength{\centeroffset} %\setlength{\centeroffset}{-0.5\oddsidemargin} %\addtolength{\centeroffset}{0.5\evensidemargin} @@ -23,7 +37,6 @@ Parallel Preconditioners Package based on PSBLAS} \end{minipage}} - \vspace{\stretch{1}} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright @@ -41,12 +54,12 @@ based on PSBLAS} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright \large Software version: 1.0\\ -\today +%\today +\large July 24, 2008 \end{minipage}} - - %\addtolength{\textwidth}{\centeroffset} \vspace{\stretch{2}} +\fi \endinput diff --git a/docs/pdf/userguide.tex b/docs/pdf/userguide.tex index 3f16e574..5997d2ec 100644 --- a/docs/pdf/userguide.tex +++ b/docs/pdf/userguide.tex @@ -37,7 +37,8 @@ } \setlength\textwidth{1.15\textwidth} -% \setlength\evensidemargin{.7in} +\setlength\oddsidemargin{0.3in} +\setlength\evensidemargin{0.2in} % \newlength{\centeroffset} % \setlength{\centeroffset}{0.5\oddsidemargin} % \addtolength{\centeroffset}{0.5\evensidemargin} @@ -80,6 +81,8 @@ \makeatother \newcommand{\example}{\stepcounter{example}% \section*{\examplename~\theexample}} +\def\bsideways{\sidewaystable} +\def\esideways{\endsidewaystable} \newcommand{\precdata}{\hyperlink{precdata}{{\tt mld\_prec\_type}}} \newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}} @@ -87,8 +90,45 @@ \newcommand{\Ref}[1]{\mbox{(\ref{#1})}} \begin{document} -\include{title} -%\cleardoublepage +\pdfbookmark{MLD2P4 User's and Reference Guide}{title} +\newlength{\centeroffset} +%\setlength{\centeroffset}{-0.5\oddsidemargin} +%\addtolength{\centeroffset}{0.5\evensidemargin} +%\addtolength{\textwidth}{-\centeroffset} +\thispagestyle{empty} +\vspace*{\stretch{1}} +\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} +\flushright +{\Huge\bfseries MLD2P4\\[.8ex] User's and Reference Guide +} +\noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] +\hfill\emph{\Large A guide for the Multi-Level Domain Decomposition \\[.6ex] +Parallel Preconditioners Package +based on PSBLAS} +\end{minipage}} + +\vspace{\stretch{1}} +\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} +\flushright +{\large\bfseries Pasqua D'Ambra}\\ +\large ICAR-CNR, Naples, Italy\\[3ex] +{\large\bfseries Daniela di Serafino}\\ +\large Second University of Naples, Italy\\[3ex] +{\large\bfseries Salvatore Filippone} \\ +\large University of Rome ``Tor Vergata'', Italy +%\\[10ex] +%\today +\end{minipage}} + +\vspace{\stretch{1}} +\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} +\flushright +\large Software version: 1.0\\ +%\today +\large July 24, 2008 +\end{minipage}} +%\addtolength{\textwidth}{\centeroffset} +\vspace{\stretch{2}} \clearpage \ \\ \thispagestyle{empty} @@ -112,16 +152,13 @@ \setcounter{page}{1} % Chapters start on page 1 \include{overview} -\include{conventions} \include{distribution} \include{building} \include{background} \include{gettingstarted} \include{userinterface} -%\include{advanced} \include{errors} -%\include{listofroutines} -\cleardoublepage +\clearpage \appendix \include{license} \cleardoublepage diff --git a/docs/pdf/userhtml.tex b/docs/pdf/userhtml.tex index c50d985f..9ef7c2db 100644 --- a/docs/pdf/userhtml.tex +++ b/docs/pdf/userhtml.tex @@ -80,6 +80,8 @@ \makeatother \newcommand{\example}{\stepcounter{example}% \section*{\examplename~\theexample}} +\def\bsideways{\begin{table}} +\def\esideways{\end{table}} \newcommand{\precdata}{\hyperlink{precdata}{{\tt mld\_prec\_type}}} \newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}} @@ -87,8 +89,21 @@ \newcommand{\Ref}[1]{\mbox{(\ref{#1})}} \begin{document} -\include{title} -%\cleardoublepage +{\Large\bfseries MLD2P4\\[.8ex] User's and Reference Guide}\\ +\emph{\large A guide for the Multi-Level Domain Decomposition \\[.6ex] +Parallel Preconditioners Package +based on PSBLAS} +{\bfseries Pasqua D'Ambra}\\ + ICAR-CNR, Naples, Italy\\[3ex] +{\bfseries Daniela di Serafino}\\ + Second University of Naples, Italy\\[3ex] +{\bfseries Salvatore Filippone} \\ + University of Rome ``Tor Vergata'', Italy +%\\[10ex] +%\today +Software version: 1.0\\ +%\today +July 24, 2008 \clearpage \ \\ \thispagestyle{empty} @@ -112,7 +127,6 @@ \setcounter{page}{1} % Chapters start on page 1 \include{overview} -\include{conventions} \include{distribution} \include{building} \include{background} diff --git a/docs/pdf/userinterface.tex b/docs/pdf/userinterface.tex index c658455d..e268f63e 100644 --- a/docs/pdf/userinterface.tex +++ b/docs/pdf/userinterface.tex @@ -1,11 +1,9 @@ \section{User Interface\label{sec:userinterface}} \markboth{\textsc{MLD2P4 User's and Reference Guide}} {\textsc{\ref{sec:userinterface} User Interface}} -\def\bsideways{\sidewaystable} -\def\esideways{\endsidewaystable} -The basic user interface of MLD2P4 consists of six routines. The four routines \verb|mld_precinit|, +The basic user interface of MLD2P4 consists of six routines. The four routines \verb|mld_| \verb|precinit|, \verb|mld_precset|, \verb|mld_precbld| and \verb|mld_precaply| encapsulate all the functionalities for the setup and the application of any one-level and multi-level preconditioner implemented in the package. @@ -40,6 +38,7 @@ i.e. \end{itemize} A description of each routine is given in the remainder of this section. +\clearpage \subsection{Subroutine mld\_precinit\label{sec:precinit}} @@ -54,7 +53,7 @@ according to the preconditioner type chosen by the user. \subsubsection*{Arguments} -\begin{tabular}{p{1.2cm}p{10.5cm}} +\begin{tabular}{p{1.2cm}p{12cm}} \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\ & The preconditioner data structure. Note that \emph{x} must be chosen according to the real/complex, single/double @@ -71,6 +70,7 @@ according to the preconditioner type chosen by the user. then \verb|nlev|=2 is assumed. Otherwise, \verb|nlev| is ignored.\\ \end{tabular} +\clearpage \subsection{Subroutine mld\_precset\label{sec:precset}} @@ -85,7 +85,7 @@ contained in \verb|val|. \subsubsection*{Arguments} -\begin{tabular}{p{1.2cm}p{10.5cm}} +\begin{tabular}{p{1.2cm}p{12cm}} \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\ & The preconditioner data structure. Note that \emph{x} must be chosen according to the real/complex, single/double precision @@ -136,7 +136,7 @@ refer to Section~\ref{sec:background}. %multi-level preconditioners. Non-expert users are recommended %to call \verb| mld_precset| without specifying \verb|ilev|. -\ifcase\pdfoutput\else\bsideways\fi +\bsideways \begin{center} \begin{tabular}{|l|l|p{2cm}|l|p{7cm}|} \hline @@ -152,7 +152,7 @@ refer to Section~\ref{sec:background}. & \texttt{'DIAG'} \ \ \ \texttt{'BJAC'} \ \ \ \texttt{'AS'} & \texttt{'AS'} & Basic one-level preconditioner (i.e.\ smoother): diagonal, - block Jacobi, AS \\ \hline + block Jacobi, AS. \\ \hline \verb|mld_smoother_pos_| & \verb|character(len=*)| & \texttt{'PRE'} \ \ \ \texttt{'POST'} \ \ \ \texttt{'TWOSIDE'} & \texttt{'POST'} @@ -163,9 +163,9 @@ refer to Section~\ref{sec:background}. \end{center} \caption{Parameters defining the type of multi-level preconditioner. \label{tab:p_type}} -\ifcase\pdfoutput\else\esideways\fi +\esideways -\ifcase\pdfoutput\else\bsideways\fi +\bsideways \begin{center} \begin{tabular}{|l|l|p{3.2cm}|l|p{7cm}|} \hline @@ -173,7 +173,7 @@ refer to Section~\ref{sec:background}. \textsc{comments} \\ \hline %\multicolumn{5}{|c|}{\emph{basic one-level preconditioner (smoother)}} \\ \hline \verb|mld_sub_ovr_| & \verb|integer| - & any integer number $\ge 0$ + & any~int.~num.~$\ge 0$ & 1 & Number of overlap layers. \\ \hline \verb|mld_sub_restr_| & \verb|character(len=*)| @@ -200,7 +200,7 @@ refer to Section~\ref{sec:background}. & Fill-in level $p$ of the incomplete LU factorizations. \\ \hline \verb|mld_sub_iluthrs_| & \verb|real(|\emph{kind\_parameter}\verb|)| & Any~real~num.~$\ge 0$ - & \texttt{0.e0} (or \texttt{0.d0}) + & 0 & Drop tolerance $t$ in the ILU($p,t$) factorization. \\ \hline \verb|mld_sub_ren_| & \verb|character(len=*)| & \texttt{'RENUM\_NONE'} \texttt{'RENUM\_GLOBAL'} %, \texttt{'RENUM_GPS'} @@ -213,9 +213,9 @@ refer to Section~\ref{sec:background}. \end{center} \caption{Parameters defining the one-level preconditioner used as smoother. \label{tab:p_smoother}} -\ifcase\pdfoutput\else\esideways\fi +\esideways -\ifcase\pdfoutput\else\bsideways\fi +\bsideways \begin{center} \begin{tabular}{|l|l|p{2.3cm}|p{2.6cm}|p{7cm}|} \hline @@ -229,48 +229,53 @@ refer to Section~\ref{sec:background}. \verb|mld_aggr_kind_| & \verb|character(len=*)| & \texttt{'SMOOTH'} \hspace{2.5cm} \texttt{'RAW'} & \texttt{'SMOOTH'} - & Type of aggregation: smoothed or raw, i.e.\ using the tentative prolongator. \\ \hline + & Type of aggregation: smoothed, raw (i.e.\ using the tentative prolongator). \\ \hline \verb|mld_aggr_thresh_| & \verb|real(|\emph{kind\_parameter}\verb|)| & Any~real~num. $\in [0, 1]$ - & \texttt{0.e0} (or \texttt{0.d0}) + & 0 & The threshold $\theta$ in the aggregation algorithm. \\ \hline \verb|mld_aggr_eig_| & \verb|character(len=*)| & \texttt{'A\_NORMI'} & \texttt{'A\_NORMI'} - & Estimate of the maximum eigenvalue of $D^{-1}A$ - for the smoothed aggregation. Currently, only the infinity norm of + & Estimate of the eigenvalue $D^{-1}A$ with largest modulus, + to build the damping parameter $\omega$ in the smoothed aggregation. + Currently, only the infinity norm of the matrix is available. \\ \hline \verb|mld_aggr_damp_| & \verb|real(|\emph{kind\_parameter}\verb|)| - & Any~real~num. $>0$ - & \texttt{4.e0/3.e0} \hspace{1cm} (or \texttt{4.d0/3.d0}) - & The damping parameter $\omega$ in the aggregation algorithm. \\ + & Any~real~num. + & $4/(3||D^{-1}A||_\infty)$ + & The damping parameter $\omega$ in the smoothed aggregation algorithm. + If the user specifies a negative value, then $\omega$ is set to its default + value; otherwise, $\omega$ is set to the value provided by the + user. In the latter case no estimate of the eigenvalue $D^{-1}A$ with + largest modulus is computed.\\ \hline \end{tabular} \end{center} \caption{Parameters defining the aggregation algorithm. \label{tab:p_aggregation}} -\ifcase\pdfoutput\else\esideways\fi +\esideways -\ifcase\pdfoutput\else\bsideways\fi +\bsideways \begin{center} \begin{tabular}{|l|l|p{3.2cm}|l|p{7cm}|} \hline \verb|what| & \textsc{data type} & \verb|val| & \textsc{default} & \textsc{comments} \\ \hline %\multicolumn{5}{|c|}{\emph{coarse-space correction at the coarsest level}}\\ \hline -\verb|mld_coarse_mat_| & \verb|character(len=*)| - & \texttt{'DISTR'} \hspace{2.5cm} \texttt{'REPL'} - & \texttt{'DISTR'} - & Coarsest matrix: distributed among the processors or replicated on each of them. \\ \hline \verb|mld_coarse_solve_| & \verb|character(len=*)| & \texttt{'BJAC'} \hspace{2.5cm} \texttt{'UMF'} \hspace{2.5cm} \texttt{'SLU'} \hspace{2.5cm} \texttt{'SLUDIST'} & \texttt{'BJAC'} & Solver used at the coarsest level: block Jacobi, sequential LU from UMFPACK, sequential LU from SuperLU, distributed LU from SuperLU\_Dist. - If the coarsest matrix is distributed, only \texttt{'BJAC'} and \texttt{'SLUDIST'} - can be chosen; if it is replicated, only \texttt{'BJAC'} or \texttt{'SLUDIST'} can - be selected. \\ \hline + With \texttt{'SLUDIST'} the coarsest matrix + must be distributed; with \texttt{'UMF'} or + \texttt{'SLU'} it must be replicated. \\ \hline +\verb|mld_coarse_mat_| & \verb|character(len=*)| + & \texttt{'DISTR'} \hspace{2.5cm} \texttt{'REPL'} + & \texttt{'DISTR'} + & Coarsest matrix: distributed among the processors or replicated on each of them. \\ \hline \verb|mld_coarse_subsolve_| & \verb|character(len=*)| & \texttt{'ILU'} \hspace{2.5cm} \texttt{'MILU'} \hspace{2.5cm} \texttt{'ILUT'} \hspace{2.5cm} \texttt{'UMF'} \hspace{2.5cm} \texttt{'SLU'} @@ -280,25 +285,26 @@ refer to Section~\ref{sec:background}. LU from SuperLU, plus triangular solve. \\ \hline \verb|mld_coarse_sweeps_|& \verb|integer| & Any~int.~num.~$> 0$ - & \texttt{4} - & Number of Block-Jacobi sweeps when 'BJAC' is used as coarsest-level solver. \\ + & 4 + & Number of Block-Jacobi sweeps when 'BJAC' is used as coarsest-level solver. \\ \hline \verb|mld_coarse_fillin_| & \verb|integer| & Any~int.~num.~$\ge 0$ - & \texttt{0} + & 0 & Fill-in level $p$ of the incomplete LU factorizations. \\ \hline \verb|mld_coarse_iluthrs_| & \verb|real(|\emph{kind\_parameter}\verb|)| & Any~real.~num.~$\ge 0$ - & \texttt{0.d0} (or \texttt{0.e0}) + & 0 & Drop tolerance $t$ in the ILU($p,t$) factorization. \\ \hline \end{tabular} \end{center} \caption{Parameters defining the coarse-space correction at the coarsest level.\label{tab:p_coarse}} -\ifcase\pdfoutput\else\esideways\fi +\esideways \clearpage + \subsection{Subroutine mld\_precbld\label{sec:precbld}} \begin{center} @@ -311,7 +317,7 @@ the user through the routines \verb|mld_precinit| and \verb|mld_precset|. \subsubsection*{Arguments} -\begin{tabular}{p{1.2cm}p{10.5cm}} +\begin{tabular}{p{1.2cm}p{12cm}} \verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\ & The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that \emph{x} must be chosen according @@ -347,7 +353,7 @@ and hence it is completely transparent to the user. \subsubsection*{Arguments} -\begin{tabular}{p{1.2cm}p{10.5cm}} +\begin{tabular}{p{1.2cm}p{12cm}} \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\ & The preconditioner data structure, containing the local part of $M$. Note that \emph{x} must be chosen according @@ -372,11 +378,12 @@ and hence it is completely transparent to the user. (conjugate transpose of $M^{-1})$.\\ \verb|work| & \emph{type}\verb|(|\emph{kind\_parameter}\verb|), dimension(:), optional, target|.\\ & Workspace. Its size should be at - least \verb|4 * psb_cd_get_local_cols(desc_a)| (see the PSBLAS User's Guide). + least \verb|4 * psb_cd_get_local_| \verb|cols(desc_a)| (see the PSBLAS User's Guide). Note that \emph{type} and \emph{kind\_parameter} must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.\\ \end{tabular} +\clearpage \subsection{Subroutine mld\_precfree\label{sec:precfree}} @@ -397,6 +404,7 @@ This routine deallocates the preconditioner data structure. & Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\ \end{tabular} +\clearpage \subsection{Subroutine mld\_precdescr\label{sec:precdescr}} @@ -406,12 +414,12 @@ This routine deallocates the preconditioner data structure. \end{center} \noindent -This routine prints a description of the preconditioner -to the standard output or to a file. +This routine prints a description of the preconditioner to the standard output or +to a file. It must be called after \verb|mld_precbld| has been called. \subsubsection*{Arguments} -\begin{tabular}{p{1.2cm}p{10.6cm}} +\begin{tabular}{p{1.2cm}p{12cm}} \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(in)|.\\ & The preconditioner data structure. Note that \emph{x} must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.\\