Docs and krylov->linsolve changes

This commit is contained in:
Salvatore Filippone
2024-11-16 10:50:31 +01:00
parent ef1cc4b321
commit eefc67bbdd
19 changed files with 6466 additions and 6359 deletions
+7 -6
View File
@@ -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
View File
@@ -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;