Balaje Kalyanaraman
Home Resume Research Blog GSoC WIP


PhD Student at the University of Newcastle, Australia

19 May 2021

Google Summer of Code with Gridap.jl

I am excited to share that I will participate in the 2021 edition of the Google Summer of Code (GSoC) with Gridap under the NumFOCUS organization. I will be working with Eric Neiva, Oriol Colomés and Santiago Badia during the program. The topic of my project is A fast finite element interpolator in Gridap.jl. In this short blog post, I will share my experiences writing a proposal for the GSoC project. Feel free to click on the links to read the conversation.

Deciding the topic

Gridap offered a list of project titles through their official GSoC repository located here. They required the applicants to open an issue in their repo to discuss the topic in detail. I will briefly explain the process and the discussions I had with my mentors to finalize the topic for GSoC. I opened an issue on March 19, approximately a month before the student application closed. I started with one of the projects listed on the official repository and inquired whether an applicant could propose a different project.

I was interested in working on a topic close to my research interest for GSoC 2021 and proposed a project around Virtual Element Methods. If you’re wondering what virtual elements are, you could take a look at these posts in my blog:

We then played around with the VEM idea a little bit while I worked on learning Gridap. It turned out that VEM needed more tools in Gridap to be implemented in time for a GSoC project. So we decided to leave it for later.

While I did have good experience with numerical methods and other automated finite element solvers like FreeFem, I did not have much experience with Julia or Gridap. I installed the packages and tried programming an ice-shelf example with Gridap. I did this for uniform geometries and compared it with some exact solutions (the code for this is available here). I then observed a few things while solving this problem. FreeFem offers a fast finite element interpolator of \(O(N\log N)\) complexity to interpolate functions between different meshes and finite element spaces.

I wanted this feature in Gridap to solve more general ice-shelf problems, but Gridap did not have it yet. It gave me an idea for a GSoC project to implement this feature, and it felt doable too. So along with this, I proposed a few more doable topics for my GSoC proposal.

I had video calls with all my mentors and subsequently chose to go with the first idea, i.e., implementing a fast finite element interpolator on Gridap.

Writing a proposal

Writing the proposal to GSoC was a bit of work, coming up with a suitable plan. I sent the proposal over to my mentors for suggestions, and they made sure that I highlight all my previous experience with open-source projects and my research. Also, having a research website is useful! The next step is to wait for the results. In the meantime, I learned more Julia programming and went briefly through the Gridap API. I have listed some resources below.


Then on May 18, I received the results and was excited beyond bounds! You can find the title and abstract on the official page located here. I’ll keep updating my blog as I work through the summer. I am looking forward to an exciting summer with Gridap and NumFOCUS!

Stay tuned ;)

tags: gridap - gsoc