77
edits
Line 117: | Line 117: | ||
*'''ichol:''' In this case things should be easier at first glance. Kai implemented the functions related with ichol from Fortran prototypes and they work as expected. In theory would be only necessary to code the complex versions and the modified versions of the algorithms. On the other hand, there is an issue here with licenses I did not know at first and Kai pointed me out (see [http://edu159-gsoc2014.blogspot.com.es/2014/03/introducing-myself.html#bc_0_1B here]). Authors should be contact in order to ask for a permission, but if they are not in favor of giving to us then | *'''ichol:''' In this case things should be easier at first glance. Kai implemented the functions related with ichol from Fortran prototypes and they work as expected. In theory would be only necessary to code the complex versions and the modified versions of the algorithms. On the other hand, there is an issue here with licenses I did not know at first and Kai pointed me out (see [http://edu159-gsoc2014.blogspot.com.es/2014/03/introducing-myself.html#bc_0_1B here]). Authors should be contact in order to ask for a permission, but if they are not in favor of giving to us then functions will be implemented from scracth. | ||
:The road map of what and how I want to do the project is clear to me, but I don't know for sure if it will be enough for the GSoC period. Because I am concerned about that there are other functions that I would like to implement if it would be necessary like '''lsqr''' and '''minres''', both highly related with ichol and ilu. I have already done some search and found that this website [http://www.stanford.edu/group/SOL/software/lsqr/ lsqr] [http://www.stanford.edu/group/SOL/software/minres/ minres]. The website is from the people that wrote the papers given as references in Matlab documentation. In the website there are several codes that can be used. I have mailed professor Michael Saunders about adapting them into Octave versions and he answered me that I am welcome to do while I respect the license (CPL or BSD licenses). He claimed that they are very unrestrictive but I've been told that they are not compatible with GPL3. I will need some insights about that if I happen to have time for implementing them. | :The road map of what and how I want to do the project is clear to me, but I don't know for sure if it will be enough for the GSoC period. Because I am concerned about that there are other functions that I would like to implement if it would be necessary like '''lsqr''' and '''minres''', both highly related with ichol and ilu. I have already done some search and found that this website [http://www.stanford.edu/group/SOL/software/lsqr/ lsqr] [http://www.stanford.edu/group/SOL/software/minres/ minres]. The website is from the people that wrote the papers given as references in Matlab documentation. In the website there are several codes that can be used. I have mailed professor Michael Saunders about adapting them into Octave versions and he answered me that I am welcome to do while I respect the license (CPL or BSD licenses). He claimed that they are very unrestrictive but I've been told that they are not compatible with GPL3. I will need some insights about that if I happen to have time for implementing them. | ||
'''Project structure''' | |||
------------------------- | |||
These are the main files that will be needed for the project: | |||
* ilu.m -- Act as a wrapper for the rest of the ilu functions | |||
** ilu0.cc -- Implements ilu decomposition zero level of fill | |||
** ilut.cc -- Implements ilu decomposition with threshold | |||
** iluc.cc -- Implements Crout version of ilu decomposition | |||
** ilutp.cc-- Implements the ilu decomposition with threshold and pivoting | |||
*ichol.m -- Act as a wraper for the rest of ichol functions | |||
** ichol0.cc -- Implements ichol decomposition with zero level of fill | |||
** icholt.cc -- Implements ichol decomposition with threshold | |||
** icholt0jp.cc -- Implements ichol decomposition following Jones and Plassmann strategy | |||
NOTE: All the algorithms could be used with real and complex numbers and "modifified versions" will be implemented as well. | |||
Line 129: | Line 147: | ||
*'''FIRST PERIOD:''' | *'''FIRST PERIOD:''' | ||
::'''19-20 May:''' Implement ilu related functions. In that order | ::'''19-20 May:''' Implement ilu related functions. In that order ilu0, ilut, iluc , ilutp. | ||
::'''20-25 June:''' Write | ::'''20-25 June:''' Write ilut, iluc, ilutp automated tests, documentation and benchmarking. | ||
::'''27 June:''' '''(Millstone 1)''' ilu.m is fully functional and ready to be integrated with Octave core. | ::'''27 June:''' '''(Millstone 1)''' ilu.m is fully functional and ready to be integrated with Octave core. | ||
::'''27 June:''' Mid-term evaluation | ::'''27 June:''' Mid-term evaluation | ||
Line 136: | Line 154: | ||
*'''SECOND PERIOD:''' | *'''SECOND PERIOD:''' | ||
::'''28 June-2 July:''' Strategy for ichol will be fully established in those days. Better to plan wisely before code. | ::'''28 June-2 July:''' Strategy for ichol will be fully established in those days. Better to plan wisely before code. | ||
::'''2 July-5 August:''' Implement ichol related functions. In that order | ::'''2 July-5 August:''' Implement ichol related functions. In that order ichol0, icholt. ichol0jp if there is time left. | ||
::'''5-10 August:''' Write automated tests, documentation and benchmarking. | ::'''5-10 August:''' Write automated tests, documentation and benchmarking for those functions. | ||
::'''10 August:''' '''(Millstone 2)''' ichol.m is fully functional and ready for integration. | ::'''10 August:''' '''(Millstone 2)''' ichol.m is fully functional and ready for integration. | ||
::'''10-18 August:''' Buffer week for any unexpected situation or minor changes that should be done. If there is time left | ::'''10-18 August:''' Buffer week for any unexpected situation or minor changes that should be done. If there is time left, then I will work on minres and lsqr functions. | ||
'''Note:''' I set schedule starting on May 19th but I would like to start coding since I know I am selected (22 April), so maybe goals would be reached before stated above. So that dates should be taken as top limits. In June 3 exams are scheduled that still not have fixed dates. I am not worried about them since I have a lot of time for studying. | '''Note:''' I set schedule starting on May 19th but I would like to start coding since I know I am selected (22 April), so maybe goals would be reached before stated above. So that dates should be taken as top limits. In June 3 college exams are scheduled that still not have fixed dates. I am not worried about them since I have a lot of time for studying. |
edits