mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-19 12:22:10 +00:00
Docs and krylov->linsolve changes
This commit is contained in:
@@ -1317,13 +1317,14 @@ like Diagonal Scaling or Block Jacobi with incomplete
|
||||
factorization ILU(0).
|
||||
|
||||
A preconditioner is held in the \hypertarget{precdata}{{\tt
|
||||
psb\_prec\_type}} data structure reported in
|
||||
figure~\ref{fig:prectype}. The \fortinline|psb_prec_type|
|
||||
psb\_Tprec\_type}} data structure reported in
|
||||
figure~\ref{fig:prectype}. The \fortinline|psb_Tprec_type|
|
||||
data type may contain a simple preconditioning matrix with the
|
||||
associated communication descriptor.%% which may be different than the
|
||||
associated communication descriptor.
|
||||
%% which may be different from the
|
||||
%% system communication descriptor in the case of parallel
|
||||
%% preconditioners like the Additive Schwarz one. Then the
|
||||
%% \fortinline|psb_prec_type| may contain more than one preconditioning matrix
|
||||
%% \fortinline|psb_Tprec_type| may contain more than one preconditioning matrix
|
||||
%% like in the case of Two-Level (in general Multi-Level) preconditioners.
|
||||
%% The user can choose the type of preconditioner to be used by means of
|
||||
%% the \fortinline|psb_precset| subroutine; once the type of preconditioning
|
||||
@@ -1407,8 +1408,8 @@ Given a heap object, the following methods are defined on it:
|
||||
\item[dump] Print on file;
|
||||
\item[free] Release memory.
|
||||
\end{description}
|
||||
These objects are used in AMG4PSBLAS to implement the factorization
|
||||
algorithms.
|
||||
These objects are used to implement the factorization
|
||||
and approximate inversion algorithms.
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
|
||||
+22
-19
@@ -344,24 +344,25 @@ A simple application structure will walk through the index space
|
||||
allocation, matrix/vector creation and linear system solution as
|
||||
follows:
|
||||
\begin{enumerate}
|
||||
\item Initialize parallel environment with \verb|psb_init|
|
||||
\item Initialize index space with \verb|psb_cdall|
|
||||
\item Initialize parallel environment with \verb|psb_init|;
|
||||
\item Initialize index space with \verb|psb_cdall|;
|
||||
\item Allocate sparse matrix and dense vectors with \verb|psb_spall|
|
||||
and \verb|psb_geall|
|
||||
and \verb|psb_geall|;
|
||||
\item Loop over all local rows, generate matrix and vector entries,
|
||||
and insert them with \verb|psb_spins| and \verb|psb_geins|
|
||||
\item Assemble the various entities:
|
||||
\begin{enumerate}
|
||||
\item \verb|psb_cdasb|
|
||||
\item \verb|psb_spasb|
|
||||
\item \verb|psb_geasb|
|
||||
\item \verb|psb_cdasb|,
|
||||
\item \verb|psb_spasb|,
|
||||
\item \verb|psb_geasb|;
|
||||
\end{enumerate}
|
||||
\item Choose the preconditioner to be used with \verb|prec%init| and
|
||||
\verb|prec%set|, and
|
||||
build it with \verb|prec%build|\footnote{The subroutine style {\tt
|
||||
psb\_precinit} and {\tt psb\_precbl} are still supported for
|
||||
backward compatibility}.
|
||||
\item Call the iterative driver \verb|psb_krylov| with the method of
|
||||
choice, e.g. \verb|bicgstab|.
|
||||
psb\_precinit} and {\tt psb\_precbld} are still supported for
|
||||
backward compatibility};
|
||||
\item Call one of the iterative drivers with the method of
|
||||
choice, e.g. \verb|psb_krylov| with \verb|bicgstab|.
|
||||
\end{enumerate}
|
||||
This is the structure of the sample programs in the directory
|
||||
\verb|test/pargen/|.
|
||||
@@ -372,21 +373,23 @@ multiple time steps, the following structure may be more appropriate:
|
||||
\item Initialize parallel environment with \verb|psb_init|
|
||||
\item Initialize index space with \verb|psb_cdall|
|
||||
\item Loop over the topology of the discretization mesh and build the
|
||||
descriptor with \verb|psb_cdins|
|
||||
\item Assemble the descriptor with \verb|psb_cdasb|
|
||||
\item Allocate the sparse matrices and dense vectors with
|
||||
\verb|psb_spall| and \verb|psb_geall|
|
||||
descriptor with \verb|psb_cdins|;
|
||||
\item Assemble the descriptor with \verb|psb_cdasb|;
|
||||
\item Allocate the sparse matrices and dense vectors with;
|
||||
\verb|psb_spall| and \verb|psb_geall|;
|
||||
\item Loop over the time steps:
|
||||
\begin{enumerate}
|
||||
\item If after first time step,
|
||||
reinitialize the sparse matrix with \verb|psb_sprn|; also zero out
|
||||
the dense vectors;
|
||||
\item Loop over the mesh, generate the coefficients and insert/update
|
||||
them with \verb|psb_spins| and \verb|psb_geins|
|
||||
\item Assemble with \verb|psb_spasb| and \verb|psb_geasb|
|
||||
\item Choose and build preconditioner with \verb|prec%init| and
|
||||
\verb|prec%build|
|
||||
\item Call the iterative method of choice, e.g. \verb|psb_bicgstab|
|
||||
them with \verb|psb_spins| and \verb|psb_geins|;
|
||||
\item Assemble with \verb|psb_spasb| and \verb|psb_geasb|;
|
||||
\item \item Choose the preconditioner to be used with \verb|prec%init| and
|
||||
\verb|prec%set|, and
|
||||
build it with \verb|prec%build|;
|
||||
\item Call one of the iterative drivers with the method of
|
||||
choice, e.g. \verb|psb_krylov| with \verb|bicgstab|.
|
||||
\end{enumerate}
|
||||
\end{enumerate}
|
||||
The insertion routines will be called as many times as needed;
|
||||
|
||||
Reference in New Issue
Block a user