User:Eg123: Difference between revisions
Jump to navigation
Jump to search
m (→E: Coding experience: Added fem-fenics build system patch) |
(Task updated) |
||
Line 41: | Line 41: | ||
== Y: Your task == | == Y: Your task == | ||
* I selected [[Summer_of_Code_Project_Ideas#General_purpose_Finite_Element_library|General purpose Finite Element library]] | * I selected [[Summer_of_Code_Project_Ideas#General_purpose_Finite_Element_library|General purpose Finite Element library]]. I would continue the work done last year in '''fem-fenics''', with the ultimate goal to have it included in the main FEniCS distribution. Here is a preliminary list of features to implement in this project: | ||
** Reduce copies when passing matrices from Octave to dolfin | |||
* I | ** Avoid useless compilations of .oct files when they are not needed | ||
** Avoid using separate .ufl files, introducing the possibility to write UFL code in .m files | |||
** Implement in fem-fenics further FEniCS functionalities, preferably according to the FEniCS developers' directions | |||
** Improve the build and distribution system, so that end users can enjoy full functionality right away after installing from Forge | |||
* A tentative agenda for my project proposal follows. In the week '''6 May - 9 May''' I will be attending compulsory intensive classes at the university, otherwise I am not planning any further non-coding periods | |||
** '''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 - 22August:''' Week devoted to final minor fixes and to the improvement of the documentation | |||
[[Category: 2014]] | [[Category: 2014]] | ||
[[Category: Applicants]] | [[Category: Applicants]] |
Revision as of 19:01, 19 March 2014
A: An introduction
- I am Eugenio Gianniti, a student from Italy. I am pursuing my master's degree in Mathematical Engineering from Politecnico di Milano (Polytechnic University of Milan), currently attending my last year.
- I can speak fluently English and Italian
- I have a background in Mathematics and Electronics. I have done courses on Linear Algebra, Numerical Analysis, PDEs, Scientific Computation and Solid State Electronics
- I am interested in coding, but have little experience in such a big cooperative project. I find the GSoC an amazing opportunity to learn how to interface to other developers in a fruitful fashion
- I have no previous experience in the GSoC
- I have been using MATLAB during all my studies, so I think that Octave is a valuable alternative and deserves effort. Moreover, my background gives me familiarity with the problems Octave is meant to solve
C: Contact
- eg123 is my nick on the Octave IRC channel, bug tracker and wiki. Anyway, in the mailing list and when contributing patches I usually sign with my full name
- My time zone is UTC+1:00, but due to DST in the period of GSoC I will be in UTC+2:00. I live in Italy.
- I usually code between UTC 08:00 to UTC 18:00
E: Coding experience
- I have been using MATLAB throughout my studies and attended courses in my master's degree about programming in C++. I have no previous experience with OpenGL and Qt
- I have some experience in Bash scripting and Python
- I currently do not have any experience with development teams, nor with open source projects
- I have no previous experience with collaborative projects. Till now I have worked only on small, one-day projects as part of my course of Algorithm and Parallel Computation
- I have so far contributed to Octave Forge packages:
F: Feeling fine
- I am comfortable using the mailing list. I have not been hanging around a lot on IRC, but I do not have problems with it
- I do not have a large experience with DVCSs, anyway I have already grasped the basics of Mercurial and of the workflow involved in its use
- I am learning Mediawiki, anyway I find it quite intuitive
- I am comfortable using make, gcc and gdb. I can use the Autotools, usually exploring the documentation when I need a feature I do not already know how to implement. I know the basics of valgrind and gprof
O: Only out of interest
- I first heard about Octave in my studies, but it was always cited just as an alternative to MATLAB and never really suggested
- My first problem was related to Octave Forge: I find difficult accessing the development repositories of the various packages, I cannot find a link on their pages
P: Prerequisites
- I have a computer installed with Mac OS X and another one with Arch Linux. On the first one I also have a development VM with Ubuntu 13.10 on Virtualbox
- I will have access to the internet and my computers with my progressing work all day long
- I administrate my computers, so I can install any supported software
S: Self-assessment
- I think that criticism is fundamental to learn the best ways to interact with the community and contribute in a meaningful manner
- When coding I prefer to get a preliminary general idea and then start to code to have a proof of concept, in order to have a basis on which to build further improvements. If in the process important implementation details emerge, I then like to widely discuss them to understand the better approach
Y: Your task
- I selected General purpose Finite Element library. I would continue the work done last year in fem-fenics, with the ultimate goal to have it included in the main FEniCS distribution. Here is a preliminary list of features to implement in this project:
- Reduce copies when passing matrices from Octave to dolfin
- Avoid useless compilations of .oct files when they are not needed
- Avoid using separate .ufl files, introducing the possibility to write UFL code in .m files
- Implement in fem-fenics further FEniCS functionalities, preferably according to the FEniCS developers' directions
- Improve the build and distribution system, so that end users can enjoy full functionality right away after installing from Forge
- A tentative agenda for my project proposal follows. In the week 6 May - 9 May I will be attending compulsory intensive classes at the university, otherwise I am not planning any further non-coding periods
- 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 - 22August: Week devoted to final minor fixes and to the improvement of the documentation