Guides

We have made a few guides that will get you ready for this year's courses FYS4411 and FYS4460. In short, we will encourage you to use Git for version control and Qt Creator for development. The Armadillo library is very useful for linear algebra calculations and is strongly recommended to use from the very beginning of your project.

Creating unit tests in C++

Your code is likely starting to become unmaintainable because of its size. This guide helps you understand and use the concept of unit tests to regain the control over your code.

Installing Armadillo

This guide will show you step-by-step how to install Armadillo, the C++ linear algebra library, in your home directory.

Installing Qt Creator

In this year's course we encourage you to use the Qt Creator IDE as your development platform. Qt Creator has many nice features that will help you while developing, such as syntax highlighting, code completion, version control and visual debugging.

Setting up Git

In this course it is required that you use a version control system. We recommend Git and will in this guide give a brief introduction to resources you may use to start using Git.

Generating Doxygen documentation from source code

When you are documenting your code, it can be of great use to have a separate document that describes your code and project in a condensed form. This guide shows you how to use Doxygen for this purpose.

Parallelizing your code

In order to parallize your code, you have several options. The simplest way to get started is the use of OpenMP, for a more advanced parallelization, we recommand MPI (Message Passing Interface). This guide shows you how to install and/or set up the framework for parallelization.

Compiler flags

Because Qt Creator is set up for GUI programming by default, we need to change some of the compile flags for our projects for the max performance. In this post we have listed the most useful compile flags you will need.

Using Python for the percolation project

We have posted a small guide on how to use Python for the first part of the percolation project. We have not yet explored the possibilities to use Python for the rest of the project.

Optimizing your C++ code for molecular dynamics

This guide gives a few general optimization tips for C++ with Armadillo together with some specialized tips geared towards the molecular dynamics project in FYS4460.