Personal Site

This is the webpage for the CMB part of the Advanced Cosmology class of the master program at the IFT (2022-2023) that I am co-teaching with Gustavo Yepes (co-ordinator), Alexander Knebe and Weiguang Cui.

The official timetable of the course for the 2022-2023 academic year can be found here.


Goals:
1) In the class we will study in detail the connection between linear perturbation theory and the Cosmic Microwave Background (CMB) anisotropies. The lecture notes can be found here. They are in a state of temporal flux, so check back often!
2) Our treatment of the perturbation theory is based on the classic paper by Ma and Bertschinger astro-ph/9506072 titled "Cosmological Perturbation Theory in the Synchronous and Conformal Newtonian Gauges".
3) The last two days of the course will be devoted to hands-on programming sessions. As a warm up exercise, we will first solve numerically the perturbations equations on some simple scenarios, eg DM or DM+DE. Then, on the second day we will focus on the Boltzman codes CLASS and CAMB. In order to participate to the programming sessions, there are some software requirements, see below.
4) We will discuss CLASS in detail, during the lecture (see the notes above). On the other hand, a presentation that illustrates the basic use of CAMB can be found here. We might go through this presentation as well during the class if there's time.


Perturbation theory and RGTC in Mathematica
You can get the RGTC Mathematica code to do perturbation theory in GR from here.


Evolution of perturbation variables:
Examples on how to solve the ODEs for the perturbation variables in both Mathematica and Python along with a detailed step-by-step presentation can be found here. Example Mathematica and Python codes can be found here. For this part we follow the classic papers by Ma and Bertschinger and Sapone and Kunz.


CLASS and CAMB:
1) You can get CLASS from here or from github.
2) You can get CAMB from here or from github.
3) Plots of the output of CLASS and CAMB can be made either directly with the Python wrappers (recommended!) or with Mathematica and Python scripts. Example code can be found here. Be careful to adapt the code and start from the right row!


Projects for the student presentations at the end of the course:
Some suggested topics for the student presentations at the end of the course can be found here.


Software requirements for the programming sessions:
1) In order to use CAMB/CLASS, make sure you have the latest versions of gcc, gfortran, g++ and make. Windows users see the instructions below, Linux/MacOs users just use your favorite package manager.
2) Solving the fluid ODEs and plotting CMB spectra can also be done in Mathematica. Use at least version 10+.
3) If you want to do calculations in Python (solving ODEs or plotting CMB spectra), use at least version 2.7 with the following packages: numpy, scipy, pylab, matplotlib. For plots alternatively you can also use gnuplot.
4) A list of basic Unix commands can be found eg here.


Instructions for Windows users:
1) Go to the website of the Cygwin project here and download the 64-bit installer setup-x86_64.exe.
2) Run the installer and choose all the default settings until you reach a window with many packages. Of those make sure you choose: gcc-core, gcc-fortran, gcc-g++, libgcc1, make and the bash shell. If you also want python, make sure you choose it in the installer.
3) Click next and let it download everything. If you get an error or failed downloads, try changing the mirror. After it's done the installer will create an icon on the desktop. Click it and now you will have a fully armed and operational command line!
4) A list of basic Unix commands can be found eg here.


Instructions for MacOs users:
1) To compile the CLASS code with Clang on MacOs systems, remove the fopenmp flag from the makefile.
2) If this doesn't work, trying installing gcc from Homebrew etc.