Airborne Wind with Vortex Particle Method

Eduardo's Past Three Years

FLOWUnsteady in Google Drive

Takeoff and Performance Tradeoffs of Retrofit Distributed Electric Propulsion for Urban Transport

Electric Aircraft Optimization

Multirotor - Vortex Particle Method

Development of a Vertical-Axis Wind Turbine Wake Model

Wake Visualization

Polynomial Chaos for Wind Farm Power Prediction

convergence of AEP

Making Julia as Fast as C++

Vid here

Coupled Wind Turbine Design and Layout Optimization


Trajectory Optimization for High Altitude Long Endurance Aircraft

NASA Helios

Multirotor - Vortex Particle Method

Julia for the Win

In updating a paper to prepare for journal submission I needed to revisit the accompanying Julia code. I chose Julia at the time because this was a mostly self-contained project and I wanted to give Julia a trial run on something of moderate complexity (see first impressions). I cleaned up the code, added some capabilities, and really tried to improve performance. I read all the primary documentation on Julia, including the sections on performance, updated to 0.4.x, explicitly declared all types, and profiled quite a bit. This made some difference, but my code was still about an order of magnitude slower than a Python/Fortran version.

Julia First Impressions

I’m primarily a Python user, and my primary use is scientific computing. Over the last few years, I’ve followed Julia’s development and looked through documentation and various benchmarks multiple times. I was intrigued by the potential. However, it’s one thing to read about a programming language, and another to use it for yourself. I asked a couple of my undergraduate students to use it for an exploratory project on aircraft design. These students had some programming experience, and seemed to be able to complete the tasks just fine. However, those problems were relatively simple and I needed to take Julia for a test drive myself on a larger problem to evaluate whether or not it was something worth switching to, for at least some of our lab projects.

Scientific Programming Languages

I’ve used a number of scientific programming languages over the past 16 years: C++, C, Matlab, Java, Fortran, Python, and Julia, and I wouldn’t name any one as the “best” (I’ve also used Objective-C, JavaScript, and PHP quite a bit, but not for scientific computing). Usually I try to pick the right tool for the job, not necessarily just the tool I happen to know best (as they say: if all you have is a hammer, everything looks like a nail). However, my usage has evolved over the years from Matlab-centric, to Python-centric, and I’m contemplating a move to Julia-centric. Before explaining why, let’s discuss some of the reasons why I might choose one language over the others.