Prao

Joined 26 February 2014
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 11: Line 11:


* Why are you choosing Octave?
* Why are you choosing Octave?
I have used Octave a little before and found it a useful math tool. The project on IBVP parabolic-elliptic is very interesting and offers me the perfect opportunity to combine my numerical analysis, fluid dynamics(PDE solving) and coding skills. Plus, I could see myself using this tool for my own work.  
I have used Octave a little before and found it a useful math tool. The project on IBVP parabolic-elliptic offers me the perfect opportunity to combine my numerical analysis, fluid dynamics(PDE solving) and coding skills. Plus, I could see myself using this tool for my own work.  


== C: Contact ==
== C: Contact ==
Line 18: Line 18:


* Which time zone do you live in? Will that change over GSoC duration?
* Which time zone do you live in? Will that change over GSoC duration?
I live in UTC-4 and it's not going change for GSoC duration.
I live in UTC-5 and it's going to be UTC-4 for GSoC duration (daylight saving)


* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC.
* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC.
I am on a flexible schedule but on most days, I code between 15:00 hrs to 05:00 hrs(UTC).
I am on a flexible schedule but on most days, I code between 14:00 hrs to 06:00 hrs(UTC).


== E: Coding experience ==
== E: Coding experience ==


* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
For my research I use C++, C to solve the Navier-Stokes numerically using a huge code that's been in development for a long time. The code development that I do is mostly in these languages.
For my research we use C++, C to solve the Navier-Stokes numerically using a huge code that's been in development for a long time. The code development that I do is mostly in these languages.


I have used a lot of Matlab for writing scripts for post-processing data and to generate plots for research papers. In addition, I have also used Matlab for numerical analysis classes to generate movies and to do homework assignments on PDEs.  
I have used a lot of Matlab for writing scripts for post-processing data and to generate plots for research papers. In addition, I have also used Matlab for numerical analysis classes to generate movies and to do homework assignments on PDEs.  
Line 33: Line 33:


* Please describe your experience with other programming languages.
* Please describe your experience with other programming languages.
I have used Python to test some complex code ideas before implementing them in C, C++. I've also used a few Python libraries and IPython for my assignments. I can make some simple GUIs using Tkinter.
I have used Python to test the complex code ideas before implementing them in C, C++. I've also used a few Python modules and libraries for my assignments. I am taking a Python based scientific computing class and as part of my coursework, I use IPython. I really like the IPython notebooks. I can make some simple GUIs using Tkinter.


* Please describe your experience with being in a development team.
* Please describe your experience with being in a development team.
For my Ph.D. research, I use and help develop a multi-physics, publically available code FronTier [1], that's been in development for a couple of decades. I work in a big team that shares code, so in a way I'm familiar with the development environment, although I am totally new to open source development.
For my Ph.D. research, I use and help develop a multi-physics, publically available code in C, FronTier[1], that's been in development for a couple of decades. I work in a big team that shares code, so in a way I'm familiar with the development environment, although I am totally new to open source development.
[1] http://sitsec.ams.sunysb.edu/trac/wiki/FronTier
[1] http://sitsec.ams.sunysb.edu/trac/wiki/FronTier


* Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
* Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
I started using FronTier as an end user, taking data output and writing scripts to answer specific research questions. As my research progressed, I needed to add more features to the code and I transitioned to being a developer.
I started using FronTier as an end user, taking data output and writing scripts to answer specific research questions. As my research progressed, I needed to add more features to the code and I transitioned to being a developer.
My biggest project was to adopt some parts from the old version of FronTier(in C) to a new C++ version. It involved reading a bunch of papers on dynamic subgrid scale modeling (LES turbulence modeling), understanding a big piece of code written by someone else and changing (also adding new features) it to C++, which I didn't know much of until I started working on this project.
My biggest project was to adopt some parts from the old version of FronTier(in C) to a new C++ version. It involved reading a bunch of papers on dynamic subgrid scale modeling (small-scale turbulence modeling), understanding a big piece of code written by someone else and changing (also adding new features) it to C++, which I didn't know much of until I started working on this project.
The complexity of the code and poor documentation, made it quite challenging to add new pieces of code that worked in sync with the rest of it. It taught me the value of having a clear plan of action before implementation and the importance of testing vigorously. I found it useful at times to discuss certain aspects with more experienced users and refining my thought process.
The complexity of the code and poor documentation, made it quite challenging to add new pieces of code that worked in sync with the rest of it. It taught me the value of having a clear plan of action before implementation and the importance of testing vigorously. I found it useful at times to discuss certain aspects with more experienced users and refining my thought process.
Being in a big team also was a good practice in improving my communication skills.


* Please state the commits and patches you already contributed to Octave.
* Please state the commits and patches you already contributed to Octave.
Line 48: Line 50:
[https://savannah.gnu.org/patch/index.php?8372]
[https://savannah.gnu.org/patch/index.php?8372]
[http://savannah.gnu.org/patch/?8393]
[http://savannah.gnu.org/patch/?8393]
[https://savannah.gnu.org/patch/index.php?8418]


== F: Feeling fine ==
== F: Feeling fine ==
Line 66: Line 67:


* What will make you actively stay in our community after this GSoC is over?
* What will make you actively stay in our community after this GSoC is over?
Octave community does a lot of numerical stuff that I'm interested in. I enjoy code development that centers around math and Octave offers me that. I like the openness and collaboration culture of open-source world. I will definitely continue to contribute irrespective of whether I get selected or not.
I think I've learned a few things just by hanging around in IRC, reading mailing digests regularly and submitting small patches. I view it as an experience which not only improves the coding skills, but the intangible ones as well. Other members seem helpful and welcoming. Besides I use Matlab pretty frequently, but I'am trying to switch to Octave. It's a very helpful tool for my research (which is not going to change any time soon). A combination of all these things makes me want to stick around after GSoC is over.  
== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?
* Did you ever hear about Octave before?
Line 97: Line 98:


* How autonomous are you when developing?
* How autonomous are you when developing?
I'd say fairly autonomous. I usually refer to online resources to resolve problems. But I'm also good at recognizing roadblocks that might need a little nudge in the right direction, especially if there is time constraint.
I'd say fairly autonoumous. I usually refer to online resources to resolve problems. But I'd say I'm also good at recognizing roadblocks that might need a little nudge in the right direction, especially if there is time constraint.
   
   
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
Line 108: Line 109:


** If yes, what task did you choose? Please describe what part of it you especially want to focus.
** If yes, what task did you choose? Please describe what part of it you especially want to focus.
Yes, I chose to implement the IBVP for parabolic-elliptic PDEs in 1D and improve ode15s. Besides being compatible with Matlab's pdepe function, I want to make sure it has comparable performance too.
Yes, I would like to implement the IVBP for parabolic-elliptic PDEs in 1D. Besides being compatible with Matlab's pdepe function, I want to make sure it has comparable performance too.


* Please provide a rough estimated timeline for your work on the task.
* Please provide a rough estimated timeline for your work on the task.
I am working on a more detailed outline that deals with the specifics. Any ideas, comments on this schedule will be much appreciated!<br>
'''Community bonding period'''<br>
'''Community bonding period'''<br>
I'll know the source code and community better by getting more involved in help-forums, IRC, etc. I will discuss the frequency and means of communication with my mentor. I have set up a blog to put my weekly/fortnightly progress. This project is more math-intensive than coding-intensive, so I'll use this time to solidify the theory behind implementation well.  <br>
I'd like to know the source code and community better by getting more involved in help-forums, IRC, etc. I wouldn't have my research commitments in May and that should help. I'd also like to discuss the frequency and means of communication with my mentor. I have set up a blog and would like to put my weekly/fortnightly progress on it. Also, I think this project is more math-intensive than coding-intensive, so it's important I know the theory behind implementation well.  <br>
'''Coding period (tentative schedule)''' <br>
'''Coding period (tentative schedule)''' <br>
'''Overall goal:''' Implement Matlab compatible pdepe function and improve ode15s <br>
'''Overall goal:''' Implement Matlab compatible pdepe function <br>
'''Midterm goal:''' Implement pdepe for non-singular and singular cases <br>
'''Midterm goal:''' Implement pdepe for non-singular case <br>
'''Second Half goal:''' Performance analysis of pdepe and improvement of ode15s <br>
'''Second Half goal:''' Implement pdepe for singular case <br>
'''Wish-list:''' Improve ode15i, work on performance of pdepe, wrapper for IDA <br>
'''Week 1''' Initialization & error catching of input parameters <br>
'''Week 1''' Initialization & error catching of input parameters; Start implementing Galerkin for regular case:taking initialization, discretizing and setting up ODE system <br>
'''Week 2/3''' Implement Galerkin for non-singular case: taking initialization, discretizing and setting up ODE system <br>
'''Week 2''' Finish regular Galerkin code <br>
'''Week 4''' Use DASPK to solve ODE system<br>
'''Week 3''' Use daspk to solve ODE system; Test the regular case <br>
'''Week 5''' Testing Non-singular cases & buffer time for debugging; coexistence of above two <br>
'''Week 4''' Implement Petrov-Galerkin <br>
'''Week 6''' Implement Petrov-Galerkin <br>
'''Week 5''' Test non-singular cases & coexistence of above two; buffer time for debugging <br>
'''Week 7/8''' Testing, validation, timing studies and performance analysis <br>
'''Week 6/7''' Timing studies, performance analysis, correctional measures <br>
'''Week 9''' Documentation, clean up/finish <br>
'''Week 8/9''' Work on improving ode15s implementation and making it Matlab compatible <br>
'''Week 10,11''' If there's extra time and possibility, then work on imrpoving ode15s implementation <br>
'''Week 10''' Documentation, clean up/finish <br>
'''Week 12''' Pencil-in time <br>
'''Week 11''' Buffer time/work on improving pdepe performance/work on ode15i if time allows <br>
'''Week 12''' Wish-list <br>
'''Week 13''' Pencil-in time <br>


I don't have any exams or other commitments during GSoC period and the problem seems a good match for my skill set, so I expect to have no issues completing it in the time frame allotted.
I don't have any exams or other commitments during GSoC period and the problem seems a good match for my skill set, so I expect to have no issues completing it in the time frame allotted.


[[Category: Summer of Code]]
[[Category: Summer of Code]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)