mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
mld2p4-2:
docs/html/node18.html docs/html/node26.html docs/mld2p4-2.0-guide.pdf docs/src/userinterface.tex mlprec/impl/mld_cmlprec_bld.f90 mlprec/impl/mld_dmlprec_bld.f90 mlprec/impl/mld_smlprec_bld.f90 mlprec/impl/mld_zmlprec_bld.f90 Doc fix. Fix aggregation scheme to stop properly when no progress is being made.
This commit is contained in:
+26
-8
@@ -59,17 +59,23 @@ Subroutine mld_precset
|
|||||||
<P>
|
<P>
|
||||||
<DIV ALIGN="CENTER">
|
<DIV ALIGN="CENTER">
|
||||||
<code>mld_precset(p,what,val,info)</code>
|
<code>mld_precset(p,what,val,info)</code>
|
||||||
|
<BR><code>p%set(what,val,info [,ilev])</code>
|
||||||
<BR><code>mld_precset(p,smoother,info)</code>
|
<BR><code>mld_precset(p,smoother,info)</code>
|
||||||
|
<BR><code>p%set(smoother,info [,ilev])</code>
|
||||||
<BR><code>mld_precset(p,solver,info)</code>
|
<BR><code>mld_precset(p,solver,info)</code>
|
||||||
<BR>
|
<BR><code>p%set(solver,info [,ilev])</code>
|
||||||
|
|
||||||
</DIV>
|
</DIV>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
This routine sets the parameters defining the preconditioner. More
|
This routine sets the parameters defining the preconditioner. More
|
||||||
precisely, the parameter identified by <code>what</code> is assigned the value
|
precisely, the parameter identified by <code>what</code> is assigned the value
|
||||||
contained in <code>val</code>. The other two forms of this routine are
|
contained in <code>val</code>. The routine may also be invoked as a method
|
||||||
designed to allow extensions of the library by passing new smoothers
|
of the preconditioner object; in this case it is also possible to
|
||||||
and solvers to be employed in the preconditioner.
|
specify an optional <code>ilev</code> argument that restricts the effect of
|
||||||
|
the call to the specified level.
|
||||||
|
The alternative forms of this routine are designed to allow
|
||||||
|
extensions of the library.
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
<FONT SIZE="+1"><B>Arguments</B></FONT>
|
<FONT SIZE="+1"><B>Arguments</B></FONT>
|
||||||
@@ -150,13 +156,25 @@ default values, is given in Tables <A HREF="#tab:p_type">2</A>-<A HREF="#ta
|
|||||||
For a detailed description of the meaning of the parameters, please
|
For a detailed description of the meaning of the parameters, please
|
||||||
refer to Section <A HREF="node11.html#sec:background">4</A>.
|
refer to Section <A HREF="node11.html#sec:background">4</A>.
|
||||||
The smoother and solver objects are arranged in a hierarchical manner;
|
The smoother and solver objects are arranged in a hierarchical manner;
|
||||||
when specifying a new smoother object, its parameters including the
|
when specifying a smoother object, its parameters including the
|
||||||
contained solver are set to default values, and when a new solver
|
contained solver are set to default values, and when a solver
|
||||||
object is specified its defaults are also set, overriding in both
|
object is specified its defaults are also set, overriding in both
|
||||||
cases any previous settings even if explicitly specified. Therefore if
|
cases any previous settings even if explicitly specified. Therefore if
|
||||||
the user specifies a new smoother, and whishes to use a new solver
|
the user sets a new smoother, and wishes to use a solver
|
||||||
which is not the default one, the call to set the solver must come
|
different from the default one, the call to set the solver must come
|
||||||
<I>after</I> the call to set the smoother.
|
<I>after</I> the call to set the smoother.
|
||||||
|
Completely new smoother and/or solver class derived from the
|
||||||
|
base objects in the library may be used without recompiling the
|
||||||
|
library itself. Once the new smoother/solver class has been
|
||||||
|
developed, the user can declare a variable of that new type in the
|
||||||
|
application, and pass that variable to the <code>p%set(solver,info)</code>
|
||||||
|
call; the new solver object is then dynamically included in the
|
||||||
|
preconditioner structure.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
The <code>what,val</code> pairs described here are those of the predefined
|
||||||
|
smoother/solver objects; newly developed solvers may define new pairs
|
||||||
|
according to their needs.
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
<BR><P></P>
|
<BR><P></P>
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
|
|||||||
The command line arguments were: <BR>
|
The command line arguments were: <BR>
|
||||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||||
<P>
|
<P>
|
||||||
The translation was initiated by Salvatore Filippone on 2013-03-13
|
The translation was initiated by Salvatore Filippone on 2013-03-14
|
||||||
<BR><HR>
|
<BR><HR>
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
|
|||||||
+407
-400
File diff suppressed because it is too large
Load Diff
@@ -73,16 +73,22 @@ according to the preconditioner type chosen by the user.
|
|||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|mld_precset(p,what,val,info)|\\
|
\verb|mld_precset(p,what,val,info)|\\
|
||||||
|
\verb|p%set(what,val,info [,ilev])|\\
|
||||||
\verb|mld_precset(p,smoother,info)|\\
|
\verb|mld_precset(p,smoother,info)|\\
|
||||||
|
\verb|p%set(smoother,info [,ilev])|\\
|
||||||
\verb|mld_precset(p,solver,info)|\\
|
\verb|mld_precset(p,solver,info)|\\
|
||||||
|
\verb|p%set(solver,info [,ilev])|
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This routine sets the parameters defining the preconditioner. More
|
This routine sets the parameters defining the preconditioner. More
|
||||||
precisely, the parameter identified by \verb|what| is assigned the value
|
precisely, the parameter identified by \verb|what| is assigned the value
|
||||||
contained in \verb|val|. The other two forms of this routine are
|
contained in \verb|val|. The routine may also be invoked as a method
|
||||||
designed to allow extensions of the library by passing new smoothers
|
of the preconditioner object; in this case it is also possible to
|
||||||
and solvers to be employed in the preconditioner.
|
specify an optional \verb|ilev| argument that restricts the effect of
|
||||||
|
the call to the specified level.
|
||||||
|
The alternative forms of this routine are designed to allow
|
||||||
|
extensions of the library.
|
||||||
|
|
||||||
{\vskip2\baselineskip\noindent\large\bfseries Arguments}
|
{\vskip2\baselineskip\noindent\large\bfseries Arguments}
|
||||||
|
|
||||||
@@ -141,14 +147,26 @@ For a detailed description of the meaning of the parameters, please
|
|||||||
refer to Section~\ref{sec:background}.
|
refer to Section~\ref{sec:background}.
|
||||||
%
|
%
|
||||||
The smoother and solver objects are arranged in a hierarchical manner;
|
The smoother and solver objects are arranged in a hierarchical manner;
|
||||||
when specifying a new smoother object, its parameters including the
|
when specifying a smoother object, its parameters including the
|
||||||
contained solver are set to default values, and when a new solver
|
contained solver are set to default values, and when a solver
|
||||||
object is specified its defaults are also set, overriding in both
|
object is specified its defaults are also set, overriding in both
|
||||||
cases any previous settings even if explicitly specified. Therefore if
|
cases any previous settings even if explicitly specified. Therefore if
|
||||||
the user specifies a new smoother, and whishes to use a new solver
|
the user sets a new smoother, and wishes to use a solver
|
||||||
which is not the default one, the call to set the solver must come
|
different from the default one, the call to set the solver must come
|
||||||
\emph{after} the call to set the smoother.
|
\emph{after} the call to set the smoother.
|
||||||
%
|
%
|
||||||
|
Completely new smoother and/or solver class derived from the
|
||||||
|
base objects in the library may be used without recompiling the
|
||||||
|
library itself. Once the new smoother/solver class has been
|
||||||
|
developed, the user can declare a variable of that new type in the
|
||||||
|
application, and pass that variable to the \verb|p%set(solver,info)|
|
||||||
|
call; the new solver object is then dynamically included in the
|
||||||
|
preconditioner structure.
|
||||||
|
|
||||||
|
The \verb|what,val| pairs described here are those of the predefined
|
||||||
|
smoother/solver objects; newly developed solvers may define new pairs
|
||||||
|
according to their needs.
|
||||||
|
|
||||||
|
|
||||||
\bsideways
|
\bsideways
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|||||||
info = psb_err_internal_error_
|
info = psb_err_internal_error_
|
||||||
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
||||||
end if
|
end if
|
||||||
|
exit list_build_loop
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|||||||
info = psb_err_internal_error_
|
info = psb_err_internal_error_
|
||||||
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
||||||
end if
|
end if
|
||||||
|
exit list_build_loop
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
|
||||||
@@ -294,13 +295,13 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|||||||
if (i ==1) then
|
if (i ==1) then
|
||||||
! This is a workaround for a bug in gfortran 4.7.2
|
! This is a workaround for a bug in gfortran 4.7.2
|
||||||
call doallc(i,p%precv,base_sm,info)
|
call doallc(i,p%precv,base_sm,info)
|
||||||
!!$ allocate(p%precv(i)%sm,source=base_sm,stat=info)
|
! !$ allocate(p%precv(i)%sm,source=base_sm,stat=info)
|
||||||
else if (i < newsz) then
|
else if (i < newsz) then
|
||||||
call doallc(i,p%precv,med_sm,info)
|
call doallc(i,p%precv,med_sm,info)
|
||||||
!!$ allocate(p%precv(i)%sm,source=med_sm,stat=info)
|
! !$ allocate(p%precv(i)%sm,source=med_sm,stat=info)
|
||||||
else
|
else
|
||||||
call doallc(i,p%precv,coarse_sm,info)
|
call doallc(i,p%precv,coarse_sm,info)
|
||||||
!!$ allocate(p%precv(i)%sm,source=coarse_sm,stat=info)
|
! !$ allocate(p%precv(i)%sm,source=coarse_sm,stat=info)
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
if (info /= psb_success_) then
|
if (info /= psb_success_) then
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ subroutine mld_smlprec_bld(a,desc_a,p,info,amold,vmold)
|
|||||||
info = psb_err_internal_error_
|
info = psb_err_internal_error_
|
||||||
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
||||||
end if
|
end if
|
||||||
|
exit list_build_loop
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|||||||
info = psb_err_internal_error_
|
info = psb_err_internal_error_
|
||||||
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
call psb_errpush(info,name,a_err='Deallocate at list end'); goto 9999
|
||||||
end if
|
end if
|
||||||
|
exit list_build_loop
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user