“Traversing Julia via Google Summer of Code”

Yiannis Simillides
Jul 25, 2017 · 3 min read

My experience so far…

I’m approaching the end of my second month of the Google Summer of Code programme with Julia. I’ve been working on A Wrapper for the FEniCS Finite Element Toolbox which essentially means providing a nice interface to use FEniCS in Julia and fixing any *slight* errors that might appear throughout.

The finite element method (FEM) is a numerical method that solves partial differential equations by discretizing the domain (breaking it up into small pieces, generally triangles called finite elements) and then solving the resulting equations (which are generally a system of algebraic equations) using calculus of variations to approximate our required solution.This is nearly impossible to do by hand,so computer software is required to aid in solving it. While many FEM toolboxes currently exist for other languages, with FEniCS being the predominant one using Python and C++,not many exist in Julia.

While my implementation is far from finished, I along with my mentors, Chris Rackauckas and Dr. Bart Janssens have implemented meshing functionality both for inbuilt meshes (generally geometrical shapes such as squares, boxes etc.) and for custom meshes (such as the dolphin in Fig.1). We’ve also wrapped around the FEniCS api allowing for the plotting of various objects and allowing access to some of their *kwargs (custom arguments, such as line width or color).

Fig1:Dolphin Mesh

Apart from this you can also now access much of the *FEM* functionality, such as assembling the stiffness matrix or doing linear algebra with various forms. Soon we will be finishing with the implementation of various variational solvers, before finalizing the project by integrating parts of the wrapper along with JuliaDiffEq.

Despite the progress being made, we have had some setbacks along the way. We’ve had installation/build issues, problems with getting Travis working and slight differences in the languages of Python and Julia. Thankfully the latter two problems have been satisfactorily resolved.

Apart from the coding I have had the opportunity to do , it would be a shame to neglect to mention and thank the Julia community at large. They have been very supportive throughout the various messaging platforms.They also have a code of conduct, encouraging them to be nice to newcomers, which I believe is a great idea. Furthermore I have had the opportunity to visit the Julia Computing offices in London and have lunch with some of their members. Through the generous support of Juliacon and NumFocus I had the opportunity to attend JuliaCon. This was a fantastic experience as I managed to meet some of the creators of the language as well as some of my fellow summer of code students. The talks where very informative and entertaining, with one of my favourites being about vector transposes seriously by Dr Jiahao Chen. The videos from the talks can be found here.

It has been a fantastic experience so far, and I hope it continues to be so. I’ve found Julia to be a wonderful language to code maths in and hope to be able to use it throughout my future studies (and hopefully career). You can follow my progress through our GitHub repository at FEniCS.jl. Or you can also get involved in the Julia community by downloading Julia yourself and trying it out!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade