Created by **Nils Berglund** and optimized by **Marco Mancini** C code for videos on YouTube Channel https://www.youtube.com/c/NilsBerglund Below are parameter values used for different simulations, as well as initial conditions used in function animation. Some simulations use variants of the published code. The list is going to be updated gradually. ### 31 October 2024 - Pulsing sources on an icosahedron with large obstacles ### **Program:** `wave_sphere.c` **Initial condition in function `animation()`:** ``` init_wave_flat_sphere(phi, psi, xy_in, wsphere); for (j=0; j<5; j++) { a = circ_sphere[1].x + circ_sphere[2].x; b = circ_sphere[1].y + circ_sphere[2].y; c = 1.0 + circ_sphere[1].z + circ_sphere[2].z; theta = acos(c/sqrt(a*a + b*b + c*c)); wave_source_x[4*j] = (double)j*DPI/5.0; wave_source_y[4*j] = PID - theta; wave_source_x[4*j+1] = (double)j*DPI/5.0 + PI/5.0; wave_source_y[4*j+1] = theta - PID; a = circ_sphere[1].x + circ_sphere[2].x + circ_sphere[6].x; b = circ_sphere[1].y + circ_sphere[2].y + circ_sphere[6].y; c = circ_sphere[1].z + circ_sphere[2].z + circ_sphere[6].z; theta = acos(c/sqrt(a*a + b*b + c*c)); wave_source_x[4*j+2] = (double)j*DPI/5.0 + PI/5.0; wave_source_y[4*j+2] = theta - PID; wave_source_x[4*j+3] = (double)j*DPI/5.0; wave_source_y[4*j+3] = PID - theta; } /* add oscillating waves */ if ((ADD_OSCILLATING_SOURCE)&&(i%OSCILLATING_SOURCE_PERIOD == 1)) { if (ALTERNATE_OSCILLATING_SOURCE) sign = -sign; for (j=0; j