from heavy (high cost) hyperedges, as heavy hyperedges have the tendency to pull the vertices contained in them closer together when we try to find the energy minimum, and then merging the matched vertices. To prevent star hypergraphs from forming (which disrupt this matching procedure [@Davis2010]) we also always match single-neighbor vertices to their neighbor. Coarsening a hypergraph $G$ to a hypergraph $H$ in this way, we obtain a surjective map $\pi : V_G \rightarrow V_H$ which maps each collection of matched vertices of $G$ to a single vertex of $H$. We also merge hyperedges $e, e' \in E_G$ satisfying $\pi(e) = \pi(e')$ (where $\pi(e) = \{\pi(v) {\ |\ }v \in e\}$) to a single hyperedge and set the cost of this new hyperedge to the sum of the costs of $e$ and $e'$. At of , we introduce the **parallel do** construct. We use it to denote parallel for-loops that can directly be parallelized because their iterations are independent.

For the coarsest version of the hypergraph, we start out with a random visual representation, which is then improved by using the steepest descent method. After the visual representation has been improved for the coarse hypergraph we scale it and 