<!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 >
< 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 < A HREF = "node21.html#sec:hier_bld" > 6.3< / A > and < 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 < 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 >
< B > < A NAME = "tex2html379"
HREF="node2.html">Contents< / A > < / B > < / DIV >
<!-- End of Navigation Panel -->
< / BODY >
< / HTML >