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.
Guide to GTOs
We have published a guide to the implementation of Gaussian type orbitals (GTOs).
Installing Ubuntu
Ubuntu is the recommended operating system for all our programming courses. The reason is that installation of software libraries is way easier in Ubuntu than Windows or Mac OS X. In addition, Ubuntu has grown to become a very easy-to-use operating system for everyday use as well.
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.
Project structure in Qt Creator
When working with both a main application and unit tests, it may be useful to define a proper project structure that first compiles a library that is used by your application and the tests.
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.