SLIDE 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI
Perlin Noise as a Turbulence Model for Particle Transport
Urs Ganse1, Rami Vainio1, Alex Ivascenko2, Felix Spanier2
1 University of Helsinki 2 North-West University Potchefstroom
SLIDE 2
Particle Transport and Turbulence
Particle transport in heliospheric and interstellar medium Test particle simulations Turbulent fields play important role.
SLIDE 3
Simulated Turbulence
Getting turbulence right is difficult. Self-consistent turbulence simulations quite limited in scales (kinetic ⇔ heliospheric) Often, effect of turbulence approximated through diffusion. Alternatively, ad-hoc model of scattering is used. We'd rather have a way to construct quasi-turbulent fields.
SLIDE 4
Simulated Turbulence
Getting turbulence right is difficult. Self-consistent turbulence simulations quite limited in scales (kinetic ⇔ heliospheric) Often, effect of turbulence approximated through diffusion. Alternatively, ad-hoc model of scattering is used. We'd rather have a way to construct quasi-turbulent fields.
SLIDE 5
Simulated Turbulence
Getting turbulence right is difficult. Self-consistent turbulence simulations quite limited in scales (kinetic ⇔ heliospheric) Often, effect of turbulence approximated through diffusion. Alternatively, ad-hoc model of scattering is used. We'd rather have a way to construct quasi-turbulent fields.
SLIDE 6
Quasi-Turbulent Fields
Simply taking random numbers gives wrong spectrum. Creating correct spectrum in Fourier space works. Again bound to a grid. Time evolution? We would like to have deterministic randomness with the correct spectrum without having to look at all space.
SLIDE 7
Quasi-Turbulent Fields
Simply taking random numbers gives wrong spectrum. Creating correct spectrum in Fourier space works. Again bound to a grid. Time evolution? We would like to have deterministic randomness with the correct spectrum without having to look at all space.
SLIDE 8
Quasi-Turbulent Fields
Simply taking random numbers gives wrong spectrum. Creating correct spectrum in Fourier space works. Again bound to a grid. Time evolution? We would like to have deterministic randomness with the correct spectrum without having to look at all space.
SLIDE 9
Perlin Noise
Idea from computer graphics Developed by Ken Perlin for the movie ''Tron'' (Disney, 1982) Originally a cloud-texture generator. Structures of fixed scale.
SLIDE 10
Perlin Noise
Idea from computer graphics Developed by Ken Perlin for the movie ''Tron'' (Disney, 1982) Originally a cloud-texture generator. Structures of fixed scale.
SLIDE 11
Perlin Noise
Idea from computer graphics Developed by Ken Perlin for the movie ''Tron'' (Disney, 1982) Originally a cloud-texture generator. Structures of fixed scale.
SLIDE 12
Perlin Noise
Idea from computer graphics Developed by Ken Perlin for the movie ''Tron'' (Disney, 1982) Originally a cloud-texture generator. Structures of fixed scale.
SLIDE 13
Perlin Noise - internals
Pick deterministic gradients on grid, interpolate using Hermite polynomial. Original Perlin Noise (1982): Simplex Noise (2001):
SLIDE 14
Perlin Noise - internals
Pick deterministic gradients on grid, interpolate using Hermite polynomial. Original Perlin Noise (1982): Simplex Noise (2001):
SLIDE 15
Perlin Noise - internals
Pick deterministic gradients on grid, interpolate using Hermite polynomial. Original Perlin Noise (1982): Simplex Noise (2001):
SLIDE 16
Perlin Noise - internals
Pick deterministic gradients on grid, interpolate using Hermite polynomial. Original Perlin Noise (1982): Simplex Noise (2001):
SLIDE 17
Perlin Noise - internals
Pick deterministic gradients on grid, interpolate using Hermite polynomial. Original Perlin Noise (1982): Simplex Noise (2001):
SLIDE 18
Implementation Details
Advantage: Interpolation is completely local within one grid cell. Grid values are not stored, but calculated on-demand by a (cheap) hash function. Completely independent evaluation, trivially parallel. Not just suitable for GPUs - GPUs were designed for this. Spatial size is not inherently limited, except by floating point accuracy.
SLIDE 19
Noise Octaves
One evaluation Multiple octaves, stacked
SLIDE 20
Noise Octaves
One evaluation Multiple octaves, stacked
SLIDE 21
Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave
SLIDE 22
Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave 2 Octaves
SLIDE 23
Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave 2 Octaves 3 Octaves
SLIDE 24
Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave 2 Octaves 3 Octaves 5 Octaves
SLIDE 25
Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave 2 Octaves 3 Octaves 5 Octaves 10 Octaves
SLIDE 26 Spectrum
0.001 0.01 0.1 1 10 100 1000 10000 100000 1 10 100 1000 B (arb. units) Lengthscale (arb. units) 1 Octave 2 Octaves 3 Octaves 5 Octaves 10 Octaves
SLIDE 27
From Noise to Turbulent Fields
But these are still scalar noise functions! How do we get B-Fields from it? Dumb approach: 3 independent evaluations for 3 components Not divergence free Smarter: 3 independent evaluations for A B A · B · A
SLIDE 28
From Noise to Turbulent Fields
But these are still scalar noise functions! How do we get B-Fields from it? Dumb approach: 3 independent evaluations for 3 components Not divergence free Smarter: 3 independent evaluations for A B A · B · A
SLIDE 29 From Noise to Turbulent Fields
But these are still scalar noise functions! How do we get B-Fields from it? Dumb approach: 3 independent evaluations for 3 components Not divergence free Smarter: 3 independent evaluations for A
A ⇒ ∇ · B = ∇ · (∇ × A) = 0
SLIDE 30 From Noise to Turbulent Fields
x) = ∇ × A( x) Isotropic in flat coordinate space. Anisotropy can be obtained by distorting coordinates.
SLIDE 31 From Noise to Turbulent Fields
x) = ∇ × A( x) Isotropic in flat coordinate space. Anisotropy can be obtained by distorting coordinates.
SLIDE 32
From Noise to Turbulent Fields
Weak Turbulence 3D noise advected along the background field. Or: One resting, one moving at +vA, one moving at −vA Strong Turbulence 4D noise, with 4th coordinate increasing with time.
SLIDE 33 Field Autocorrelation
0⨯100 20⨯103 40⨯103 60⨯103 80⨯103 100⨯103 120⨯103 140⨯103 160⨯103 180⨯103 200⨯103 5e-07 1e-06 1.5e-06 2e-06 2.5e-06 <B(t),B(t+Δt)> (arb. units) Δt (s) Perlin Noise Spectral MHD
SLIDE 34 Pitch Angle Scattering
0.1 0.2 0.3 0.4
0.5 1 Δμ μ Pitch angle scattering, Perlin Noise
SLIDE 35 Application
BU BD
width
Test particle simulations of particle accel. at shocks Kinetic scale structures Perlin Noise based turbulence
SLIDE 36 Application
BU BD
width
Test particle simulations of particle accel. at shocks Kinetic scale structures Perlin Noise based turbulence
0.5 1 1.5 2 2.5 3 3.5 Shock Compression tanh tanh+noise gibbs
SLIDE 37 Preliminary results
ΘBn = 30°
0.0 1.0k v∥ (km/s) 100 101 102 103 104 105 106 107 ΘBn = 30°
0.0 1.0k v∥ (km/s)
SLIDE 38 Preliminary results
ΘBn = 30°
0.0 1.0k v∥ (km/s) 100 101 102 103 104 105 106 107 ΘBn = 30°
0.0 1.0k v∥ (km/s)
SLIDE 39
Conclusion
Perlin Noise Perlin Noise is a suitable way to create something like turbulence. Versatile and computationally inexpensive. Outlook Further quantitative comparison to actual turbulence. Application to test-particle simulations of different scenarios.