Atmospheric Boundary-Layer Simulations with the Julia Programming Language
Abstract
In turbulence research, most flows of interest cannot be simulated with direct numerical simulation. As a result, problem-specific code is often required in order to achieve the best trade-off between modeling assumptions and computational feasibility. This places particular constraints on the software used for such research. On one hand, the code should be optimized to run as efficiently as possible, enabling higher resolutions, more complex geometries, and more advanced physics. On the other hand, the code should be simple and flexible such that it can be adapted quickly even if significant changes are required.
The programming language Julia, reaching version 1.0 this year, has been created to bridge the gap between high-level languages used for rapid prototyping and low-level languages used to optimize performance. By relying on just-in-time compilation it aims to achieve a run-time performance comparable to C and Fortran while providing the convenience of a modern, dynamically typed language specifically designed for scientific computation. We present an evaluation of Julia for the simulation of a turbulent open-channel flow, the canonical flow of atmospheric boundary-layer research, and compare the new code to a battle-tested Fortran solver that is based on the same numerical approach. We discuss how Julia affects the trade-off between speed of execution, ease of development for new contributors, and adaptability to new problems, and we assess the language's potential for a larger role in turbulence research.- Publication:
-
AGU Fall Meeting Abstracts
- Pub Date:
- December 2018
- Bibcode:
- 2018AGUFM.A31K3052S
- Keywords:
-
- 0315 Biosphere/atmosphere interactions;
- ATMOSPHERIC COMPOSITION AND STRUCTUREDE: 3307 Boundary layer processes;
- ATMOSPHERIC PROCESSESDE: 3322 Land/atmosphere interactions;
- ATMOSPHERIC PROCESSESDE: 3379 Turbulence;
- ATMOSPHERIC PROCESSES