27 April 2014

My project

In this post I identify my project's goals, as already published on Melange.

list of tasks

  1. reduce copies when passing matrices from Octave to dolfin;
  2. avoid useless compilations of .oct files when they are not needed;
  3. avoid using separate .ufl files, introducing the possibility to write UFL code in .m files;
  4. implement in fem-fenics further FEniCS functionalities, preferably according to the FEniCS developers' directions;
  5. improve the build and distribution system, so that end users can enjoy full functionality right away after installing from Forge.


I will address point 3 implementing an .m function which accepts strings as arguments and writes them to a file. There should be two keywords, such as start and end, to identify where the UFL input begins and finishes. After writing this code, it will be compiled when needed. This way UFL instructions could be written directly in .m files in the following manner:

ufl start filename
ufl <first line>
ufl <second line>
ufl <...>
ufl <last line>
ufl end

To address point 5, instead, I will add instructions to PKG_ADD to automatically find out, through pkg-config, the proper flags to allow for the just in time compilation of .oct files. I will also add instructions to PKG_DEL to restore the environment at its previous state when the package is unloaded. This would allow end users to use the package without taking care of the problems reported here.

tentative agenda

  • 22 April - 18 May: Study of the documentation and interaction with my mentor and the Octave community to understand thoroughly the code base and the contribution expected from my project
  • 19 May - 22 June: First phase of the project. I will implement bindings for the UFL language in Octave and adapt accordingly the provided examples. I will also work on the build and distribution system to allow for feedback on it from the community. In the end, I will commit a first set of new functions
  • 23 June - 27 June: Period for the submission of the mid-term review, I will double check the functionalities already implemented and improve their documentation
  • 28 June - 10 August: Second phase of the project. I will improve the package performance, both reducing copies of matrices between Octave and dolfin and implementing checks to avoid useless just in time compilations. Furthermore, I will add a second, probably larger, set of new functions, as suggested by the community and FEniCS developers. I expect to code some new examples which make use of the freshly introduced capabilities
  • 11 August - 22 August: Week devoted to final minor fixes and to the improvement of the documentation

No comments:

Post a Comment