Ilu function

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Ilu function

Giovanni Matteo Fumarola
Dear all,
I'm working on an university project about the ILU function. I've developed every aspect of this function 
(except MILU, I'm reading some theoretical things to implement it ). 
I've changed something from some pubblications, that I've found in the web, 
because it didn't match with Matlab documentation (it's very ambiguous). 
After a lot of tests with different sparse (and full) matrices (I've downloaded it from the collection offered by University of Florida) 
my results are very close to the results of matlab.
I've implemented it in matlab code. For this reason the esecution time of a matrix of order 250 is about 1,5 sec. 
When I will complete it, I'll try to translate my code in C to obtain a good performances.
I've attached the .tar.gz file that contains all the functions. 
I hope you can give me some suggestions and let me know if there are any problems or errors.

Best Regard
Fumarola Giovanni
PS: Happy New Year to all maintainers. 

ilu.tar.gz (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Ilu function

Jordi Gutiérrez Hermoso-2
On 7 January 2013 14:40, Giovanni Matteo Fumarola
<[hidden email]> wrote:
> I'm working on an university project about the ILU function. I've developed
> every aspect of this function

Are you hoping to include this function in core Octave? If so, can you
please write it in Octave style instead of Matlab style? Read some
Octave source code to see examples of this style. Also consult this:

    https://www.gnu.org/software/octave/doc/interpreter/Octave-Sources-_0028m_002dfiles_0029.html

Thanks,
- Jordi G. H.
Reply | Threaded
Open this post in threaded view
|

Re: ilu function

Marco Caliari-4
In reply to this post by Giovanni Matteo Fumarola
Dear Giovanni,

thank you very much for considering the inclusion of your
implementation of ILU function in core Octave.
Of course your actual implementation (maybe rewritten in Octave style) is
fine for small matrices, and in fact you are considering to "translate" to
C language to improve the performance.
However, since the code will be used for sparse matrices, it is not just a
translation needed, but a complete rewriting using the CCS format.
Some months ago, I also tried to write the ilu(0) factorization and I
ended up with some files here enclosed. Basically, luincfull.m is your
nofill.m and luincsparse.m is the same done with vectors data, ridx, cidx
of CCS format. If you run testluincsparse.m, you discover that even in
Octave language the sparse version is faster.
To conclude, it is a translation into C of luincsparse.m and not of
luincfull.m that we need. The result would be very similar to subroutine
ilu0 in chapter 10 in Saad's book, except that we should use the CCS
format and not the CSR (if you are interested, I translated luincsparse.m
into Fortran).
At that time, I stopped working on it and contacted Saad, who knows and
uses Octave

http://www-users.cselabs.umn.edu/classes/Spring-2012/csci8314/matlab/index.html

and he, or some students of him, were quite interested into the project
(writing ilu for Octave), but since then (April 2012) I got no more
answer.

Cheers,

Marco

luinc.tar.gz (1K) Download Attachment