Leibniz MMS Days 2019 - Abstract

Fuhrmann, Jürgen

The Julia programming language in applications for electrochemical systems simulation

Julia is a new computer language with multidimensional arrays as first class data types designed for numerical computations. Compared to other languagues with similar purpose (Matlab, python/numpy, R), Julia follows a number of promising paradigms. Julia was designed around a just-in-time compilation strategy which guarantees high single thread performance. At the same time it supports various parallelization approaches (shared/distributed memory, GPU offloading). Programming paradigms like multiple dispatch and reflection provide a high level of expressivity. The talk will give an overview on these features of Julia.

Based on first principles of nonequilibrium thermodynamics, at WIAS, a modeling and simulation strategy for electrochemical systems has been developed which accurately accounts for phenomena which are poorly reflected in classical models like finite ion size and constraints, solvation phenomena. These models result in highly nonlinear systems of partial differential equations. The talk presents first steps towards a Julia based implementation of a finite volume bases numerical solution strategy for these systems.