docs/pdf/commrout.tex
 docs/pdf/datastruct.tex
 docs/pdf/intro.tex
 docs/pdf/penv.tex
 docs/pdf/precs.tex
 docs/pdf/toolsrout.tex
 docs/userguide.pdf

Merged doc changes from 2.2-maint.
psblas3-type-indexed
Salvatore Filippone 17 years ago
parent 0089d916b1
commit 73014a7a05

@ -66,7 +66,7 @@ POINTER attribute.
\item[data] index list selector.\\
Scope: {\bf global} \\
Type: {\bf optional} \\
Specified as: an integer. Values:\verb|psb_comm_halo_|,
Specified as: an integer. Values:\verb|psb_comm_halo_|,\verb|psb_comm_mov_|,
\verb|psb_comm_ext_|, default: \verb|psb_comm_halo_|. Chooses the
index list on which to base the data exchange.

@ -79,15 +79,17 @@ current process, organized in groups like the previous vector:
The list may contain an arbitrary number of groups; its end is marked
by a -1.\\
Specified as: an allocatable integer array of rank one.
\item [{\bf ovr\_mst\_idx}] A list to retrieve the value of each
overlap element from the respective master process.\\
Specified as: an allocatable integer array of rank one.
\item [{\bf ovrlap\_elem}] For all overlap points belonging to th
ecurrent process:
\begin{enumerate}
\item Overlap point index;
\item Number of processes sharing that overlap points;
\item Overlap point index;
\item Number of processes sharing that overlap points;
\item Index of a ``master'' process:
\end{enumerate}
The list may contain an arbitrary number of groups; its end is marked
by a -1.\\
Specified as: an allocatable integer array of rank one.
Specified as: an allocatable integer array of rank two.
\item[{\bf loc\_to\_glob}] each element $i$ of this array contains
global identifier of the local variable $i$.\\
Specified as: an allocatable integer array of rank one.
@ -103,7 +105,9 @@ as follows:
type psb_desc_type
integer, allocatable :: matrix_data(:), halo_index(:)
integer, allocatable :: ext_index(:)
integer, allocatable :: overlap_elem(:), overlap_index(:)
integer, allocatable :: ovrlap_elem(:,:)
integer, allocatable :: ovrlap_index(:)
integer, allocatable :: ovr_mst_idx(:)
integer, allocatable :: loc_to_glob(:), glob_to_loc(:)
integer, allocatable :: hashv(:), glb_lc(:,:)
end type psb_desc_type
@ -145,6 +149,15 @@ sec.~\ref{sec:dataquery}.
\item[psb\_halo\_] Fetch halo elements from neighbouring processes;
\item[psb\_sum\_] Sum overlapped elements
\item[psb\_avg\_] Average overlapped elements
\item[psb\_comm\_halo\_] Exchange data based on the \verb|halo_index|
list;
\item[psb\_comm\_ext\_] Exchange data based on the \verb|ext_index|
list;
\item[psb\_comm\_ovr\_] Exchange data based on the \verb|ovrlap_index|
list;
\item[psb\_comm\_mov\_] Exchange data based on the \verb|ovr_mst_idx|
list;
%% \item[psb\_square\_root\_] Update with the square root of the average
%% of overlapped elements;
%% \item[psb\_dec\_type\_] Entry holding decomposition type (in \verb|desc_a%matrix_data|)

@ -188,9 +188,9 @@ multiple domains. Any operation that involves an overlap point
has to be replicated for each assignment.
\end{description}
Overlap points do not usually exist in the basic data
distribution, but they are a feature of Domain Decomposition
Schwarz preconditioners which we are the subject of related research
work~\cite{2007c,2007d}.
distributions; however they are a feature of Domain Decomposition
Schwarz preconditioners which are the subject of related research
work~\cite{2007c,2007d}.
We denote the sets of internal, boundary and halo points for a given
subdomain by $\cal I$, $\cal B$ and $\cal H$.

@ -253,7 +253,8 @@ Scope: {\bf global}.\\
Type: {\bf required}.\\
Intent: {\bf inout}.\\
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. \
scalar, or a rank 1 or 2 array, or a character or logical variable,
which may be a scalar or rank 1 array. \
Type, rank and size must agree on all processes.
\item[root] Root process holding data to be broadcast.\\
Scope: {\bf global}.\\

@ -75,77 +75,7 @@ $ptype$ string as follows\footnote{The string is case-insensitive}:
by the data allocation boundaries for each process; requires no
communication. Only the incomplete factorization $ILU(0)$ is
currently implemented.
%% \item[AS] Additive Schwarz preconditioner (see~\cite{PARA04}); in this
%% case the user may specify additional flags through the integer
%% vector \verb|ir| as follows:
%% \begin{description}
%% \item[$iv(1)$] Number of overlap levels, an integer $novr>=0$, default
%% $novr=1$.
%% \item[$iv(2)$] Restriction operator, legal values: \verb|psb_halo_|,
%% \verb|psb_none_|; default: \verb|psb_halo_|
%% \item[$iv(3)$] Prolongation operator, legal values: \verb|psb_none_|,
%% \verb|psb_sum_|, \verb|psb_avg_|, default: \verb|psb_none_|
%% \item[$iv(4)$] Factorization type, legal values: \verb|f_ilu_n_|,
%% \verb|f_slu_|, \verb|f_umf_|, default: \verb|f_ilu_n_|.
%% \end{description}
%% Note that the default corresponds to a Restricted Additive Schwarz
%% preconditioner with $ILU(0)$ and 1 level of overlap.
%% \item[2L] Second level of a multilevel preconditioner, see below
%% \end{description}
%% If a multilevel preconditioner is desired, the user should call
%% \verb|psb_precset| twice, the first time choosing an AS variant, and
%% a second time specifying
%% $ptype=2L$ with the following optional parameters in $iv$ (see
%% also~\cite{APNUM06,DD2}):
%% \begin{description}
%% \item[$iv(1)$] Type of multilevel correction, legal values: \verb|no_ml_|,
%% \verb|add_ml_prec_|, \verb|mult_ml_prec_|,
%% default: \verb|mult_ml_prec_|;
%% \item[$iv(2)$] Aggregation algorithm, legal values: \verb|loc_aggr_|;
%% \item[$iv(3)$] Smoother type, legal values: \verb|no_smth_|,
%% \verb|smth_omg_|, default: \verb|smth_omg_|;
%% \item[$iv(4)$] Coarse matrix allocation, legal values:
%% \verb|mat_distr_|, \verb|mat_repl_|, default: \verb|mat_distr_|
%% \item[$iv(5)$] Smoother position, legal values: \verb|pre_smooth_|,
%% \verb|post_smooth_|, \verb|smooth_both_|, default:
%% \verb|post_smooth_|
%% \item[$iv(6)$] Factorization type (for coarse matrix), legal values: \verb|f_ilu_n_|,
%% \verb|f_slu_|, \verb|f_umf_|, default: \verb|f_ilu_n_|;
%% \item[$iv(7)$] Number of Jacobi sweeps for coarse system correction,
%% default 1.
%% \item[$rs$] Set the smoother parameter $\omega$ a user defined value;
%% default: esitimate with the infinity norm of matrix $A$.
\end{description}
%% The 2-level preconditioners are based on the idea of building a
%% coarse-space approximation $A_C$ of the matrix $A$; given a set $W_C$
%% of coarse vertices, with size $n_C$, and a suitable restriction
%% operator $R_C \in \Re^{n_C \times n}$, $A_C$ is defined as
%% \[
%% A_C=R_C A R_C^T .
%% \]
%% The prolongator $R_C^T$ is built with the smoothed aggregation technique,
%% in which we start from a tentative prolongator that simply maps
%% fine-level entries onto their aggregates $P_C$; if the user chooses
%% \verb|no_smth_| this is the prolongator used, otherwise it is
%% multiplied by a smoother \[ S = I - \omega D^{-1} A \], where $D$ is
%% the diagonal of $A$ and $\omega$ may be imposed by the user or
%% estimated internally.
%% The coarse space correction may be added to the fine level solution
%% \verb|add_ml_prec_|
%% \[
%% M_{2L-A}^{-1} = M_{C}^{-1} + M_{1L}^{-1}.
%% \]
%% or it can be composed in a multiplicative framework
%% (\verb|mult_ml_prec_|)as a pre-smoothed correction (\verb|pre_smooth_|)
%% \[
%% M_{2L-H1}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1},
%% \]
%% post-smoothed correction (\verb|post_smooth_|)
%% \[
%% M_{2L-H2}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}.
%% \]
%% or two-sided for symmetric matrices (\verb|smooth_both_|).
\subroutine{psb\_precbld}{Builds a preconditioner}

@ -1322,7 +1322,7 @@ Returned as: an integer number.
\end{description}
\subroutine{}{Sorting utilities}
\subroutine{Sorting utilities}{}
\subroutine*{psb\_msort}{Sorting by the Merge-sort algorithm}
\subroutine*{psb\_qsort}{Sorting by the Quicksort algorithm}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save