You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amg4psblas/docs/html/node23.html

178 lines
9.1 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
<HTML>
<HEAD>
<TITLE>Method build</TITLE>
<META NAME="description" CONTENT="Method build">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2018">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node24.html">
<LINK REL="previous" HREF="node22.html">
<LINK REL="up" HREF="node18.html">
<LINK REL="next" HREF="node24.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html380"
HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html376"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html370"
HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html378"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html381"
HREF="node24.html">Method apply</A>
<B> Up:</B> <A NAME="tex2html377"
HREF="node18.html">User Interface</A>
<B> Previous:</B> <A NAME="tex2html371"
HREF="node22.html">Method smoothers_build</A>
&nbsp; <B> <A NAME="tex2html379"
HREF="node2.html">Contents</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00085000000000000000"></A><A NAME="sec:precbld"></A>
<BR>
Method build
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%build(a,desc_a,info[,amold,vmold,imold])</code>
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
This method builds the preconditioner <code>p</code> according to the requirements
made by the user through the methods <code>init</code> and <code>set</code>
(see Sections&nbsp;<A HREF="node21.html#sec:hier_bld">6.3</A> and&nbsp;<A HREF="node22.html#sec:smooth_bld">6.4</A> for
multilevel preconditioners). It is mostly provided for backward
compatibility; indeed, it is internally implemented by invoking the
two previous methods <code>hierarchy_build</code> and
<code>smoothers_build</code>, whose nomenclature would however be somewhat
unnatural when dealing with simple one-level preconditioners.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
<P></P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>a</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_</code><SPAN CLASS="textit">x</SPAN><code>spmat_type), intent(in)</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The sparse matrix structure containing the local part of the
matrix to be preconditioned. Note that <SPAN CLASS="textit">x</SPAN> must be chosen according
to the real/complex, single/double precision version of MLD2P4 under use.
See the PSBLAS User's Guide for details [<A
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>desc_a</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_desc_type), intent(in)</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
details [<A
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>info</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section&nbsp;<A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>amold</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_sparse_mat), intent(in), optional</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal matrix
components; this allows e.g. running on GPUs; it needs not be the
same on all processes. See the PSBLAS User's Guide for
details [<A
HREF="node36.html#PSBLASGUIDE">13</A>]. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>vmold</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal vector
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>imold</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_i_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal integer vector
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
</TR>
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
as follows:
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precbld(p,what,val,info[,amold,vmold,imold])</code>
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
The method can be used to build multilevel preconditioners too.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html380"
HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html376"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html370"
HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html378"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html381"
HREF="node24.html">Method apply</A>
<B> Up:</B> <A NAME="tex2html377"
HREF="node18.html">User Interface</A>
<B> Previous:</B> <A NAME="tex2html371"
HREF="node22.html">Method smoothers_build</A>
&nbsp; <B> <A NAME="tex2html379"
HREF="node2.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>