Simulating Incompressible Flows with Smoothed Particle

advertisement
Acoustic Modeling of
Reverberation using Smoothed
Particle Hydrodynamics
Thomas Wolfe and SK Semwal
Department of Computer Science
University of Colorado, Colorado Springs.
Introduction
Presentation Itinerary









Goals
Motivation
Reverberation
Smoothed Particle Hydrodynamics
New Algorithms
Implementation
Results
Possible Future Work
Conclusion
Goals of the Research

Is SPH is a viable method for simulation of
sound waves?

Can we accurately simulate complex
environments for the sound to interact with?

Is SPH robust enough to allow materials with
different acoustic response properties?
Motivation

Create reverberation effects for music.

Expose strengths and weaknesses of SPH as an
acoustic modeling platform.

Acoustic modeling




Music industry
Architecture
Engineering
Auto and marine industries
Reverberation
What Is Reverberation?




Natural property of enclosed spaces.
Sound continues to echo after source has
been removed.
Sound reflects off of walls, floors and other
obstacles.
These reflections are called reverberation of
the original sound.
Previous Reverberation Methods
(physical)

Chamber


Plate


Uses real reverberation chamber (such as room or hall) to
capture a sound with its echoes.
Metal plate that resonates according to a sound source and
is picked up via an electromagnetic transducer on the plate.
Spring

Resonance in the spring induced by the transducer is
recorded at the other end by a transducer.
Previous Reverberation Methods
(other)

DSP


Copies original sound source many times and
adds the result back into the original sound.
Sound Tracing


Adaptation of existing ray-tracing methods.
Traces a “beam of sound” from the listener back
through reflections and then back to the sound
source.
SPH as a Possible Solution

Limitations of previous methods






Physical methods are expensive and time-consuming to set
up properly.
DSP methods are fast, but not accurate.
Sound tracing methods only deal well with static, simple
environments.
SPH can be used as DSP methods are now.
SPH has the potential to be more accurate than
DSP methods.
SPH can handle complex, dynamic environments.
Smoothed Particle
Hydrodynamics
Smoothed Particle Hydrodynamics





Lagrangian CFD method
First used for astrophysics simulation in 1977
General enough for astrophysics, fluid
dynamics and deformable bodies
Uses probability distribution to determine field
values
Derivatives only apply to kernel
Smoothing Kernels


Probability function for the SPH summation
Must satisfy the following constraints:
3

 W r  r , h  d r   1
and
lim W r  r, h    r  r
h 0
Monaghan’s B-spline kernel
 3 2 3 3
1  2 q  4 q , if 0  q  1
1  1
3
WB-spline r, h   3  2  q 
, if 1  q  2
h  4
, if q  2
 0

Monaghan’s B-spline kernel
0.4
0.3
0.2
0.1
0.5
1
1.5
2
Desbrun’s “Spiky” kernel
3

15 h - r  , if 0  r  h
Wspiky r, h   6 
h  0
, otherwise
Desbrun’s “spiky” kernel
14
12
10
8
6
4
2
0.2
0.4
0.6
0.8
1
Müller’s Viscosity kernel
 r3 r2 h
15  3  2   1, if 0  r  h
Wviscosity r, h  
h
2r
3  2h
2h  0
, otherwise

Müller’s Viscosity kernel
25
20
15
10
5
0.2
0.4
0.6
0.8
1
Determining Field Values in SPH
(continuous to discrete)

A smoothed average is calculated by:
f r   f r    f r W r  r, h  d r 
3

For discrete particles:
N
mj
j 1
j
f r    f j
W r  r j , h 
Determining Field Values in SPH
(gradient and Laplacian)

The gradient of a field variable:
N
mj
j 1
j
f r    f j

W r  r, h
And similarly, the Laplacian:
N
mj
j 1
j
 f r    f j
2
2 W r  r, h
SPH Versions of the Equations of Motion
(Density)

Density must be calculated at every time
step:
i   m j W ri  r j , h 
N
j 1
SPH Versions of the Equations of Motion
(Pressure and Viscosity)

Force due to pressure gradient:
pressure
i
F

N
Pi  Pj
j 1
2 j
  m j
W ri  r j , h
Force due to viscosity:
n
Fi
viscosity

j 1
kmj vij
j
 Wviscosity ri  r j , h
2
Equation of State


Used to calculate pressure
Ideal Gas Equation
PV  nRT

Keeping temperature constant:
P  k
where k is a constant depending on the gas
(78120.9 J/kg at 273.15 K for air).
Boundary Treatment
(force field)

At each timestep, for each particle/boundary
pair, add a force to the particle using:
Fcol  ks xn  kd v  nn
where ks is the stiffness coefficient, kd is the
dampening coefficient and x is the distance
from the fluid particle to the boundary.
Boundary Treatment
(virtual particles)



Boundaries are comprised of virtual fluid
particles.
Virtual particles do not move with the fluid or
evolve parameters such as density.
VPs exert a force on fluid particles according
to Lennard-Jones potential (simple
mathematical model that includes a van Der
Waal’s attractive force at long ranges and a
Pauli repulsion force at short ranges).
Boundary Treatment
(Lennard-Jones potential)

In SPH, the Lennard-Jones potential is
represented by:
   n1
D  r0 

  rij 
PBij  

0


 r0 
 
r 
 ij 
n2
x
 
 ij2 , if  r0   1
r 
 rij
 ij 

 r0 
, if    1
r 
 ij 
where n1 and n2 are 12 and 6, respectively, D
is taken as the square of the largest velocity
and r0 is the cutoff distance.
New Algorithms
Equilibrium

System runs with no acoustic input until kinetic
energy is below a certain threshold (L is 0.00001 J):
E system

1 n
2
  mi vi  L
2 i 1
After equilibrium is reached, the emitter and receiver
are engaged.
Sound Emitter



Acts as a boundary to the fluid.
Allowed to move according to an input sound
file.
The movement from DC is computed
according to:
xt  xrest  kst 
where st is the input sample at time t and k is
the deflection factor.
Sound Receiver



Captures density fluctuations caused by
sound waves propagating through the fluid.
When simulation first reaches equilibrium, the
receiver computes its reference density.
The density deflection from reference is
computed and stored as an audio sample
according to:
st  0  t 
Implementation
Implementation



Original idea was realtime reverb effects
processing.
C++ and OpenGL were chosen for speed and
visualization.
Part of system code was taken from previous
SPH water simulation created for the
Computer Animation and Scientific
Visualization course in Spring 2005.
Class Hierarchy
cd Class Model
SPHSoundReceiv er
WAVFile
Camera
SPHParticle
SPHGrid
SPHSimulator
SPHGridCell
SPHSoundEmitter
SPHBoundary
SPHRectangleBoundary
SPHCylinderBoundary
SPHKernel
SPHDiscBoundary
SPHKernelPoly6
SPHKernelViscosity
SPHKernelSpiky
Class SPHSimulator



Main program class
Manages ALL SPH-related objects in the
simulation.
Provides the following methods:


Load() – Load a new scene file
StepSimulation() – Progress the simulation one
time step and render the results both to the
screen and to the output sound file.
SPHSimulator::StepSimulation()
1.
2.
3.
4.
5.
6.
7.
8.
For each particle, assign neighboring particles to neighbor list.
For each particle, compute its density.
For each particle, compute its pressure.
For each particle, compute the force acting on the particle due
the pressure gradient and the viscosity.
For each particle, compute the force acting on the particle due
to the boundary forces (either using the Lennard-Jones
potential or the boundary force equation).
Integrate the equations of motion to find the new velocity and
position.
For each sound emitter, read the next sample in the input WAV
file and move the emitter accordingly.
For each sound receiver, compute the deflection from the
reference density and store it as a sample in an output WAV
file.
Class SPHParticle

Stores a single particle’s state:








Density (kg/m3)
Mass (kg)
Pressure (Pa)
Fluid viscosity constant
Position vector (m)
Velocity vector (m/s)
Acceleration vector (m/s2)
List of neighboring particles
Class SPHKernel & Derivatives

SPHKernel is an abstract class that exposes
the following methods:




W() – Kernel
dW() – Kernel derivative
lap() – Kernel Laplacian
3 kernels are currently implemented:



Monaghan’s B-spline for density
Desbrun’s “spiky” kernel for pressure gradient
Müeller’s viscosity kernel
Classes SPHGrid and SPHGridCell



Used to find neighboring particles for a given
particle.
SPH kernels have compact support, so any
potential neighboring particles beyond a
distance of h from the current particle can be
ruled out as neighbors.
The grid is divided into cells of length h and a
nearest neighbor search is performed for
each particle.
SPHGrid::AssignNeighbors()
For each SPHGridCell in SPHGrid, clear the
particle list.
For each particle i,
1.
2.
a)
b)
c)
d)
e)
Clear the neighbor list.
Add i to the neighbor list (i is its own neighbor).
Search the cell adjacent to the cell containing i for
neighbors.
A particle j in an adjacent cell is considered a neighbor of i
only if the distance from i to j < h. If j is a neighbor of i,
add a reference to j to i’s neighbor list
Add a reference to i to the current cell’s contents.
Class SPHBoundary & Derivatives



Encapsulates a boundary (wall, floor,
obstacle).
Base class has position and orientation.
Subclassing SPHBoundary allows for
different shapes and/or collision detection
and response algorithms.
Class SPHSoundEmitter



Derived from one of the SPHBoundary
concrete classes.
A configured maximum deflection allows for
amplitude control of the output sound file.
At each time step, the emitter reads the next
sample in the input sound file and moves
itself along its local x-axis accordingly.
Class SPHSoundReceiver




Computes reference density at its local origin
when equilibrium is first reached.
At each time step, the density is again
computed and the deflection from its
reference density is stored as an output
sound sample.
The deflections are initially stored as doubleprecision floating point numbers from -1 to 1.
When stored in the WAV file, they are
converted to 16-bit signed integers.
Class WAVFile


Stores the contents of a WAV audio file in
memory.
Allows for random and sequential access to
the audio sample data.
Class Camera


Used to visualize the particle system.
Allows the viewer to pan and rotate in all
three dimensions.
Results
Simulation Test Run Setup



The runs are set up as scene files with user-definable
parameters.
Using scene files allows the simulation results to be compared on
a change-by-change basis to determine the best parameters for
the system.
Most of the simulation parameters are exposed, including:
 Timestep
 Fluid parameters (number, initial volume, mass, viscosity,
stiffness).
 Boundary parameters (shape, size, orientation and collision
response algorithm).
 Emitter and receiver parameters (input and output sound
filenames and emitter deflection constant).
Simulation Results
Movie 1 (boundary force)
Movie 2 (virtual particles)
Audio Results
Future Work
Future Work

Improve the reverberation accuracy.




Equation of state
Thermal energy
Smoothing kernels
Acoustic Modeling



Building design
Auto, aircraft and marine
Music production
Conclusion
Conclusion






History of reverberation modeling.
History and theory of Smoothed Particle
Hydrodynamics.
Pointed out a lack of a general solution to acoustic
modeling of reverberation.
Using SPH, we created new algorithms for acoustic
modeling.
Results show promise, but more research must be
done before it can be considered a replacement for
current techniques.
We DID get results!
New Masters program in Media
Convergence, Games and Media
Integration – GMI Program
Started in 2007.
Contact: semwal@eas.uccs.edu
Download