diff --git a/docs/html/index.html b/docs/html/index.html index b176468d..351b0f09 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -61,9 +61,9 @@ University of Rome ``Tor Vergata'', Italy


-Software version: 1.1 +Software version: 2.0-beta
-March 13, 2009 +March 20,2012
diff --git a/docs/html/node12.html b/docs/html/node12.html index 99bcdaeb..c9dd7de1 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -685,7 +685,7 @@ denoted by $R_l$. -
+
diff --git a/docs/html/node14.html b/docs/html/node14.html index c73b0645..9441c3a6 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -140,7 +140,7 @@ compilers.


-
+
Figure 1: Application of the multi-level hybrid post-smoothed preconditioner.
Table 1: Preconditioner types, corresponding strings and default choices. diff --git a/docs/html/node15.html b/docs/html/node15.html index 6ab5b6a5..8488f9ad 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -86,7 +86,7 @@ the corresponding Fortran 95 codes are available in examples/fileread/ -
+
Figure 2: Setup and application of the default multi-level Schwarz preconditioner. @@ -203,7 +203,7 @@ and linked to the MLD2P4 library.

-

+
@@ -235,7 +235,7 @@ Setup of a hybrid three-level Schwarz preconditioner.

-

+
Figure 3: Setup of a hybrid three-level Schwarz preconditioner.
@@ -267,7 +267,7 @@ Setup of an additive three-level Schwarz preconditioner.

-

+
Figure 4: Setup of an additive three-level Schwarz preconditioner.
diff --git a/docs/html/node18.html b/docs/html/node18.html index 9098b0c4..4c84c201 100644 --- a/docs/html/node18.html +++ b/docs/html/node18.html @@ -133,7 +133,7 @@ refer to Section 4.


-
+
Figure 5: Setup of a one-level Schwarz preconditioner.
Table 2: Parameters defining the type of multi-level preconditioner. @@ -177,7 +177,7 @@ Parameters defining the type of multi-level preconditioner.


-
+
Table 3: Parameters defining the one-level preconditioner used as smoother. @@ -277,7 +277,7 @@ Parameters defining the one-level preconditioner used as smoother.


-
+
Table 4: Parameters defining the aggregation algorithm. @@ -380,7 +380,7 @@ Parameters defining the aggregation algorithm.


-
+
Table 5: Parameters defining the coarse-space correction at the coarsest diff --git a/docs/html/node26.html b/docs/html/node26.html index 3aa01cfb..b626a29f 100644 --- a/docs/html/node26.html +++ b/docs/html/node26.html @@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney. The command line arguments were:
latex2html -local_icons -noaddress -dir ../../html userhtml.tex

-The translation was initiated by Salvatore Filippone on 2011-03-25 +The translation was initiated by Salvatore Filippone on 2012-03-20


diff --git a/docs/html/node5.html b/docs/html/node5.html index f09ab62c..11ec4874 100644 --- a/docs/html/node5.html +++ b/docs/html/node5.html @@ -63,14 +63,13 @@ 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 +MLD2P4 is implemented almost entirely in Fortran 2003, with some 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). +must support the Fortran 2003 standard plus the extension MOLD= +feature, which +enhances the usability of ALLOCATE. +Many compiles do this; in particular, this is +supported by the GNU Fortran compiler as of version 4.6.0 The software defines data types and interfaces for real and complex data, in both single and double precision. diff --git a/docs/html/node6.html b/docs/html/node6.html index 466b496e..ca059c69 100644 --- a/docs/html/node6.html +++ b/docs/html/node6.html @@ -80,13 +80,6 @@ The following base libraries are needed: HREF="node25.html#MPI2">17,22] A version of MPI is available on most high-performance computing systems; only version 1.1 is required. - -

BLACS
-
[13] The Basic Linear Algebra Communication Subprograms - are available in source form from http://www.netlib.org/blacs; - some vendors include them in their parallel computing - support libraries.
PSBLAS
@@ -94,17 +87,11 @@ The following base libraries are needed: HREF="node25.html#PSBLASGUIDE">15,16] Parallel Sparse BLAS is available from -
http://www.ce.uniroma2.it/psblas; version 2.3.1 - (or later) is required. Indeed, all the prerequisites +
http://www.ce.uniroma2.it/psblas; version + 3.0 (or later) is required. Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS. - 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 MLD2P4 build process completes, only the compiled form of the - PSBLAS library is necessary to build user applications. - -

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 diff --git a/docs/html/node8.html b/docs/html/node8.html index ff2e8a8d..96b1772b 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -62,11 +62,11 @@ in the main directory to generate the necessary makefile(s).

As a minimal example consider the following:

-./configure --with-psblas=/home/user/PSBLAS/psblas-2.3
+./configure --with-psblas=PSB-INSTALL-DIR
 
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 +only the PSBLAS install 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: @@ -180,13 +180,14 @@ Thus, a sample build with libraries in installation directories specifics to the GNU 4.3 compiler suite might be as follows, specifying only the UMFPACK external package:
- ./configure --with-psblas=/home/user/psblas-2.3/ \
- --with-libs="-L/usr/local/BLAS/gnu43 -L/usr/local/BLACS/gnu43" \
- --with-blacs=-lmpiblacs  --with-umfpackdir=/usr/local/UMFPACK/gnu43
+ ./configure --with-psblas=/home/user/psblas-3.0/ \
+ --with-libs="-L/usr/local/BLAS/gnu46 -L/usr/local/BLACS/gnu46" \
+ --with-umfpackdir=/usr/local/UMFPACK/gnu46
 
Once the configure script has completed execution, it will have generated the file Make.inc which will then be used by all -Makefiles in the directory tree. +Makefiles in the directory tree; this file will be copied in the +install directory under the name Make.inc.MLD2P4.

To build the library the user will now enter diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index b176468d..351b0f09 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -61,9 +61,9 @@ University of Rome ``Tor Vergata'', Italy


-Software version: 1.1 +Software version: 2.0-beta
-March 13, 2009 +March 20,2012
diff --git a/docs/src/Makefile b/docs/src/Makefile index 4afcd22b..c4031352 100644 --- a/docs/src/Makefile +++ b/docs/src/Makefile @@ -139,7 +139,7 @@ PDF = $(join $(BASEFILE),.pdf) PS = $(join $(BASEFILE),.ps) GXS = $(join $(BASEFILE),.gxs) GLX = $(join $(BASEFILE),.glx) -TARGETPDF= ../mld2p4-1.1-guide.pdf +TARGETPDF= ../mld2p4-2.0-guide.pdf BASEHTML = $(patsubst %.tex,%,$(HTMLFILE)) HTML = $(join $(HTMLFILE),.html) HTMLDIR = ../html diff --git a/docs/src/building.tex b/docs/src/building.tex index 96d7c218..adf3cbab 100644 --- a/docs/src/building.tex +++ b/docs/src/building.tex @@ -7,14 +7,13 @@ script. The distribution also includes the autoconf and automake 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 +MLD2P4 is implemented almost entirely in Fortran~2003, with some 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). +must support the Fortran~2003 standard plus the extension \verb|MOLD=| +feature, which +enhances the usability of \verb|ALLOCATE|. +Many compiles do this; in particular, this is +supported by the GNU Fortran compiler as of version 4.6.0 The software defines data types and interfaces for real and complex data, in both single and double precision. @@ -36,20 +35,11 @@ The following base libraries are needed: libraries. \item[MPI] \cite{MPI2,MPI1} A version of MPI is available on most high-performance computing systems; only version 1.1 is required. -\item[BLACS] \cite{BLACS} The Basic Linear Algebra Communication Subprograms - are available in source form from \verb|http://www.netlib.org/blacs|; - some vendors include them in their parallel computing - support libraries. \item[PSBLAS] \cite{PSBLASGUIDE,psblas_00} Parallel Sparse BLAS is - available from \\ \verb|http://www.ce.uniroma2.it/psblas|; version 2.3.1 - (or later) is required. Indeed, all the prerequisites + available from \\ \verb|http://www.ce.uniroma2.it/psblas|; version + 3.0 (or later) is required. Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS. - 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 MLD2P4 build process completes, only the compiled form of the - PSBLAS library is necessary to build user applications. \end{description} - 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 @@ -87,11 +77,11 @@ in the main directory to generate the necessary makefile(s). As a minimal example consider the following: \begin{verbatim} -./configure --with-psblas=/home/user/PSBLAS/psblas-2.3 +./configure --with-psblas=PSB-INSTALL-DIR \end{verbatim} 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 +only the PSBLAS install 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: @@ -205,13 +195,14 @@ Thus, a sample build with libraries in installation directories specifics to the GNU 4.3 compiler suite might be as follows, specifying only the UMFPACK external package: \begin{verbatim} - ./configure --with-psblas=/home/user/psblas-2.3/ \ - --with-libs="-L/usr/local/BLAS/gnu43 -L/usr/local/BLACS/gnu43" \ - --with-blacs=-lmpiblacs --with-umfpackdir=/usr/local/UMFPACK/gnu43 + ./configure --with-psblas=/home/user/psblas-3.0/ \ + --with-libs="-L/usr/local/BLAS/gnu46 -L/usr/local/BLACS/gnu46" \ + --with-umfpackdir=/usr/local/UMFPACK/gnu46 \end{verbatim} Once the configure script has completed execution, it will have generated the file \verb|Make.inc| which will then be used by all -Makefiles in the directory tree. +Makefiles in the directory tree; this file will be copied in the +install directory under the name \verb|Make.inc.MLD2P4|. To build the library the user will now enter \begin{verbatim} diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index e98993b4..53f698d2 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -27,7 +27,7 @@ \pdfcompresslevel=0 %-- 0 = none, 9 = best \pdfinfo{ %-- Info dictionary of PDF output /Author (PD, DdS, SF) /Title (MultiLevel Domain Decomposition Parallel Preconditioners Package - based on PSBLAS, V. 1.1) + based on PSBLAS, V. 2.0) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) @@ -125,9 +125,9 @@ based on PSBLAS} \vspace{\stretch{1}} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright -\large Software version: 1.1\\ +\large Software version: 2.0-beta\\ %\today -\large March 13, 2009 +\large March 20, 2012 \end{minipage}} %\addtolength{\textwidth}{\centeroffset} \vspace{\stretch{2}} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 0e072c88..f5aeb0a3 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -102,9 +102,9 @@ based on PSBLAS}\\[3ex] University of Rome ``Tor Vergata'', Italy\\[2ex] %\\[10ex] %\today -Software version: 1.1\\ +Software version: 2.0-beta\\ %\today -March 13, 2009 +March 20,2012 \clearpage \ \\ \thispagestyle{empty} diff --git a/mlprec/impl/mld_c_ilu_solver_impl.f90 b/mlprec/impl/mld_c_ilu_solver_impl.f90 index 734de314..3cf93be2 100644 --- a/mlprec/impl/mld_c_ilu_solver_impl.f90 +++ b/mlprec/impl/mld_c_ilu_solver_impl.f90 @@ -114,8 +114,6 @@ subroutine mld_c_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in allocate(ww(n_col),aux(4*n_col),stat=info) endif - call wv%bld(n_col,mold=x%v) - if (info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/5*n_col,0,0,0,0/),& @@ -147,7 +145,7 @@ subroutine mld_c_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in call wv1%mlt(cone,sv%dv,wv,czero,info,conjgx=trans_) - if (info == psb_success_) call psb_spsm(alpha,sv%l,wv,beta,y,desc_data,info,& + if (info == psb_success_) call psb_spsm(alpha,sv%l,wv1,beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_,work=aux) case default diff --git a/mlprec/impl/mld_d_ilu_solver_impl.f90 b/mlprec/impl/mld_d_ilu_solver_impl.f90 index 1c010d4e..82ede496 100644 --- a/mlprec/impl/mld_d_ilu_solver_impl.f90 +++ b/mlprec/impl/mld_d_ilu_solver_impl.f90 @@ -114,8 +114,6 @@ subroutine mld_d_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in allocate(ww(n_col),aux(4*n_col),stat=info) endif - call wv%bld(n_col,mold=x%v) - if (info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/5*n_col,0,0,0,0/),& @@ -147,7 +145,7 @@ subroutine mld_d_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in call wv1%mlt(done,sv%dv,wv,dzero,info,conjgx=trans_) - if (info == psb_success_) call psb_spsm(alpha,sv%l,wv,beta,y,desc_data,info,& + if (info == psb_success_) call psb_spsm(alpha,sv%l,wv1,beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_,work=aux) case default diff --git a/mlprec/impl/mld_s_ilu_solver_impl.f90 b/mlprec/impl/mld_s_ilu_solver_impl.f90 index 7abeaca8..1bbff108 100644 --- a/mlprec/impl/mld_s_ilu_solver_impl.f90 +++ b/mlprec/impl/mld_s_ilu_solver_impl.f90 @@ -114,8 +114,6 @@ subroutine mld_s_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in allocate(ww(n_col),aux(4*n_col),stat=info) endif - call wv%bld(n_col,mold=x%v) - if (info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/5*n_col,0,0,0,0/),& @@ -147,7 +145,7 @@ subroutine mld_s_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in call wv1%mlt(sone,sv%dv,wv,szero,info,conjgx=trans_) - if (info == psb_success_) call psb_spsm(alpha,sv%l,wv,beta,y,desc_data,info,& + if (info == psb_success_) call psb_spsm(alpha,sv%l,wv1,beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_,work=aux) case default diff --git a/mlprec/impl/mld_z_ilu_solver_impl.f90 b/mlprec/impl/mld_z_ilu_solver_impl.f90 index 10745d8b..da825b62 100644 --- a/mlprec/impl/mld_z_ilu_solver_impl.f90 +++ b/mlprec/impl/mld_z_ilu_solver_impl.f90 @@ -114,8 +114,6 @@ subroutine mld_z_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in allocate(ww(n_col),aux(4*n_col),stat=info) endif - call wv%bld(n_col,mold=x%v) - if (info /= psb_success_) then info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/5*n_col,0,0,0,0/),& @@ -147,7 +145,7 @@ subroutine mld_z_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,in call wv1%mlt(zone,sv%dv,wv,zzero,info,conjgx=trans_) - if (info == psb_success_) call psb_spsm(alpha,sv%l,wv,beta,y,desc_data,info,& + if (info == psb_success_) call psb_spsm(alpha,sv%l,wv1,beta,y,desc_data,info,& & trans=trans_,scale='U',choice=psb_none_,work=aux) case default