<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 2012 (1.2) original version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>userhtml</TITLE> <META NAME="description" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META NAME="Generator" CONTENT="LaTeX2HTML v2012"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="next" HREF="node1.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html34" HREF="node1.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png"> <A NAME="tex2html32" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <BR> <B> Next:</B> <A NAME="tex2html35" HREF="node1.html">Contents</A> <B> <A NAME="tex2html33" HREF="node1.html">Contents</A></B> <BR> <BR> <!--End of Navigation Panel--> language=Fortran <P> <FONT SIZE="+2"><B>PSBLAS <BR> <BR> User's and Reference Guide</B></FONT> <BR><I><FONT SIZE="+1">A reference guide for the Parallel Sparse BLAS library</FONT></I> <BR> <BR> <BR> <BR><B>Salvatore Filippone <BR> Alfredo Buttari </B> <BR> University of Rome ``Tor Vergata'', Italy <BR> <BR> <BR> Software version: 3.4.1 <BR> June 2, 2016. <BR><HR> <!--Table of Child-Links--> <A NAME="CHILD_LINKS"></A> <UL> <LI><A NAME="tex2html36" HREF="node1.html">Contents</A> <LI><A NAME="tex2html37" HREF="node2.html">Introduction</A> <LI><A NAME="tex2html38" HREF="node3.html">General overview</A> <UL> <LI><A NAME="tex2html39" HREF="node4.html">Basic Nomenclature</A> <LI><A NAME="tex2html40" HREF="node5.html">Library contents</A> <LI><A NAME="tex2html41" HREF="node6.html">Application structure</A> <UL> <LI><A NAME="tex2html42" HREF="node7.html">User-defined index mappings</A> </UL> <LI><A NAME="tex2html43" HREF="node8.html">Programming model</A> </UL> <BR> <LI><A NAME="tex2html44" HREF="node9.html">Data Structures and Classes</A> <UL> <LI><A NAME="tex2html45" HREF="node10.html">Descriptor data structure</A> <UL> <LI><A NAME="tex2html46" HREF="node11.html">Descriptor Methods</A> <LI><A NAME="tex2html47" HREF="node12.html">get_local_rows -- Get number of local rows</A> <LI><A NAME="tex2html48" HREF="node13.html">get_local_cols -- Get number of local cols</A> <LI><A NAME="tex2html49" HREF="node14.html">get_global_rows -- Get number of global rows</A> <LI><A NAME="tex2html50" HREF="node15.html">get_global_cols -- Get number of global cols</A> <LI><A NAME="tex2html51" HREF="node16.html">get_global_indices -- Get vector of global indices</A> <LI><A NAME="tex2html52" HREF="node17.html">get_context -- Get communication context</A> <LI><A NAME="tex2html53" HREF="node18.html">Clone -- clone current object</A> <LI><A NAME="tex2html54" HREF="node19.html">psb_cd_get_large_threshold -- Get threshold for index mapping switch</A> <LI><A NAME="tex2html55" HREF="node20.html">psb_cd_set_large_threshold -- Set threshold for index mapping switch</A> <LI><A NAME="tex2html56" HREF="node21.html">Named Constants</A> </UL> <LI><A NAME="tex2html57" HREF="node22.html">Sparse Matrix class</A> <UL> <LI><A NAME="tex2html58" HREF="node23.html">Sparse Matrix Methods</A> <LI><A NAME="tex2html59" HREF="node24.html">get_nrows -- Get number of rows in a sparse matrix</A> <LI><A NAME="tex2html60" HREF="node25.html">get_ncols -- Get number of columns in a sparse matrix</A> <LI><A NAME="tex2html61" HREF="node26.html">get_nnzeros -- Get number of nonzero elements in a sparse matrix</A> <LI><A NAME="tex2html62" HREF="node27.html">get_size -- Get maximum number of nonzero elements in a sparse matrix</A> <LI><A NAME="tex2html63" HREF="node28.html">sizeof -- Get memory occupation in bytes of a sparse matrix</A> <LI><A NAME="tex2html64" HREF="node29.html">get_fmt -- Short description of the dynamic type</A> <LI><A NAME="tex2html65" HREF="node30.html">is_bld, is_upd, is_asb -- Status check</A> <LI><A NAME="tex2html66" HREF="node31.html">is_lower, is_upper, is_triangle, is_unit -- Format check</A> <LI><A NAME="tex2html67" HREF="node32.html">cscnv -- Convert to a different storage format</A> <LI><A NAME="tex2html68" HREF="node33.html">csclip -- Reduce to a submatrix</A> <LI><A NAME="tex2html69" HREF="node34.html">get_diag -- Get main diagonal</A> <LI><A NAME="tex2html70" HREF="node35.html">clip_diag -- Cut out main diagonal</A> <LI><A NAME="tex2html71" HREF="node36.html">tril -- Return the lower triangle</A> <LI><A NAME="tex2html72" HREF="node37.html">triu -- Return the upper triangle</A> <LI><A NAME="tex2html73" HREF="node38.html">psb_set_mat_default -- Set default storage format</A> <LI><A NAME="tex2html74" HREF="node39.html">clone -- Clone current object</A> <LI><A NAME="tex2html75" HREF="node40.html">Named Constants</A> </UL> <LI><A NAME="tex2html76" HREF="node41.html">Dense Vector Data Structure</A> <UL> <LI><A NAME="tex2html77" HREF="node42.html">Vector Methods</A> <LI><A NAME="tex2html78" HREF="node43.html">get_nrows -- Get number of rows in a dense vector</A> <LI><A NAME="tex2html79" HREF="node44.html">sizeof -- Get memory occupation in bytes of a dense vector</A> <LI><A NAME="tex2html80" HREF="node45.html">get_vect -- Get a copy of the vector contents</A> <LI><A NAME="tex2html81" HREF="node46.html">clone -- Clone current object</A> </UL> <LI><A NAME="tex2html82" HREF="node47.html">Preconditioner data structure</A> <LI><A NAME="tex2html83" HREF="node48.html">Heap data structure</A> </UL> <BR> <LI><A NAME="tex2html84" HREF="node49.html">Computational routines</A> <UL> <LI><A NAME="tex2html85" HREF="node50.html">psb_geaxpby -- General Dense Matrix Sum</A> <LI><A NAME="tex2html86" HREF="node51.html">psb_gedot -- Dot Product</A> <LI><A NAME="tex2html87" HREF="node52.html">psb_gedots -- Generalized Dot Product</A> <LI><A NAME="tex2html88" HREF="node53.html">psb_normi -- Infinity-Norm of Vector</A> <LI><A NAME="tex2html89" HREF="node54.html">psb_geamaxs -- Generalized Infinity Norm</A> <LI><A NAME="tex2html90" HREF="node55.html">psb_norm1 -- 1-Norm of Vector</A> <LI><A NAME="tex2html91" HREF="node56.html">psb_geasums -- Generalized 1-Norm of Vector</A> <LI><A NAME="tex2html92" HREF="node57.html">psb_norm2 -- 2-Norm of Vector</A> <LI><A NAME="tex2html93" HREF="node58.html">psb_genrm2s -- Generalized 2-Norm of Vector</A> <LI><A NAME="tex2html94" HREF="node59.html">psb_norm1 -- 1-Norm of Sparse Matrix</A> <LI><A NAME="tex2html95" HREF="node60.html">psb_normi -- Infinity Norm of Sparse Matrix</A> <LI><A NAME="tex2html96" HREF="node61.html">psb_spmm -- Sparse Matrix by Dense Matrix Product</A> <LI><A NAME="tex2html97" HREF="node62.html">psb_spsm -- Triangular System Solve</A> </UL> <BR> <LI><A NAME="tex2html98" HREF="node63.html">Communication routines</A> <UL> <LI><A NAME="tex2html99" HREF="node64.html">psb_halo -- Halo Data Communication</A> <LI><A NAME="tex2html100" HREF="node65.html">psb_ovrl -- Overlap Update</A> <LI><A NAME="tex2html101" HREF="node66.html">psb_gather -- Gather Global Dense Matrix</A> <LI><A NAME="tex2html102" HREF="node67.html">psb_scatter -- Scatter Global Dense Matrix</A> </UL> <BR> <LI><A NAME="tex2html103" HREF="node68.html">Data management routines</A> <UL> <LI><A NAME="tex2html104" HREF="node69.html">psb_cdall -- Allocates a communication descriptor</A> <LI><A NAME="tex2html105" HREF="node70.html">psb_cdins -- Communication descriptor insert routine</A> <LI><A NAME="tex2html106" HREF="node71.html">psb_cdasb -- Communication descriptor assembly routine</A> <LI><A NAME="tex2html107" HREF="node72.html">psb_cdcpy -- Copies a communication descriptor</A> <LI><A NAME="tex2html108" HREF="node73.html">psb_cdfree -- Frees a communication descriptor</A> <LI><A NAME="tex2html109" HREF="node74.html">psb_cdbldext -- Build an extended communication descriptor</A> <LI><A NAME="tex2html110" HREF="node75.html">psb_spall -- Allocates a sparse matrix</A> <LI><A NAME="tex2html111" HREF="node76.html">psb_spins -- Insert a cloud of elements into a sparse matrix</A> <LI><A NAME="tex2html112" HREF="node77.html">psb_spasb -- Sparse matrix assembly routine</A> <LI><A NAME="tex2html113" HREF="node78.html">psb_spfree -- Frees a sparse matrix</A> <LI><A NAME="tex2html114" HREF="node79.html">psb_sprn -- Reinit sparse matrix structure for psblas routines.</A> <LI><A NAME="tex2html115" HREF="node80.html">psb_geall -- Allocates a dense matrix</A> <LI><A NAME="tex2html116" HREF="node81.html">psb_geins -- Dense matrix insertion routine</A> <LI><A NAME="tex2html117" HREF="node82.html">psb_geasb -- Assembly a dense matrix</A> <LI><A NAME="tex2html118" HREF="node83.html">psb_gefree -- Frees a dense matrix</A> <LI><A NAME="tex2html119" HREF="node84.html">psb_gelp -- Applies a left permutation to a dense matrix</A> <LI><A NAME="tex2html120" HREF="node85.html">psb_glob_to_loc -- Global to local indices convertion</A> <LI><A NAME="tex2html121" HREF="node86.html">psb_loc_to_glob -- Local to global indices conversion</A> <LI><A NAME="tex2html122" HREF="node87.html">psb_is_owned -- </A> <LI><A NAME="tex2html123" HREF="node88.html">psb_owned_index -- </A> <LI><A NAME="tex2html124" HREF="node89.html">psb_is_local -- </A> <LI><A NAME="tex2html125" HREF="node90.html">psb_local_index -- </A> <LI><A NAME="tex2html126" HREF="node91.html">psb_get_boundary -- Extract list of boundary elements</A> <LI><A NAME="tex2html127" HREF="node92.html">psb_get_overlap -- Extract list of overlap elements</A> <LI><A NAME="tex2html128" HREF="node93.html">psb_sp_getrow -- Extract row(s) from a sparse matrix</A> <LI><A NAME="tex2html129" HREF="node94.html">psb_sizeof -- Memory occupation</A> <LI><A NAME="tex2html130" HREF="node95.html">Sorting utilities -- </A> </UL> <BR> <LI><A NAME="tex2html131" HREF="node96.html">Parallel environment routines</A> <UL> <LI><A NAME="tex2html132" HREF="node97.html">psb_init -- Initializes PSBLAS parallel environment</A> <LI><A NAME="tex2html133" HREF="node98.html">psb_info -- Return information about PSBLAS parallel environment</A> <LI><A NAME="tex2html134" HREF="node99.html">psb_exit -- Exit from PSBLAS parallel environment</A> <LI><A NAME="tex2html135" HREF="node100.html">psb_get_mpicomm -- Get the MPI communicator</A> <LI><A NAME="tex2html136" HREF="node101.html">psb_get_rank -- Get the MPI rank</A> <LI><A NAME="tex2html137" HREF="node102.html">psb_wtime -- Wall clock timing</A> <LI><A NAME="tex2html138" HREF="node103.html">psb_barrier -- Sinchronization point parallel environment</A> <LI><A NAME="tex2html139" HREF="node104.html">psb_abort -- Abort a computation</A> <LI><A NAME="tex2html140" HREF="node105.html">psb_bcast -- Broadcast data</A> <LI><A NAME="tex2html141" HREF="node106.html">psb_sum -- Global sum</A> <LI><A NAME="tex2html142" HREF="node107.html">psb_max -- Global maximum</A> <LI><A NAME="tex2html143" HREF="node108.html">psb_min -- Global minimum</A> <LI><A NAME="tex2html144" HREF="node109.html">psb_amx -- Global maximum absolute value</A> <LI><A NAME="tex2html145" HREF="node110.html">psb_amn -- Global minimum absolute value</A> <LI><A NAME="tex2html146" HREF="node111.html">psb_snd -- Send data</A> <LI><A NAME="tex2html147" HREF="node112.html">psb_rcv -- Receive data</A> </UL> <BR> <LI><A NAME="tex2html148" HREF="node113.html">Error handling</A> <LI><A NAME="tex2html149" HREF="node114.html">Utilities</A> <UL> <LI><A NAME="tex2html150" HREF="node115.html">hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format</A> <LI><A NAME="tex2html151" HREF="node116.html">hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format</A> <LI><A NAME="tex2html152" HREF="node117.html">mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format</A> <LI><A NAME="tex2html153" HREF="node118.html">mm_array_read -- Read a dense array from a file in the MatrixMarket format</A> <LI><A NAME="tex2html154" HREF="node119.html">mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format</A> <LI><A NAME="tex2html155" HREF="node120.html">mm_array_write -- Write a dense array from a file in the MatrixMarket format</A> </UL> <BR> <LI><A NAME="tex2html156" HREF="node121.html">Preconditioner routines</A> <UL> <LI><A NAME="tex2html157" HREF="node122.html">psb_precinit -- Initialize a preconditioner</A> <LI><A NAME="tex2html158" HREF="node123.html">psb_precbld -- Builds a preconditioner</A> <LI><A NAME="tex2html159" HREF="node124.html">psb_precaply -- Preconditioner application routine</A> <LI><A NAME="tex2html160" HREF="node125.html">psb_precdescr -- Prints a description of current preconditioner</A> <LI><A NAME="tex2html161" HREF="node126.html">clone -- clone current preconditioner</A> </UL> <BR> <LI><A NAME="tex2html162" HREF="node127.html">Iterative Methods</A> <UL> <LI><A NAME="tex2html163" HREF="node128.html">psb_krylov -- Krylov Methods Driver Routine</A> </UL> <BR> <LI><A NAME="tex2html164" HREF="node129.html">Bibliography</A> <LI><A NAME="tex2html165" HREF="node130.html">About this document ...</A> </UL> <!--End of Table of Child-Links--> <BR><HR> </BODY> </HTML>