# Introduction to Scientific Computing – 2019

## Purpose

The purpose of the course is to give the students an introduction to scientific programming using Python and Fortran.

The course is well suited for PhD-students with little previous experience of programming.

## Pre-requisites

This is a basic course in scientific programming and will teach basic programming skills. Some knowledge in MATLAB or similar environment is recommended.

## General aims of the course

The aim of the course is to give the students a toolbox of programming methods that can be applied to his/her PhD-project. Focus is on Fortran 2003/2008. After successful completion of the course, the student should be able to:

- Use Python scripting for computational science and engineering applications using the SciPy and NumPy packages.
- Use modules and tools for scientific visualization in Python.
- Implement user interfaces in Python using Qt.
- Use Modern Fortran for computational science and engineering applications using array-features and functions.
- Use Python for wrapping existing Fortran-based packages.
- Familiar with common development tools and environment for Python and Fortran.
- Use these insights in practice in solving problems of relevance of her/his PhD-project.

## Course contents (tentative)

The course starts with introducing scientific programming in Python using SciPy and NumPy. The students will also be familiarized with the many available tools and libraries available for Python-development.

In the next part of this section an introduction to modern programming in Modern Fortran is given. The focus on this part is giving the students an introduction on how to develop well structured and modularized scientific applications in Fortran. The students are also introduced to modern Fortran features such as array-indexing, dynamic memory allocation.

In the last part of the week the students are introduced to mixed-language development, using Python for scripting an existing Fortran application.

The course is focused on hands-on training intermixed with lectures.

## Course schedule

The course consists of:

1 week pre-study exercises **week 43.**

1 week of lectures and hands-on **Linköping ****, 28 October – 1 November**

1 week project assignment ** week 45.**

## Course literature

**Scientific programming**

- Python Notebooks – Slides
- Hans-Petter Langtangen – A Primer on Scientific Programming with Python
- Hans-Petter Langtangen – Python Scripting for Computational Science

**Fortran literature**

- Modern Fortran Explained
- Modern Fortran in Science and Technology

## Contact

Jonas Lindeman, LUNARC, Lund University

E-mail: jonas.lindemann at lunarc.lu.se

## Application