Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Spilu details
Login with GitLab

Spilu

Incomplete LU factorizations
(3176 downloads for this version - 21827 downloads for all versions)
Details
Version
0.1
A more recent valid version with binaries for Scilab 5.3 exists: 0.1.1
Authors
Michael Baudin
Benoit Goepfert
Aladin Group
Youcef Saad
Owner Organization
DIGITEO, NII, INRIA, Univ. of Tennessee and Oak Ridge National Laboratory
Maintainers
Antoine ELIAS
Michael BAUDIN
Category
License
Dependencies
Creation Date
November 14, 2011
Source created on
Scilab 5.3.x
Binaries available on
Scilab 5.3.x:
Linux 32-bit Windows 32-bit Windows 64-bit macOS Linux 64-bit
Install command
--> atomsInstall("spilu")
Description
            Spilu is a Scilab toolbox which provides preconditioners based on Incomplete LU
(ILU) factorizations.
This module is based on a set of Fortran routines from the Sparskit 
module by Yousef Saaf. 
More specifically, this module provides some of the preconditioners 
from the ITSOL sub-module of Sparskit. 

The preconditioners which are provided in this toolbox may be used
in preconditioned iterative algorithms for solving sparse linear systems
of equations.
According to Y. Saad, "roughly speaking, a preconditioner is any form of
implicit or explicit modification of
an original linear system which makes it easier to solve by a given iterative
method."
Examples of preconditioned iterative algorithms are the Generalized Minimum
Residual Method (GMRES)
or the Preconditioned Conjugate Gradient (PCG).
Hence, the Spilu toolbox is the companion of the Imsls toolbox, which
provides these iterative methods.


Features
--------

 * spilu_ilut: Incomplete LU factorization with dual Truncation strategy
 * spilu_ilutp: ilut with column Pivoting
 * spilu_ilud: ILU with single dropping and diagonal compensation
 * spilu_iludp: ILUD with column Pivoting
 * spilu_iluk: level-k ILU
 * spilu_ilu0: simple ILU(0) preconditioning
 * spilu_milu0: MILU(0) preconditioning
 
Support

 * spilu_getpath — Returns the path to the current module.
 * spilu_ilu0M — ILU(0) preconditioning (macro).
 * spilu_ilukM — ILU preconditioning with level of fill-in of k (macro).
 * spilu_permVecToMat — Convert a permutation vector into matrix.

Benchmark

 * spilu_iluhub — A generic hub for various incomplete LU algorithms.
 * spilu_iluhubavail — Returns the available algorithms.
 * spilu_iluhubparname — Returns the name of a ILU parameter, given the
index.
 
Graphics

 * spilu_iludplot — Plots the sensitivity of ILUD for A.
 * spilu_iludpplot — Plots the sensitivity of ILUDP for A.
 * spilu_ilukplot — Plots the sensitivity of ILUK for A.
 * spilu_ilutplot — Plots the sensitivity of ILUT for A.
 * spilu_ilutpplot — Plots the sensitivity of ILUT for A.
 * spilu_plotparameter — Plots the sensitivity of a decomposition algorithm.
            
Files (6)
[236.16 kB]
Source code archive

[252.12 kB]
Linux 32-bit binary for Scilab 5.3.x
Linux 32-bit
Automatically generated by the ATOMS compilation chain

[387.73 kB]
Windows 32-bit binary for Scilab 5.3.x
Windows 32-bit
Automatically generated by the ATOMS compilation chain

[399.43 kB]
Windows 64-bit binary for Scilab 5.3.x
Windows 64-bit
Automatically generated by the ATOMS compilation chain

[232.80 kB]
macOS binary for Scilab 5.3.x
MacOSX version
Automatically generated by the ATOMS compilation chain

[240.30 kB]
Linux 64-bit binary for Scilab 5.3.x
Linux 64-bit
Automatically generated by the ATOMS compilation chain

News (0)
Comments (3)     Leave a comment 
Comment -- November 14, 2011, 04:48:12 PM    
The v0.1 of the spilu module is correctly packaged on Windows 32 bits.
Here is the log of a test with Scilab 5.3.2 on Windows Vista 32 bits.

-->atomsInstall('spilu')
 ans  =
!spilu         0.1-1  allusers  SCI\contrib\spilu\0.1-1         I  !
!                                                                  !
!imsls         0.1-2  allusers  SCI\contrib\imsls\0.1-2         A  !
!                                                                  !
!assert        1.3-1  allusers  SCI\contrib\assert\1.3-1        A  !
!                                                                  !
!apifun        0.3-1  allusers  SCI\contrib\apifun\0.3-1        A  !
!                                                                  !
!MatrixMarket  1.4-1  allusers  SCI\contrib\MatrixMarket\1.4-1  A  !
-->atomsLoad('spilu');
Start spilu
	Load macros
	Load gateways
	Load help
	Load demos
	Type "help spilu_overview" for quick start.
	Type "demo_gui()" and search for "spilu" for Demonstrations.
[...]
-->atomsTest('spilu')
   TMPDIR = C:\Users\baudin\AppData\Local\Temp\SCI_TMP_4844_
   001/022 - [SCI\contrib\spilu\0.1-1] ilu0........................passed 
   002/022 - [SCI\contrib\spilu\0.1-1] ilu0M.......................passed 
   003/022 - [SCI\contrib\spilu\0.1-1] ilud........................passed 
   004/022 - [SCI\contrib\spilu\0.1-1] iludp.......................passed 
   005/022 - [SCI\contrib\spilu\0.1-1] iludplot....................passed 
   006/022 - [SCI\contrib\spilu\0.1-1] iludpplot...................passed 
   007/022 - [SCI\contrib\spilu\0.1-1] iluhub......................passed 
   008/022 - [SCI\contrib\spilu\0.1-1] iluhubavail.................passed 
   009/022 - [SCI\contrib\spilu\0.1-1] iluhubparname...............passed 
   010/022 - [SCI\contrib\spilu\0.1-1] iluk........................passed
   011/022 - [SCI\contrib\spilu\0.1-1] ilukM.......................passed 
   012/022 - [SCI\contrib\spilu\0.1-1] ilukplot....................passed
   013/022 - [SCI\contrib\spilu\0.1-1] ilut........................passed 
   014/022 - [SCI\contrib\spilu\0.1-1] ilutp.......................passed 
   015/022 - [SCI\contrib\spilu\0.1-1] ilutplot....................passed
   016/022 - [SCI\contrib\spilu\0.1-1] ilutpplot...................passed 
   017/022 - [SCI\contrib\spilu\0.1-1] milu0.......................passed 
   018/022 - [SCI\contrib\spilu\0.1-1] plotparameter...............passed 
   019/022 - [SCI\contrib\spilu\0.1-1] random_tests................passed 
   020/022 - [SCI\contrib\spilu\0.1-1] bug_445.....................passed 
   021/022 - [SCI\contrib\spilu\0.1-1] bug_493.....................passed 
   022/022 - [SCI\contrib\spilu\0.1-1] bug_570.....................passed 

Regards,

Michaël Baudin
Comment -- November 14, 2011, 04:49:46 PM    
Here is a simplified changelog of the v0.1 of the spilu module.


version (v0.1)
    * Update for Scilab 5.
    * Created spilu_getpath.
    * Fixed bugs in the help pages.
    * Added comments to permVecToMat.
    * Renamed permVecToMat to spilu_permVecToMat.
    * Added returns after calls to Scierror in the gateway.
    * Added a test for error cases of spilu_ilu0.
    * Added export header in conv.h.
    * Added spilu_ilu0M function for comparison.
    * Fixed bug #493: spilu_ilu0 failed on Windows.
      The free of the ia array is in the gateway's dll.
      Therefore, the malloc of the ia array must also be 
      in the gateway's dll.
    * Fixed bug #535: The spilu_ilu0 function did not 
      produce the correct (L,U) pair.
      The problem was an unconsistent declaration of tl in ilu0, which 
      is a double and not an integer.
      The problem was created by the commit 81, which 
      removed implicit declarations.
    * Removed "real*8" declarations in the Fortran, used 
      "double precision" instead.
      Removed implicit declarations in the Fortran.
    * Refactoring of the gateways.
    * Any optional argument equal to the empty matrix [] is 
      replaced by its default value.
    * Filled example for iluk.
    * Fixed bug (crash) in iluk, when elts parameter is too small.
      The error is "not enough memory".
    * Created spilu_decomprand, spilu_iludplot, 
      spilu_plotparameter, spilu_spspdrand to make testing easier.
    * Created spilu_spluget to manage internal matrix format.
    * Fixed bug #570.
      ilud and iludp sometimes produced "not enough memory".
    * Created iludpplot for ILUDP.
    * Created bandwidthsum to clarify elts parameter of spilu_iluk.
    * Created ilukM to compare with iluk.
    * Created an overview for the toolbox.
    * Removed the elts parameter of spilu_iluk for simplicity
      and uniformity.
    * Fixed bug #445: 
      ilu0 crash when a zero pivot is encountered
      The ju array was uninitialized in ilu0 and milu0.
    * Created iluhub, iluhubavail and iluhubparname for benchmarks.
    * Created RILUT demo, adapted from Sparskit.
    * Created PDE225 demo, to see the effect of preconditionning 
      on GMRES.
    * Created West0479 demo, to see the effect of drop parameter 
      on ILUTP.

Regards,

Michaël Baudin
Comment -- November 14, 2011, 04:56:13 PM    
The v0.1 of the spilu module is correctly packaged on Linux 32 bits and on Linux 64 bits.

Regards,

Michaël Baudin
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.