< !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
< html >
< head > < title > Method apply< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" >
< meta name = "generator" content = "TeX4ht (https://tug.org/tex4ht/)" >
< meta name = "originator" content = "TeX4ht (https://tug.org/tex4ht/)" >
<!-- html,3 -->
< meta name = "src" content = "userhtml.tex" >
< link rel = "stylesheet" type = "text/css" href = "userhtml.css" >
< / head > < body
>
<!-- l. 837 --> < div class = "crosslinks" > < p class = "noindent" > < span
class="cmr-12">[< / span > < a
href="userhtmlsu14.html" >< span
class="cmr-12">next< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlsu12.html" >< span
class="cmr-12">prev< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlsu12.html#tailuserhtmlsu12.html" >< span
class="cmr-12">prev-tail< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="#tailuserhtmlsu13.html">< span
class="cmr-12">tail< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlse5.html#userhtmlsu13.html" >< span
class="cmr-12">up< / span > < / a > < span
class="cmr-12">] < / span > < / p > < / div >
< h4 class = "subsectionHead" > < span class = "titlemark" > < span
class="cmr-12">5.6 < / span > < / span > < a
id="x23-220005.6">< / a > < span
class="cmr-12">Method apply< / span > < / h4 >
< div class = "center"
>
<!-- l. 839 --> < p class = "noindent" >
<!-- l. 840 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > call< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > p< / span > < span style = "color:#000000" > %< / span > < span style = "color:#000000" > apply< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > x< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > y< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > desc_a< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > info< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > [,< / span > < span style = "color:#000000" > trans< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > work< / span > < span style = "color:#000000" > ])< / span > < / code > < br / >
< / div >
<!-- l. 843 --> < p class = "noindent" > < span
class="cmr-12">This method computes < / span > < span
class="cmmi-12">y < / span > < span
class="cmr-12">= < / span > < span
class="cmmi-12">op< / span > < span
class="cmr-12">(< / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">) < / span > < span
class="cmmi-12">x< / span > < span
class="cmr-12">, where < / span > < span
class="cmmi-12">B < / span > < span
class="cmr-12">is a previously built preconditioner,< / span >
< span
class="cmr-12">stored into < / span > < code class = "lstinline" > < span style = "color:#000000" > p< / span > < / code > < span
class="cmr-12">, and < / span > < span
class="cmmi-12">op < / span > < span
class="cmr-12">denotes the preconditioner itself or its transpose, according to the< / span >
< span
class="cmr-12">value of < / span > < code class = "lstinline" > < span style = "color:#000000" > trans< / span > < / code > < span
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from< / span >
< span
class="cmr-12">PSBLAS, < / span > < code class = "lstinline" > < span style = "color:#000000" > p< / span > < span style = "color:#000000" > %< / span > < span style = "color:#000000" > apply< / span > < / code > < span
class="cmr-12">is called within the PSBLAS method < / span > < code class = "lstinline" > < span style = "color:#000000" > psb_krylov< / span > < / code > < span
class="cmr-12">and hence it is< / span >
< span
class="cmr-12">completely transparent to the user.< / span >
<!-- l. 852 --> < p class = "noindent" > < span
class="cmbx-12">Arguments< / span >
< div class = "tabular" > < table id = "TBL-15" class = "tabular"
>< colgroup id = "TBL-15-1g" > < col
id="TBL-15-1">< col
id="TBL-15-2">< / colgroup > < tr
style="vertical-align:baseline;" id="TBL-15-1-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-1-1"
class="td11"> <!-- l. 855 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > x< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-1-2"
class="td11"> <!-- l. 855 --> < p class = "noindent" > < span
class="cmti-12">type< / span > < code class = "lstinline" > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > kind_parameter< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">, dimension(:), intent(in)— .< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-2-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-2-1"
class="td11"> <!-- l. 856 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-2-2"
class="td11"> <!-- l. 856 --> < p class = "noindent" > < span
class="cmr-12">The local part of the vector < / span > < span
class="cmmi-12">x< / span > < span
class="cmr-12">. Note that < / span > < span
class="cmti-12">type < / span > < span
class="cmr-12">and < / span > < span
class="cmti-12">kind< / span > < span
class="cmti-12">_parameter< / span >
< span
class="cmr-12">must be chosen according to the < / span > < code class = "lstinline" > < span style = "color:#000000" > real< / span > < / code > < span
class="cmr-12">/< / span > < code class = "lstinline" > < span style = "color:#000000" > complex< / span > < / code > < span
class="cmr-12">, single/double< / span >
< span
class="cmr-12">precision version of AMG4PSBLAS under use.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-3-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-3-1"
class="td11"> <!-- l. 859 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > y< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-3-2"
class="td11"> <!-- l. 859 --> < p class = "noindent" > < span
class="cmti-12">type< / span > < code class = "lstinline" > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > kind_parameter< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">, dimension(:), intent(out)— .< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-4-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-4-1"
class="td11"> <!-- l. 860 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-4-2"
class="td11"> <!-- l. 860 --> < p class = "noindent" > < span
class="cmr-12">The local part of the vector < / span > < span
class="cmmi-12">y< / span > < span
class="cmr-12">. Note that < / span > < span
class="cmti-12">type < / span > < span
class="cmr-12">and < / span > < span
class="cmti-12">kind< / span > < span
class="cmti-12">_parameter< / span >
< span
class="cmr-12">must be chosen according to the < / span > < code class = "lstinline" > < span style = "color:#000000" > real< / span > < / code > < span
class="cmr-12">/< / span > < code class = "lstinline" > < span style = "color:#000000" > complex< / span > < / code > < span
class="cmr-12">, single/double< / span >
< span
class="cmr-12">precision version of AMG4PSBLAS under use.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-5-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-5-1"
class="td11"> <!-- l. 863 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > desc_a< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-5-2"
class="td11"> <!-- l. 863 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > type< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > psb_desc_type< / span > < span style = "color:#000000" > ),< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > intent< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > in< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-6-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-6-1"
class="td11"> <!-- l. 864 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-6-2"
class="td11"> <!-- l. 864 --> < p class = "noindent" > < span
class="cmr-12">The communication descriptor associated to the matrix to be< / span >
< span
class="cmr-12">preconditioned.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-7-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-7-1"
class="td11"> <!-- l. 866 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > info< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-7-2"
class="td11"> <!-- l. 866 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > integer< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > intent< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > out< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-8-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-8-1"
class="td11"> <!-- l. 867 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-8-2"
class="td11"> <!-- l. 867 --> < p class = "noindent" > < span
class="cmr-12">Error code. If no error, 0 is returned. See Section< / span > < span
class="cmr-12">  < / span > < a
href="userhtmlse7.html#x28-320007">< span
class="cmr-12">7< / span > <!-- tex4ht:ref: sec:errors --> < / a > < span
class="cmr-12">for details.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-9-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-9-1"
class="td11"> <!-- l. 868 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > trans< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-9-2"
class="td11"> <!-- l. 868 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > character< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > len< / span > < span style = "color:#000000" > =1),< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > optional< / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > intent< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > in< / span > < span style = "color:#000000" > ).< / span > < / code > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-10-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-10-1"
class="td11"> <!-- l. 869 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-10-2"
class="td11"> <!-- l. 869 --> < p class = "noindent" > < span
class="cmr-12">If < / span > < code class = "lstinline" > < span style = "color:#000000" > trans< / span > < / code > < span
class="cmr-12">= < / span > < code class = "lstinline" > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > N< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > n< / span > < span style = "color:#000000" > ’ < / span > < / code > < span
class="cmr-12">then < / span > < span
class="cmmi-12">op< / span > < span
class="cmr-12">(< / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">) = < / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">; if < / span > < code class = "lstinline" > < span style = "color:#000000" > trans< / span > < / code > < span
class="cmr-12">= < / span > < code class = "lstinline" > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > T< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > t< / span > < span style = "color:#000000" > ’ < / span > < / code >
< span
class="cmr-12">then < / span > < span
class="cmmi-12">op< / span > < span
class="cmr-12">(< / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">) = < / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmmi-8">T< / span > < / sup > < span
class="cmr-12">(transpose of < / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">); if < / span > < code class = "lstinline" > < span style = "color:#000000" > trans< / span > < / code > < span
class="cmr-12">= < / span > < code class = "lstinline" > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > C< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > ,< / span > < span style = "color:#000000" > ’ < / span > < span style = "color:#000000" > c< / span > < span style = "color:#000000" > ’ < / span > < / code > < span
class="cmr-12">then< / span >
< span
class="cmmi-12">op< / span > < span
class="cmr-12">(< / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">) = < / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmmi-8">C< / span > < / sup > < span
class="cmr-12">(conjugate transpose of < / span > < span
class="cmmi-12">B< / span > < sup > < span
class="cmsy-8">-< / span > < span
class="cmr-8">1< / span > < / sup > < span
class="cmr-12">).< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-11-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-11-1"
class="td11"> <!-- l. 873 --> < p class = "noindent" > < code class = "lstinline" > < span style = "color:#000000" > work< / span > < / code > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-11-2"
class="td11"> <!-- l. 873 --> < p class = "noindent" > < span
class="cmti-12">type< / span > < code class = "lstinline" > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > kind_parameter< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">, dimension(:), optional, target— .< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-12-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-12-1"
class="td11"> <!-- l. 874 --> < p class = "noindent" > < / td > < td style = "white-space:normal; text-align:left;" id = "TBL-15-12-2"
class="td11"> <!-- l. 874 --> < p class = "noindent" > < span
class="cmr-12">Workspace. Its size should be at least < / span > < code class = "lstinline" > < span style = "color:#000000" > 4< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > *< / span > < span style = "color:#000000" > < / span > < span style = "color:#000000" > psb_cd_get_local_< / span > < / code >
< code class = "lstinline" > < span style = "color:#000000" > cols< / span > < span style = "color:#000000" > (< / span > < span style = "color:#000000" > desc_a< / span > < span style = "color:#000000" > )< / span > < / code > < span
class="cmr-12">(see the PSBLAS User’ s Guide). Note that < / span > < span
class="cmti-12">type < / span > < span
class="cmr-12">and< / span >
< span
class="cmti-12">kind< / span > < span
class="cmti-12">_parameter < / span > < span
class="cmr-12">must be chosen according to the < / span > < code class = "lstinline" > < span style = "color:#000000" > real< / span > < / code > < span
class="cmr-12">/< / span > < code class = "lstinline" > < span style = "color:#000000" > complex< / span > < / code > < span
class="cmr-12">,< / span >
< span
class="cmr-12">single/double precision version of AMG4PSBLAS under use.< / span > < / td >
< / tr > < tr
style="vertical-align:baseline;" id="TBL-15-13-">< td style = "white-space:normal; text-align:left;" id = "TBL-15-13-1"
class="td11"> < / td > < / tr > < / table > < / div >
<!-- l. 883 --> < div class = "crosslinks" > < p class = "noindent" > < span
class="cmr-12">[< / span > < a
href="userhtmlsu14.html" >< span
class="cmr-12">next< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlsu12.html" >< span
class="cmr-12">prev< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlsu12.html#tailuserhtmlsu12.html" >< span
class="cmr-12">prev-tail< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlsu13.html" >< span
class="cmr-12">front< / span > < / a > < span
class="cmr-12">] [< / span > < a
href="userhtmlse5.html#userhtmlsu13.html" >< span
class="cmr-12">up< / span > < / a > < span
class="cmr-12">] < / span > < / p > < / div >
<!-- l. 883 --> < p class = "indent" > < a
id="tailuserhtmlsu13.html">< / a >
< / body > < / html >