From fce0e7f2f38f6df4e13c85a64586fb830f8cc081 Mon Sep 17 00:00:00 2001 From: Nils Berglund <83530463+nilsberglund-orleans@users.noreply.github.com> Date: Sat, 2 Sep 2023 11:39:25 +0200 Subject: [PATCH] Delete Parameters_October23.md --- Parameters_October23.md | 606 ---------------------------------------- 1 file changed, 606 deletions(-) delete mode 100644 Parameters_October23.md diff --git a/Parameters_October23.md b/Parameters_October23.md deleted file mode 100644 index f20add3..0000000 --- a/Parameters_October23.md +++ /dev/null @@ -1,606 +0,0 @@ - ### Parameter values for YouTube simulations ### - -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. - - -### 5 October 23 - ### - -**Program:** `` - -**Initial condition in function `animation()`:** ` ` - -``` - -``` - -### 4 October 23 - Waves with cubic symmetry on a sphere, 2D representation ### - -**Program:** `wave_sphere.c` - -**Initial condition in function `animation()`:** - -``` - init_wave_flat_sphere(phi, psi, xy_in, wsphere); - - for (j=0; j<3; j++) - { - a = circ_sphere[4].x; - b = circ_sphere[4].y; - c = 1.0 + circ_sphere[4].z; - theta = acos(c/sqrt(a*a + b*b + c*c)); - add_circular_wave_sphere(1.0,(double)j*DPI/3.0, PID - theta, phi, psi, xy_in, wsphere); - add_circular_wave_sphere(1.0,(double)j*DPI/3.0 + PI/3.0, theta - PID, phi, psi, xy_in, wsphere); - - a = circ_sphere[1].x; - b = circ_sphere[1].y; - c = 1.0 + circ_sphere[1].z; - theta = acos(c/sqrt(a*a + b*b + c*c)); - add_circular_wave_sphere(-1.0,(double)j*DPI/3.0 + PI/3.0, PID - theta, phi, psi, xy_in, wsphere); - add_circular_wave_sphere(-1.0,(double)j*DPI/3.0, theta - PID, phi, psi, xy_in, wsphere); - - add_circular_wave_sphere(-1.0,(double)j*DPI/3.0 + PI/6.0, 0.0, phi, psi, xy_in, wsphere); - add_circular_wave_sphere(-1.0,(double)j*DPI/3.0 - PI/6.0, 0.0, phi, psi, xy_in, wsphere); - } -``` - -``` -#define MOVIE 1 /* set to 1 to generate movie */ -#define DOUBLE_MOVIE 1 /* set to 1 to produce movies for wave height and energy simultaneously */ -#define SAVE_MEMORY 1 /* set to 1 to save memory when writing tiff images */ -#define NO_EXTRA_BUFFER_SWAP 1 /* some OS require one less buffer swap when recording images */ - -/* General geometrical parameters */ - -#define WINWIDTH 1920 /* window width */ -#define WINHEIGHT 1150 /* window height */ -#define NX 2000 /* number of grid points on x axis */ -#define NY 1000 /* number of grid points on y axis */ - -#define DPOLE 15 /* safety distance to poles */ -#define SMOOTHPOLE 0.0 /* smoothing coefficient at poles */ - -#define XMIN -2.0 -#define XMAX 2.0 /* x interval */ -#define YMIN -1.041666667 -#define YMAX 1.041666667 /* y interval for 9/16 aspect ratio */ - -#define HIGHRES 0 /* set to 1 if resolution of grid is double that of displayed image */ - -#define JULIA_SCALE 0.25 /* scaling for Julia sets */ -#define JULIA_ROT 90.0 /* rotation of Julia set, in degrees */ -#define JULIA_RE -0.77145 -#define JULIA_IM -0.10295 /* parameters for Julia sets */ - -/* Choice of the billiard table */ - -#define B_DOMAIN 81 /* choice of domain shape, see list in global_pdes.c */ - -#define CIRCLE_PATTERN 33 /* pattern of circles or polygons, see list in global_pdes.c */ - -#define COMPARISON 0 /* set to 1 to compare two different patterns */ -#define B_DOMAIN_B 20 /* second domain shape, for comparisons */ -#define CIRCLE_PATTERN_B 0 /* second pattern of circles or polygons */ - -#define VARIABLE_IOR 0 /* set to 1 for a variable index of refraction */ -#define IOR 9 /* choice of index of refraction, see list in global_pdes.c */ -#define IOR_TOTAL_TURNS 1.0 /* total angle of rotation for IOR_PERIODIC_WELLS_ROTATING */ -#define MANDEL_IOR_SCALE -0.05 /* parameter controlling dependence of IoR on Mandelbrot escape speed */ - -#define P_PERCOL 0.25 /* probability of having a circle in C_RAND_PERCOL arrangement */ -#define NPOISSON 1000 /* number of points for Poisson C_RAND_POISSON arrangement */ -#define RANDOM_POLY_ANGLE 1 /* set to 1 to randomize angle of polygons */ - -#define LAMBDA 0.75 /* parameter controlling the dimensions of domain */ -#define MU 0.1 /* parameter controlling the dimensions of domain */ -#define NPOLY 6 /* number of sides of polygon */ -#define APOLY 0.0 /* angle by which to turn polygon, in units of Pi/2 */ -#define MDEPTH 7 /* depth of computation of Menger gasket */ -#define MRATIO 3 /* ratio defining Menger gasket */ -#define MANDELLEVEL 2000 /* iteration level for Mandelbrot set */ -#define MANDELLIMIT 20.0 /* limit value for approximation of Mandelbrot set */ -#define FOCI 1 /* set to 1 to draw focal points of ellipse */ -#define NGRIDX 30 /* number of grid point for grid of disks */ -#define NGRIDY 18 /* number of grid point for grid of disks */ - -#define X_SHOOTER -0.2 -#define Y_SHOOTER -0.6 -#define X_TARGET 0.4 -#define Y_TARGET 0.7 /* shooter and target positions in laser fight */ - -#define ISO_XSHIFT_LEFT -2.9 -#define ISO_XSHIFT_RIGHT 1.4 -#define ISO_YSHIFT_LEFT -0.15 -#define ISO_YSHIFT_RIGHT -0.15 -#define ISO_SCALE 0.5 /* coordinates for isospectral billiards */ - - -/* You can add more billiard tables by adapting the functions */ -/* xy_in_billiard and draw_billiard below */ - -/* Physical parameters of wave equation */ - -#define TWOSPEEDS 0 /* set to 1 to replace hardcore boundary by medium with different speed */ -#define OSCILLATE_LEFT 0 /* set to 1 to add oscilating boundary condition on the left */ -#define OSCILLATE_TOPBOT 0 /* set to 1 to enforce a planar wave on top and bottom boundary */ -#define OSCILLATION_SCHEDULE 3 /* oscillation schedule, see list in global_pdes.c */ - -#define OMEGA 0.001 /* frequency of periodic excitation */ -#define AMPLITUDE 0.8 /* amplitude of periodic excitation */ -#define ACHIRP 0.2 /* acceleration coefficient in chirp */ -#define DAMPING 0.0 /* damping of periodic excitation */ -#define COURANT 0.05 /* Courant number */ -#define COURANTB 0.01 /* Courant number in medium B */ -#define GAMMA 0.0 /* damping factor in wave equation */ -#define GAMMAB 1.0e-6 /* damping factor in wave equation */ -#define GAMMA_SIDES 1.0e-4 /* damping factor on boundary */ -#define GAMMA_TOPBOT 1.0e-7 /* damping factor on boundary */ -#define KAPPA 0.0 /* "elasticity" term enforcing oscillations */ -#define KAPPA_SIDES 5.0e-4 /* "elasticity" term on absorbing boundary */ -#define KAPPA_TOPBOT 0.0 /* "elasticity" term on absorbing boundary */ -#define OSCIL_LEFT_YSHIFT 0.0 /* y-dependence of left oscillation (for non-horizontal waves) */ -/* The Courant number is given by c*DT/DX, where DT is the time step and DX the lattice spacing */ -/* The physical damping coefficient is given by GAMMA/(DT)^2 */ -/* Increasing COURANT speeds up the simulation, but decreases accuracy */ -/* For similar wave forms, COURANT^2*GAMMA should be kept constant */ - -#define ADD_OSCILLATING_SOURCE 0 /* set to 1 to add an oscillating wave source */ -#define OSCILLATING_SOURCE_PERIOD 30 /* period of oscillating source */ -#define ALTERNATE_OSCILLATING_SOURCE 1 /* set to 1 to alternate sign of oscillating source */ - -#define ADD_WAVE_PACKET_SOURCES 0 /* set to 1 to add several sources emitting wave packets */ -#define WAVE_PACKET_SOURCE_TYPE 1 /* type of wave packet sources */ -#define N_WAVE_PACKETS 15 /* number of wave packets */ -#define WAVE_PACKET_RADIUS 20 /* radius of wave packets */ - -/* Boundary conditions, see list in global_pdes.c */ - -#define B_COND 2 - -#define PRECOMPUTE_BC 0 /* set to 1 to compute neighbours for Laplacian in advance */ - -/* Parameters for length and speed of simulation */ - -#define NSTEPS 3600 /* number of frames of movie */ -#define NVID 4 /* number of iterations between images displayed on screen */ -#define NSEG 1000 /* number of segments of boundary */ -#define INITIAL_TIME 0 /* time after which to start saving frames */ -#define BOUNDARY_WIDTH 2 /* width of billiard boundary */ -#define PRINT_SPEED 0 /* set to 1 to print speed of moving source */ - -#define PAUSE 100 /* number of frames after which to pause */ -#define PSLEEP 3 /* sleep time during pause */ -#define SLEEP1 1 /* initial sleeping time */ -#define SLEEP2 1 /* final sleeping time */ -#define MID_FRAMES 100 /* number of still frames between parts of two-part movie */ -#define END_FRAMES 100 /* number of still frames at end of movie */ -#define FADE 1 /* set to 1 to fade at end of movie */ -#define ROTATE_VIEW_WHILE_FADE 1 /* set to 1 to keep rotating viewpoint during fade */ - -/* Parameters of initial condition */ - -#define INITIAL_AMP 0.25 /* amplitude of initial condition */ -#define INITIAL_VARIANCE 0.0005 /* variance of initial condition */ -#define INITIAL_WAVELENGTH 0.05 /* wavelength of initial condition */ - -/* Plot type, see list in global_pdes.c */ - -#define ZPLOT 103 /* wave height */ -#define CPLOT 103 /* color scheme */ - -#define ZPLOT_B 112 -#define CPLOT_B 113 /* plot type for second movie */ - -#define CHANGE_LUMINOSITY 1 /* set to 1 to let luminosity depend on energy flux intensity */ -#define FLUX_WINDOW 30 /* size of averaging window of flux intensity */ -#define AMPLITUDE_HIGH_RES 1 /* set to 1 to increase resolution of plot */ -#define SHADE_3D 0 /* set to 1 to change luminosity according to normal vector */ -#define SHADE_2D 1 /* set to 1 to change luminosity according to normal vector to plane */ -#define SHADE_WAVE 1 /* set to 1 to have luminosity depend on wave height */ -#define NON_DIRICHLET_BC 0 /* set to 1 to draw only facets in domain, if field is not zero on boundary */ -#define FLOOR_ZCOORD 1 /* set to 1 to draw only facets with z not too negative */ -#define DRAW_BILLIARD 0 /* set to 1 to draw boundary */ -#define DRAW_BILLIARD_FRONT 0 /* set to 1 to draw front of boundary after drawing wave */ -#define DRAW_CONSTRUCTION_LINES 0 /* set to 1 to draw construction lines of certain domains */ -#define FADE_IN_OBSTACLE 1 /* set to 1 to fade color inside obstacles */ -#define DRAW_OUTSIDE_GRAY 0 /* experimental, draw outside of billiard in gray */ -#define SHADE_SCALE_2D 10.0 /* controls "depth" of 2D shading */ -#define COS_LIGHT_MIN 0.0 /* controls angle-dependence of 2D shading */ -#define COS_LIGHT_MAX 0.8 /* controls angle-dependence of 2D shading */ - -#define PLOT_SCALE_ENERGY 0.4 /* vertical scaling in energy plot */ -#define PLOT_SCALE_LOG_ENERGY 0.5 /* vertical scaling in log energy plot */ - -/* 3D representation */ - -#define REPRESENTATION_3D 1 /* choice of 3D representation */ -#define PLOT_2D 1 /* switch to 2D representation, equirectangular projection */ -#define PHISHIFT 0.0 /* shift of phi in 2D plot (in degrees) */ - -#define REP_AXO_3D 0 /* linear projection (axonometry) */ -#define REP_PROJ_3D 1 /* projection on plane orthogonal to observer line of sight */ - -#define ROTATE_VIEW 1 /* set to 1 to rotate position of observer */ -#define ROTATE_ANGLE 360.0 /* total angle of rotation during simulation */ - -#define VIEWPOINT_TRAJ 1 /* type of viewpoint trajectory */ - -/* Color schemes */ - -#define COLOR_PALETTE 14 /* Color palette, see list in global_pdes.c */ -#define COLOR_PALETTE_B 0 /* Color palette, see list in global_pdes.c */ - -#define BLACK 1 /* background */ -#define COLOR_OUT_R 1.0 /* color outside domain */ -#define COLOR_OUT_G 1.0 -#define COLOR_OUT_B 1.0 - -#define COLOR_SCHEME 3 /* choice of color scheme, see list in global_pdes.c */ - -#define SCALE 0 /* set to 1 to adjust color scheme to variance of field */ -#define SLOPE 1.0 /* sensitivity of color on wave amplitude */ -#define VSCALE_AMPLITUDE 1.5 /* additional scaling factor for color scheme P_3D_AMPLITUDE */ -#define VSCALE_ENERGY 4.0 /* additional scaling factor for color scheme P_3D_ENERGY */ -#define PHASE_FACTOR 20.0 /* factor in computation of phase in color scheme P_3D_PHASE */ -#define PHASE_SHIFT 0.0 /* shift of phase in color scheme P_3D_PHASE */ -#define ATTENUATION 0.0 /* exponential attenuation coefficient of contrast with time */ -#define E_SCALE 150.0 /* scaling factor for energy representation */ -#define LOG_SCALE 0.75 /* scaling factor for energy log representation */ -#define LOG_SHIFT 0.5 /* shift of colors on log scale */ -#define LOG_ENERGY_FLOOR -10.0 /* floor value for log of (total) energy */ -#define LOG_MEAN_ENERGY_SHIFT 1.0 /* additional shift for log of mean energy */ -#define FLUX_SCALE 1200.0 /* scaling factor for energy flux representation */ -#define FLUX_CSCALE 2.0 /* scaling factor for color in energy flux representation */ -#define RESCALE_COLOR_IN_CENTER 0 /* set to 1 to decrease color intentiy in the center (for wave escaping ring) */ - -#define COLORHUE 260 /* initial hue of water color for scheme C_LUM */ -#define COLORDRIFT 0.0 /* how much the color hue drifts during the whole simulation */ -#define LUMMEAN 0.5 /* amplitude of luminosity variation for scheme C_LUM */ -#define LUMAMP 0.3 /* amplitude of luminosity variation for scheme C_LUM */ -#define HUEMEAN 240.0 /* mean value of hue for color scheme C_HUE */ -#define HUEAMP -200.0 /* amplitude of variation of hue for color scheme C_HUE */ - -#define NXMAZE 8 /* width of maze */ -#define NYMAZE 32 /* height of maze */ -#define MAZE_MAX_NGBH 5 /* max number of neighbours of maze cell */ -#define RAND_SHIFT 5 /* seed of random number generator */ -#define MAZE_XSHIFT 0.0 /* horizontal shift of maze */ -#define MAZE_WIDTH 0.02 /* half width of maze walls */ - -#define DRAW_COLOR_SCHEME 0 /* set to 1 to plot the color scheme */ -#define COLORBAR_RANGE 3.0 /* scale of color scheme bar */ -#define COLORBAR_RANGE_B 2.0 /* scale of color scheme bar for 2nd part */ -#define ROTATE_COLOR_SCHEME 0 /* set to 1 to draw color scheme horizontally */ -#define CIRC_COLORBAR 0 /* set to 1 to draw circular color scheme */ -#define CIRC_COLORBAR_B 0 /* set to 1 to draw circular color scheme */ - -#define DRAW_WAVE_PROFILE 0 /* set to 1 to draw a profile of the wave */ -#define SAVE_TIME_SERIES 0 /* set to 1 to save wave time series at a point */ - -#define ADD_POTENTIAL 0 /* set to 1 to add potential to z coordinate */ -#define POTENTIAL 10 -#define POT_FACT 20.0 -/* end of constants only used by sub_wave and sub_maze */ - - -/* For debugging purposes only */ -#define FLOOR 1 /* set to 1 to limit wave amplitude to VMAX */ -#define VMAX 10.0 /* max value of wave amplitude */ - -/* Parameters controlling 3D projection */ - -double u_3d[2] = {0.75, -0.45}; /* projections of basis vectors for REP_AXO_3D representation */ -double v_3d[2] = {-0.75, -0.45}; -double w_3d[2] = {0.0, 0.015}; -double light[3] = {-0.40824829, 0.40824829, 0.816496581}; /* vector of "light" direction for P_3D_ANGLE color scheme */ -double observer[3] = {5.0, -10.0, -7.0}; /* location of observer for REP_PROJ_3D representation */ -int reset_view = 0; /* switch to reset 3D view parameters (for option ROTATE_VIEW) */ - -#define RSCALE 0.01 /* scaling factor of radial component */ -#define RMAX 5.0 /* max value of radial component */ -#define Z_SCALING_FACTOR 0.85 /* overall scaling factor of z axis for REP_PROJ_3D representation */ -#define XY_SCALING_FACTOR 2.0 /* overall scaling factor for on-screen (x,y) coordinates after projection */ -#define ZMAX_FACTOR 1.0 /* max value of z coordinate for REP_PROJ_3D representation */ -#define XSHIFT_3D 0.0 /* overall x shift for REP_PROJ_3D representation */ -#define YSHIFT_3D 0.0 /* overall y shift for REP_PROJ_3D representation */ -#define COS_VISIBLE -0.5 /* limit on cosine of normal to shown facets */ - -``` - -### 3 October 23 - ### - -**Program:** `` - -**Initial condition in function `animation()`:** ` ` - -``` - -``` - -### 2 October 23 - ### - -**Program:** `wave_sphere.c` - -**Initial condition in function `animation()`:** - -``` - init_wave_flat_sphere(phi, psi, xy_in, wsphere); - - theta = asin(1.0/sqrt(3.0)); - for (j=0; j<4; j++) - { - if (j%2 == 0) amp = 1.0; - else amp = -1.0; - add_circular_wave_sphere(amp,((double)j+0.5)*PID, theta, phi, psi, xy_in, wsphere); - add_circular_wave_sphere(-amp,((double)j+0.5)*PID, -theta, phi, psi, xy_in, wsphere); - } - -``` - -``` -#define MOVIE 1 /* set to 1 to generate movie */ -#define DOUBLE_MOVIE 1 /* set to 1 to produce movies for wave height and energy simultaneously */ -#define SAVE_MEMORY 1 /* set to 1 to save memory when writing tiff images */ -#define NO_EXTRA_BUFFER_SWAP 1 /* some OS require one less buffer swap when recording images */ - -/* General geometrical parameters */ - -#define WINWIDTH 1920 /* window width */ -#define WINHEIGHT 1150 /* window height */ -#define NX 1920 /* number of grid points on x axis */ -#define NY 1180 /* number of grid points on y axis */ - -#define DPOLE 15 /* safety distance to poles */ -#define SMOOTHPOLE 0.0 /* smoothing coefficient at poles */ - -#define XMIN -2.0 -#define XMAX 2.0 /* x interval */ -#define YMIN -1.041666667 -#define YMAX 1.041666667 /* y interval for 9/16 aspect ratio */ - -#define HIGHRES 0 /* set to 1 if resolution of grid is double that of displayed image */ - -#define JULIA_SCALE 0.4 /* scaling for Julia sets */ -#define JULIA_RE 0.37468 -#define JULIA_IM 0.21115 /* parameters for Julia sets */ - -/* Choice of the billiard table */ - -#define B_DOMAIN 81 /* choice of domain shape, see list in global_pdes.c */ - -#define CIRCLE_PATTERN 32 /* pattern of circles or polygons, see list in global_pdes.c */ - -#define COMPARISON 0 /* set to 1 to compare two different patterns */ -#define B_DOMAIN_B 20 /* second domain shape, for comparisons */ -#define CIRCLE_PATTERN_B 0 /* second pattern of circles or polygons */ - -#define VARIABLE_IOR 0 /* set to 1 for a variable index of refraction */ -#define IOR 9 /* choice of index of refraction, see list in global_pdes.c */ -#define IOR_TOTAL_TURNS 1.0 /* total angle of rotation for IOR_PERIODIC_WELLS_ROTATING */ -#define MANDEL_IOR_SCALE -0.05 /* parameter controlling dependence of IoR on Mandelbrot escape speed */ - -#define P_PERCOL 0.25 /* probability of having a circle in C_RAND_PERCOL arrangement */ -#define NPOISSON 1000 /* number of points for Poisson C_RAND_POISSON arrangement */ -#define RANDOM_POLY_ANGLE 1 /* set to 1 to randomize angle of polygons */ - -#define LAMBDA 0.75 /* parameter controlling the dimensions of domain */ -#define MU 0.1 /* parameter controlling the dimensions of domain */ -#define NPOLY 6 /* number of sides of polygon */ -#define APOLY 0.0 /* angle by which to turn polygon, in units of Pi/2 */ -#define MDEPTH 7 /* depth of computation of Menger gasket */ -#define MRATIO 3 /* ratio defining Menger gasket */ -#define MANDELLEVEL 2000 /* iteration level for Mandelbrot set */ -#define MANDELLIMIT 20.0 /* limit value for approximation of Mandelbrot set */ -#define FOCI 1 /* set to 1 to draw focal points of ellipse */ -#define NGRIDX 30 /* number of grid point for grid of disks */ -#define NGRIDY 18 /* number of grid point for grid of disks */ - -#define X_SHOOTER -0.2 -#define Y_SHOOTER -0.6 -#define X_TARGET 0.4 -#define Y_TARGET 0.7 /* shooter and target positions in laser fight */ - -#define ISO_XSHIFT_LEFT -2.9 -#define ISO_XSHIFT_RIGHT 1.4 -#define ISO_YSHIFT_LEFT -0.15 -#define ISO_YSHIFT_RIGHT -0.15 -#define ISO_SCALE 0.5 /* coordinates for isospectral billiards */ - - -/* You can add more billiard tables by adapting the functions */ -/* xy_in_billiard and draw_billiard below */ - -/* Physical parameters of wave equation */ - -#define TWOSPEEDS 0 /* set to 1 to replace hardcore boundary by medium with different speed */ -#define OSCILLATE_LEFT 0 /* set to 1 to add oscilating boundary condition on the left */ -#define OSCILLATE_TOPBOT 0 /* set to 1 to enforce a planar wave on top and bottom boundary */ -#define OSCILLATION_SCHEDULE 3 /* oscillation schedule, see list in global_pdes.c */ - -#define OMEGA 0.001 /* frequency of periodic excitation */ -#define AMPLITUDE 0.8 /* amplitude of periodic excitation */ -#define ACHIRP 0.2 /* acceleration coefficient in chirp */ -#define DAMPING 0.0 /* damping of periodic excitation */ -#define COURANT 0.05 /* Courant number */ -#define COURANTB 0.01 /* Courant number in medium B */ -#define GAMMA 0.0 /* damping factor in wave equation */ -#define GAMMAB 1.0e-6 /* damping factor in wave equation */ -#define GAMMA_SIDES 1.0e-4 /* damping factor on boundary */ -#define GAMMA_TOPBOT 1.0e-7 /* damping factor on boundary */ -#define KAPPA 0.0 /* "elasticity" term enforcing oscillations */ -#define KAPPA_SIDES 5.0e-4 /* "elasticity" term on absorbing boundary */ -#define KAPPA_TOPBOT 0.0 /* "elasticity" term on absorbing boundary */ -#define OSCIL_LEFT_YSHIFT 0.0 /* y-dependence of left oscillation (for non-horizontal waves) */ -/* The Courant number is given by c*DT/DX, where DT is the time step and DX the lattice spacing */ -/* The physical damping coefficient is given by GAMMA/(DT)^2 */ -/* Increasing COURANT speeds up the simulation, but decreases accuracy */ -/* For similar wave forms, COURANT^2*GAMMA should be kept constant */ - -#define ADD_OSCILLATING_SOURCE 0 /* set to 1 to add an oscillating wave source */ -#define OSCILLATING_SOURCE_PERIOD 30 /* period of oscillating source */ -#define ALTERNATE_OSCILLATING_SOURCE 1 /* set to 1 to alternate sign of oscillating source */ - -#define ADD_WAVE_PACKET_SOURCES 0 /* set to 1 to add several sources emitting wave packets */ -#define WAVE_PACKET_SOURCE_TYPE 1 /* type of wave packet sources */ -#define N_WAVE_PACKETS 15 /* number of wave packets */ -#define WAVE_PACKET_RADIUS 20 /* radius of wave packets */ - -/* Boundary conditions, see list in global_pdes.c */ - -#define B_COND 2 - -#define PRECOMPUTE_BC 0 /* set to 1 to compute neighbours for Laplacian in advance */ - -/* Parameters for length and speed of simulation */ - -#define NSTEPS 3900 /* number of frames of movie */ -#define NVID 4 /* number of iterations between images displayed on screen */ -#define NSEG 1000 /* number of segments of boundary */ -#define INITIAL_TIME 0 /* time after which to start saving frames */ -#define BOUNDARY_WIDTH 2 /* width of billiard boundary */ -#define PRINT_SPEED 0 /* set to 1 to print speed of moving source */ - -#define PAUSE 100 /* number of frames after which to pause */ -#define PSLEEP 3 /* sleep time during pause */ -#define SLEEP1 1 /* initial sleeping time */ -#define SLEEP2 1 /* final sleeping time */ -#define MID_FRAMES 100 /* number of still frames between parts of two-part movie */ -#define END_FRAMES 100 /* number of still frames at end of movie */ -#define FADE 1 /* set to 1 to fade at end of movie */ -#define ROTATE_VIEW_WHILE_FADE 1 /* set to 1 to keep rotating viewpoint during fade */ - -/* Parameters of initial condition */ - -#define INITIAL_AMP 0.25 /* amplitude of initial condition */ -#define INITIAL_VARIANCE 0.0005 /* variance of initial condition */ -#define INITIAL_WAVELENGTH 0.05 /* wavelength of initial condition */ - -/* Plot type, see list in global_pdes.c */ - -#define ZPLOT 103 /* wave height */ -#define CPLOT 103 /* color scheme */ - -#define ZPLOT_B 108 -#define CPLOT_B 108 /* plot type for second movie */ - -#define CHANGE_LUMINOSITY 1 /* set to 1 to let luminosity depend on energy flux intensity */ -#define FLUX_WINDOW 30 /* size of averaging window of flux intensity */ -#define AMPLITUDE_HIGH_RES 1 /* set to 1 to increase resolution of plot */ -#define SHADE_3D 0 /* set to 1 to change luminosity according to normal vector */ -#define SHADE_2D 1 /* set to 1 to change luminosity according to normal vector to plane */ -#define SHADE_WAVE 1 /* set to 1 to have luminosity depend on wave height */ -#define NON_DIRICHLET_BC 0 /* set to 1 to draw only facets in domain, if field is not zero on boundary */ -#define FLOOR_ZCOORD 1 /* set to 1 to draw only facets with z not too negative */ -#define DRAW_BILLIARD 0 /* set to 1 to draw boundary */ -#define DRAW_BILLIARD_FRONT 0 /* set to 1 to draw front of boundary after drawing wave */ -#define DRAW_CONSTRUCTION_LINES 0 /* set to 1 to draw construction lines of certain domains */ -#define FADE_IN_OBSTACLE 1 /* set to 1 to fade color inside obstacles */ -#define DRAW_OUTSIDE_GRAY 0 /* experimental, draw outside of billiard in gray */ -#define SHADE_SCALE_2D 10.0 /* controls "depth" of 2D shading */ -#define COS_LIGHT_MIN 0.0 /* controls angle-dependence of 2D shading */ -#define COS_LIGHT_MAX 0.8 /* controls angle-dependence of 2D shading */ - -#define PLOT_SCALE_ENERGY 0.4 /* vertical scaling in energy plot */ -#define PLOT_SCALE_LOG_ENERGY 0.5 /* vertical scaling in log energy plot */ - -/* 3D representation */ - -#define REPRESENTATION_3D 1 /* choice of 3D representation */ -#define PLOT_2D 1 /* switch to 2D representation, equirectangular projection */ -#define PHISHIFT 0.0 /* shift of phi in 2D plot (in degrees) */ - -#define REP_AXO_3D 0 /* linear projection (axonometry) */ -#define REP_PROJ_3D 1 /* projection on plane orthogonal to observer line of sight */ - -#define ROTATE_VIEW 1 /* set to 1 to rotate position of observer */ -#define ROTATE_ANGLE 360.0 /* total angle of rotation during simulation */ - -#define VIEWPOINT_TRAJ 1 /* type of viewpoint trajectory */ - -/* Color schemes */ - -#define COLOR_PALETTE 12 /* Color palette, see list in global_pdes.c */ -#define COLOR_PALETTE_B 14 /* Color palette, see list in global_pdes.c */ - -#define BLACK 1 /* background */ -#define COLOR_OUT_R 1.0 /* color outside domain */ -#define COLOR_OUT_G 1.0 -#define COLOR_OUT_B 1.0 - -#define COLOR_SCHEME 3 /* choice of color scheme, see list in global_pdes.c */ - -#define SCALE 0 /* set to 1 to adjust color scheme to variance of field */ -#define SLOPE 1.0 /* sensitivity of color on wave amplitude */ -#define VSCALE_AMPLITUDE 1.5 /* additional scaling factor for color scheme P_3D_AMPLITUDE */ -#define VSCALE_ENERGY 4.0 /* additional scaling factor for color scheme P_3D_ENERGY */ -#define PHASE_FACTOR 20.0 /* factor in computation of phase in color scheme P_3D_PHASE */ -#define PHASE_SHIFT 0.0 /* shift of phase in color scheme P_3D_PHASE */ -#define ATTENUATION 0.0 /* exponential attenuation coefficient of contrast with time */ -#define E_SCALE 150.0 /* scaling factor for energy representation */ -#define LOG_SCALE 0.75 /* scaling factor for energy log representation */ -#define LOG_SHIFT 0.5 /* shift of colors on log scale */ -#define LOG_ENERGY_FLOOR -10.0 /* floor value for log of (total) energy */ -#define LOG_MEAN_ENERGY_SHIFT 1.0 /* additional shift for log of mean energy */ -#define FLUX_SCALE 2000.0 /* scaling factor for energy flux representation */ -#define FLUX_CSCALE 2.0 /* scaling factor for color in energy flux representation */ -#define RESCALE_COLOR_IN_CENTER 0 /* set to 1 to decrease color intentiy in the center (for wave escaping ring) */ - -#define COLORHUE 260 /* initial hue of water color for scheme C_LUM */ -#define COLORDRIFT 0.0 /* how much the color hue drifts during the whole simulation */ -#define LUMMEAN 0.5 /* amplitude of luminosity variation for scheme C_LUM */ -#define LUMAMP 0.3 /* amplitude of luminosity variation for scheme C_LUM */ -#define HUEMEAN 240.0 /* mean value of hue for color scheme C_HUE */ -#define HUEAMP -200.0 /* amplitude of variation of hue for color scheme C_HUE */ - -#define NXMAZE 8 /* width of maze */ -#define NYMAZE 32 /* height of maze */ -#define MAZE_MAX_NGBH 5 /* max number of neighbours of maze cell */ -#define RAND_SHIFT 5 /* seed of random number generator */ -#define MAZE_XSHIFT 0.0 /* horizontal shift of maze */ -#define MAZE_WIDTH 0.02 /* half width of maze walls */ - -#define DRAW_COLOR_SCHEME 0 /* set to 1 to plot the color scheme */ -#define COLORBAR_RANGE 3.0 /* scale of color scheme bar */ -#define COLORBAR_RANGE_B 2.0 /* scale of color scheme bar for 2nd part */ -#define ROTATE_COLOR_SCHEME 0 /* set to 1 to draw color scheme horizontally */ -#define CIRC_COLORBAR 0 /* set to 1 to draw circular color scheme */ -#define CIRC_COLORBAR_B 0 /* set to 1 to draw circular color scheme */ - -#define DRAW_WAVE_PROFILE 0 /* set to 1 to draw a profile of the wave */ -#define SAVE_TIME_SERIES 0 /* set to 1 to save wave time series at a point */ - -#define ADD_POTENTIAL 0 /* set to 1 to add potential to z coordinate */ -#define POTENTIAL 10 -#define POT_FACT 20.0 -/* end of constants only used by sub_wave and sub_maze */ - - -/* For debugging purposes only */ -#define FLOOR 1 /* set to 1 to limit wave amplitude to VMAX */ -#define VMAX 10.0 /* max value of wave amplitude */ - -/* Parameters controlling 3D projection */ - -double u_3d[2] = {0.75, -0.45}; /* projections of basis vectors for REP_AXO_3D representation */ -double v_3d[2] = {-0.75, -0.45}; -double w_3d[2] = {0.0, 0.015}; -double light[3] = {-0.40824829, 0.40824829, 0.816496581}; /* vector of "light" direction for P_3D_ANGLE color scheme */ -double observer[3] = {5.0, -10.0, -7.0}; /* location of observer for REP_PROJ_3D representation */ -int reset_view = 0; /* switch to reset 3D view parameters (for option ROTATE_VIEW) */ - -#define RSCALE 0.01 /* scaling factor of radial component */ -#define RMAX 5.0 /* max value of radial component */ -#define Z_SCALING_FACTOR 0.85 /* overall scaling factor of z axis for REP_PROJ_3D representation */ -#define XY_SCALING_FACTOR 2.0 /* overall scaling factor for on-screen (x,y) coordinates after projection */ -#define ZMAX_FACTOR 1.0 /* max value of z coordinate for REP_PROJ_3D representation */ -#define XSHIFT_3D 0.0 /* overall x shift for REP_PROJ_3D representation */ -#define YSHIFT_3D 0.0 /* overall y shift for REP_PROJ_3D representation */ -#define COS_VISIBLE -0.5 /* limit on cosine of normal to shown facets */ - -``` -