Go to file
nilsberglund-orleans 39a399009a
Update README.md
2021-09-28 23:01:26 +02:00
drop_billiard.c Add files via upload 2021-09-26 16:47:29 +02:00
global_particles.c Add files via upload 2021-09-26 16:47:29 +02:00
global_pdes.c Add files via upload 2021-09-26 16:47:29 +02:00
heat.c Add files via upload 2021-08-15 11:49:37 +02:00
LICENSE Initial commit 2021-05-02 09:00:33 +02:00
mangrove.c Add files via upload 2021-09-26 16:51:51 +02:00
Parameters_April21.md Add files via upload 2021-08-03 16:16:14 +02:00
Parameters_August21.md Add files via upload 2021-09-01 17:11:59 +02:00
Parameters_July21.md Add files via upload 2021-07-31 12:54:28 +02:00
Parameters_June21.md Add files via upload 2021-08-01 14:53:47 +02:00
Parameters_May21.md Add files via upload 2021-08-01 15:26:37 +02:00
Parameters.md Update Parameters.md 2021-09-27 22:20:52 +02:00
particle_billiard.c Add files via upload 2021-09-26 16:47:29 +02:00
particle_pinball.c Add files via upload 2021-09-27 18:15:19 +02:00
README.md Update README.md 2021-09-28 23:01:26 +02:00
schrodinger.c Add files via upload 2021-08-15 11:49:37 +02:00
sub_part_billiard.c Add files via upload 2021-09-26 16:47:29 +02:00
sub_wave_comp.c Add files via upload 2021-09-01 17:03:02 +02:00
sub_wave.c Add files via upload 2021-09-26 16:47:29 +02:00
wave_billiard.c Add files via upload 2021-09-26 16:47:29 +02:00
wave_common.c Add files via upload 2021-09-26 16:47:29 +02:00
wave_comparison.c Add files via upload 2021-09-26 16:47:29 +02:00
wave_energy.c Add files via upload 2021-09-26 17:23:38 +02:00

Tool to create videos of particles or waves in different 2D domains.

Created by Nils Berglund and optimized by Marco Mancini

C code for videos on YouTube Channel https://www.youtube.com/c/NilsBerglund

Parameter values used in specific simulations will be gradually added to file Parameters.md, Parameters_June21.md and so on.

There are two groups of 5 files and 10 files:

Simulations of classical particles in billiards.

  1. global_particles.c: global variables and parameters
  2. sub_part_billiard.c: drawing/computation routines common to particle_billiard and drop_billiard
  3. particle_billiard.c: simulation of a collection of non-interacting particles in a billiard
  4. drop_billiard.c: simulation of an expanding front of particles
  5. particle_pinball.c: variant of particle_billiard with some extra statistics plots
  • Create subfolders tif_part, tif_drop
  • Customize constants at beginning of .c file
  • Compile with

gcc -o particle_billiard particle_billiard.c-O3 -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut

gcc -o drop_billiard drop_billiard.c-O3 -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut

  • Many laptops claim to have 4 cores, but two of those are virtual. OMP acceleration may be more effective after executing

export OMP_NUM_THREADS=2

in the shell before running the program

  • Generate movie with

ffmpeg -i part.%05d.tif -vcodec libx264 part.mp4

Simulations of wave equation, heat equation and Schrodinger equation.

  1. global_pdes.c: global variables and parameters
  2. sub_wave.c: drawing/computation routines common to wave_billiard, heat and schrodinger
  3. sub_wave_comp.c: some modified functions needed by wave_comparison
  4. common_wave.c: common functions of wave_billiard and wave_comparison
  5. wave_billiard.c: simulation of the (linear) wave equation
  6. wave_comparison.c: comparison of the wave equation in two different domains
  7. wave_energy.c: a version of wave_billiard plotting the energy profile of the wave
  8. mangrove.c: a version of wave_billiard with additional features to animate mangroves
  9. heat.c: simulation of the heat equation, with optional drawing of gradient field lines
  10. schrodinger.c: simulation of the Schrodinger equation
  • Create subfolders tif_wave, tif_heat, tif_schrod
  • Customize constants at beginning of .c file
  • Compile with

gcc -o wave_billiard wave_billiard.c -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut -O3 -fopenmp

gcc -o wave_comparison wave_comparison.c -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut -O3 -fopenmp

gcc -o heat heat.c -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut -O3 -fopenmp

gcc -o schrodinger schrodinger.c -L/usr/X11R6/lib -ltiff -lm -lGL -lGLU -lX11 -lXmu -lglut -O3 -fopenmp

  • Many laptops claim to have 4 cores, but two of those are virtual. OMP acceleration may be more effective after executing

export OMP_NUM_THREADS=2

in the shell before running the program

  • Generate movie with

ffmpeg -i wave.%05d.tif -vcodec libx264 wave.mp4

Some references