A short course on object-oriented numerics

This short hands-on course is aimed at presenting several practical examples highlighting the applicability of object-oriented programming (OOP) in atmospheric and oceanic model development. The course will be taught in C++ and will be loosely based on the discussion presented in: Formula translation in Blitz++, NumPy and modern Fortran: A case study of the language choice tradeoffs.

The course will be divided into three sessions of ca. 2-3 hours each:

Day 1. The first session will be aimed at demonstrating the power of the Boost. Units library that offers zero-overhead dimensional analysis of C++ code. It allows to verify physical unit correctness of all expressions in the source code at compile-time.

Day 2. The second session will concentrate on array operations and array-based algorithms. The high-performance Blitz++ library will be introduced. The main aim of this session will be to highlight the power of OOP in enabling succinct LaTeX-like formula syntax resembling the representation of mathematical abstractions used in the literature.

Day 3. The third session will provide examples of how to couple the above two libraries with other C++ packages of applicability in geoscientific modelling (i/o, communication, plotting, GPU computing), again underlining the way OOP enables one to achieve complex functionality in relatively few lines of code.

The course will be taught using free and open-source software. Basic acquaintance with programming and numerical modelling is expected.

Even though it’s not required, you can bring your own laptop.

A certificate of asistance will be given at the end of the course.

Organized by: EPhysLab

Directors of the course: