This is an old revision of the document!
ESC202:Spring 2021: Monday Zoom Lecture: 13:00-14:00 Exercises: 14:00-17:00 in MS-Teams
TAs: Stefan Schafroth and Sebastian Schulz
Dear Students, Communication will take place via this web-site, including assignments. Video lectures are provided below and the pdf of the lecture notes can be found here. The lectures will use Zoom and the assignments session will use MS-Teams as in the last semester. Many thanks!
Joachim Stadel
Videos for the lectures can be found here (they are too large for my Wiki):
22. Feb. 2021: Tree Structures and Dimensional Searching
01. Mar. 2021: Nearest Neighbor Searching
08. Mar. 2021: k-Nearest Neighbor Searching and SPH intro
In order to qualify for the final semester project and a passing grade you will need to hand in 80% satisfactory assignments (to the satisfaction of the TAs). Assignments should be individual and should be in python and provide a correct virtual environment!
For help getting started with virtual environments, please read carefully Python Virtual Environments for Pip and Python Virtual Environments for Conda.
You should email 3 things to Sebastian (sebastian.schulz@uzh.ch):
Template: template.zip
Instructions:
Please add the names of the people you work together (if you do) to the comment section of your python scripts.
Create a virtual environment using
Pip
- run virtualenv yourenv_name to create a virtual environment
- run source yourenv_name/bin/activate to activate yourenv_name
- install necessary libraries that you want using pip install package_name
- work in that directory, get your outputs (*.pdf, *.png, *jpeg, *.mp4, etc…)
- run pip freeze > requirements.txt to get your list of libraries
Conda
- run conda create -n yourenvname python=x.x anaconda to create a virtual environment
- run source activate yourenvname to activate yourenv_name
- install necessary libraries that you want using conda install -n yourenv_name package_name
- work in that directory, get your outputs (*.pdf, *.png, *jpeg, *.mp4, etc…)
- run conda list –export > requirements.txt to get your list of libraries
1. Build a binary tree of cells using the partitioning of particles function we introduced in class. The hard part is making sure your partition function is really bomb proof, check all “edge cases” (e.g., no particles in the cell, all particles on one side or other of the partition, already partitioned data, particles in the inverted order of the partition, etc…). Once you have this, then recursively partition the partitions and build cells linked into a tree as you go. Partition alternately in x and y dimensions, or simply partition the longest dimension of the given cell.
2. For each particle find (count) all the neighbor particles within some ball radius (small compared to the root cell size). How long does it take? How does it scale as you increase the number of particles, N, in the domain? Explain which method of intersection tests you used in your implementation.
3. For each particle calculate the “top-hat” density from the 32 nearest neighbors and plot it using a colormap. Use first a linear search priority queue to get things working and then substitute a heap algorithm to implement “replace” and “max” functions. We will need the density to implement SPH so it needs to be well tested. Also, make sure it can work with periodic boundary conditions!