MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
Getting Started (Useful knowledge)

Table of Contents

The goal of this section is to provide more background information, which is helpful when you work with m-AIA.

Prerequisites

Before trying to work with m-AIA, you should:

  • Have some basic Unix knowledge, especially in using a command line interface (CLI) such as a terminal or konsole with a bash shell, just type Ctrl + Alt + T in a KDE desktop to open it. If you are using a different desktop environment, please read the Survival Guide for UNIX beginners and this Introduction to Unix. Besides the basics, you should know how to use unix commands such as grep with regular expressions. It is also useful to know how to configure your shell.
  • Know how to edit text files under unix with your preferred editor. The best and most common editors are emacs, vim and kate (some PhD students at AIA may have a different opinion). Choose one of them or find an alternative one that suits you even better and learn the basics such as text searching, copy and paste, adding macros, etc.. For more information, have a look at
  • Know how to write a computer program to solve a mathematical problem. The best choice of the programming language in the context of m-AIA would be C++, but other computer languages may also be a good starting point. If you don't have any prior knowledge, the MIT course Introduction to Computer Science and Programming may be helpful for you.
  • Learn details of the object oriented programming language C++, which is extremely powerful, but also sometimes difficult to understand. You should be able to read existing program lines and know how to write basic C++ code lines. There are hundreds of tutorials available on the world wide web and book shops. A short list of tutorials is here:
  • Have some basic knowledge of the programming language Python:
  • If you plan to develop parallel algorithms, please have a look at parallel programming using MPI (Message Passing Interface), and understand at least the most basics MPI operations, which are explained, e.g., in this tutorial:
  • Have some basic knowledge using
    • Git/GitLab, which is a distributed version control system for collaborative software development.
    • SSH (Secure Shell) used to connect to remote computers and transferring data.
    • the Slurm Workload Manager Quick Start User Guide, with some additional commands such as shosts and si only available at AIA.
    • HDFView for opening hdf5-files, which are used for storing the simulation results.
    • ncdump for opening netcdf-files, which are used for storing the simulation results.
    • ParaView for visualization and postprocessing, which can be opened with the command paravor paraview.

A lot of your work will be learning by doing, but some basic knowledge on the aforementioned topics will speed up you work significantly and you won't be totally lost once you start working with or on the code.

Note
If you are using a CLI in a Terminal with the bash, you can complete a particular command or filename using the ‘Tab’ key if the name is already uniquely specified. Pressing the ‘Tab’ key twice will give you the list of options available. You can also use the arrow keys to reuse and edit commands in your command history.

Besides programming and computer knowledge you should also have a good understanding of the physics related to your simulation problem such as general fluid mechanics, acoustics, heat transfer etc.. While this is certainly not a knowledge you can pick up on the fly, there are a lot of text books, papers and internet resources that may help to refresh and improve your knowledge.