Particle dynamics Particle overview Particle system Forces - - PowerPoint PPT Presentation

particle dynamics
SMART_READER_LITE
LIVE PREVIEW

Particle dynamics Particle overview Particle system Forces - - PowerPoint PPT Presentation

Particle dynamics Particle overview Particle system Forces Constraints Second order motion analysis Particle system Particles are objects that have mass, position, and velocity, but without spatial extent


slide-1
SLIDE 1

Particle dynamics

slide-2
SLIDE 2
  • Particle overview
  • Particle system
  • Forces
  • Constraints
  • Second order motion analysis
slide-3
SLIDE 3

Particle system

  • Particles are objects that have mass, position,

and velocity, but without spatial extent

  • Particles are the easiest objects to simulate but

they can be made to exhibit a wide range of

  • bjects
slide-4
SLIDE 4
  • Each particle has a position, mass, and velocity
  • maybe color, age, temperature
  • Seeded randomly at start
  • maybe some created each frame
  • Move each frame according to physics
  • Eventually die when some condition met

Particle animation

slide-5
SLIDE 5

Sparks from a campfire

  • Add 2-3 particles at each frame
  • initialize position and temperature randomly
  • Move in specified turbulent smoke flow and

decrease temperature as evolving

  • Render as a glowing dot
  • Kill when too cold to glow visibly
slide-6
SLIDE 6

Rendering

  • Simplest rendering: color dots
  • Animated sprites
  • Deformable blobs
  • Transparent spheres
  • Shadows
slide-7
SLIDE 7

A Newtonian particle

  • First order motion is sufficient, if
  • a particle state only contains position
  • no inertia
  • particles are extremely light
  • Most likely particles have inertia and are

affected by gravity and other forces

  • This puts us in the realm of second order

motion

slide-8
SLIDE 8

Second-order ODE

f = ma

What is the differential equation that describes the behavior of a mass point? What does f depend on?

¨ x(t) = f(x(t), ˙ x(t)) m

slide-9
SLIDE 9

Second-order ODE

Add a new variable, v(t), to get a pair of coupled first order equations

This is not a first oder ODE because it has second derivatives

{ ˙

x = v ˙ v = f/m

¨ x(t) = f(x(t), ˙ x(t)) m = f(x, ˙ x)

slide-10
SLIDE 10

Phase space

x v

  • =

        x1 x2 x3 v1 v2 v3        

Concatenate position and velocity to form a 6-vector: position in phase space First order differential equation: velocity in the phase space

˙ x ˙ v

  • =

v

f m

slide-11
SLIDE 11
  • Particle overview
  • Particle system
  • Forces
  • Constraints
  • Second order motion analysis
slide-12
SLIDE 12

Particle structure

x v f m

Particle

position velocity force accumulator mass

a point in the phase space

slide-13
SLIDE 13

Solver interface

system solver solver interface

x v f m

particle GetDim

6

Get/Set State

x v

Deriv Eval

v

f m

slide-14
SLIDE 14

system

Particle system structure

n time ...

x1 v1 f1 m1 x2 v2 f2 m2 xn vn fn mn

particles

slide-15
SLIDE 15

system

Particle system structure

solver solver interface

GetDim

6n

Get/Set State

x1 v1 x2 v2 xn vn

. . .

Deriv Eval

vn

fn mn

v1

f1 m1

v2

f2 m2

. . .

particles time n

slide-16
SLIDE 16

Deriv Eval

Clear forces: loop over particles, zero force accumulator Calculate forces: sum all forces into accumulator Gather: loop over particles, copy v and f/m into destination array

slide-17
SLIDE 17
  • Particle overview
  • Particle system
  • Forces
  • Constraints
  • Second order motion analysis
slide-18
SLIDE 18

Forces

  • Constant
  • gravity
  • Position/time dependent
  • force fields, springs
  • Velocity dependent
  • drag
slide-19
SLIDE 19

system particles n time

Particle systems with forces

...

x1 v1 f1 m1 x2 v2 f2 m2 xn vn fn mn

F1 F2 Fm ... forces

slide-20
SLIDE 20

Force structure

  • Unlike particles, forces are heterogeneous

(type-dependent)

  • Each force object “knows”
  • which particles it influences
  • how much contribution it adds to the force

accumulator

slide-21
SLIDE 21

system particles n time

Particle systems with forces

...

x1 v1 f1 m1 x2 v2 f2 m2 xn vn fn mn

forces F1 F2 Fm ...

slide-22
SLIDE 22

F

Gravity

p sys apply_fun G particle system

. . .

x1 v1 f1 m1 x2 v2 f2 m2

xn vn fn mn

p->f += p->m*F->G

Unary force: f = mG Exerting a constant force on each particle

slide-23
SLIDE 23

F

Viscous drag

k sys particle system p

. . .

x1 v1 f1 m1 x2 v2 f2 m2

xn vn fn mn

apply_fun p->f += p->v*F->k

At very low speeds for small particles, air resistance is approximately:

fdrag = −kdragv

slide-24
SLIDE 24

Attraction

Act on any or all pairs of particles, depending on their positions xp xq l

fq = −fp fp = −k mpmq |l|2 l |l| l = xp − xq

slide-25
SLIDE 25

Attraction

p sys apply_fun k particle system

F

xp vp fp mp xq vq fq mq

fp = −k mpmq |l|2 l |l|

slide-26
SLIDE 26

Damped spring

fp = −

  • ks(|l| − r) + kd

˙ l · l |l|

  • l

|l|

r | l | xp xq

l = xp − xq fq = −fp

slide-27
SLIDE 27

Damped spring

p sys apply_fun ks particle system

F

xp vp fp mp xq vq fq mq

kd r

fp = −

  • ks(|l| − r) + kd

˙ l · l |l|

  • l

|l|

slide-28
SLIDE 28

Deriv Eval

...

x1 v1 f1 m1 x2 v2 f2 m2 xn vn fn mn

  • 1. Clear force accumulators

F1 F2 Fm ...

  • 2. Invoke apply_force

functions

  • 3. Return derivatives to solver

˙ x ˙ v

  • =

v

f m

slide-29
SLIDE 29

ODE solver

Euler’s method:

x(t0 + h) = x(t0) + hf(x, t) xt+1 = xt + h ˙ xt vt+1 = vt + h ˙ vt

slide-30
SLIDE 30

2. 4.

Get/Set State

Euler step

system

GetDim Deriv Eval

solver solver interface

xt+1 = xt + h ˙ xt vt+1 = vt + h ˙ vt

3. time

  • 5. Advance

time Deriv Eval

1.

. . .

vn

fn mn

v1

f1 m1

v2

f2 m2

x1 v1 x2 v2 xn vn

. . .

particles

slide-31
SLIDE 31
  • Particle overview
  • Particle system
  • Forces
  • Constraints
  • Second order motion analysis
slide-32
SLIDE 32

Particle Interaction

  • We will revisit collision

when we talk about rigid body simulation

  • For now, just simple

point-plane collisions

slide-33
SLIDE 33

Collision detection

vT vN v x N

Normal and tangential components vN = (N · v)N vT = v − vN

slide-34
SLIDE 34

Collision detection

vT vN v

p x

N

Particle is on the legal side if Particle is heading in if

Particle is within of the wall if

  • (x − p) · N ≥ 0

(x − p) · N < v · N < 0

slide-35
SLIDE 35

Collision response

v vT vN

Before collision

v vT −krvN

After collision coefficient of restitution:

0 ≤ kr < 1

v = vT − krvN

slide-36
SLIDE 36

Contact

p

N

Conditions for resting contact:

f

fN fT

If a particle is pushed into the contact plane a contact force fc is exerted to cancel the normal component of f

x

  • 1. particle is on the collision surface

v

  • 2. zero normal velocity
slide-37
SLIDE 37
  • Particle overview
  • Particle system
  • Forces
  • Constraints
  • Second order motion analysis
slide-38
SLIDE 38

Linear analysis

  • Linearly approximate acceleration
  • Split up analysis into different cases
  • constant acceleration
  • linear acceleration

a(x, v) ≈ a0 − Kx − Dv

slide-39
SLIDE 39

Constant acceleration

  • Solution is
  • v(t) only needs 1st order accuracy, but x(t)

demands 2nd order accuracy

v(t) = v0 + a0t x(t) = x0 + v0t + 1 2a0t2

slide-40
SLIDE 40

Linear acceleration

  • When K (or D) dominates ODE, what type of

motion does it correspond to?

  • Need to compute the eigenvalues of A

a(x, v) = −Kx − Dv d dt

  • x

v

  • =
  • I

−K −D x v

  • = A
  • x

v

slide-41
SLIDE 41

Linear acceleration

Assume is an eigenvalue of A, is the corresponding eigenvector

α

  • u1

u2

  • I

−K −D u1 u2

  • = α
  • u1

u2

  • The eigenvector of A has the form
  • u

αu

  • Often, D is linear combination of K and I (Rayleigh

damping) That means K and D have the same eigenvectors

slide-42
SLIDE 42

Linear acceleration

Now assume u is an eigenvector for both K and D For any u, if is an eigenvector of A, following must be true

  • u

αu

  • I

−K −D u αu

  • = α
  • u

αu

  • −λku − αλdu = α2u

α = −1 2λd ±

  • (1

2λd)2 − λk

slide-43
SLIDE 43

Eigenvalue approximation

  • If D dominates
  • exponential decay
  • If K dominates
  • oscillation

α ≈ −λd, 0 α ≈ ± √ −1

  • λk
slide-44
SLIDE 44

Analysis

  • Constant acceleration (e.g. gravity)
  • demands 2nd order accuracy for position
  • Position dependence (e.g. spring force)
  • demands stability but low or zero damping
  • looks at imaginary axis
  • Velocity dependence (e.g. damping)
  • demands stability, exponential decay
  • looks at negative real axis
slide-45
SLIDE 45

Explicit methods

  • First-order explicit Euler method
  • constant acceleration:
  • position dependence:
  • velocity dependence:
  • RK3 and RK4
  • constant acceleration:
  • position dependence:
  • velocity dependence:

bad (1st order) very bad (unstable)

  • k (conditionally stable)

great (high order)

  • k (conditionally stable)
  • k (conditionally stable)
slide-46
SLIDE 46

Implicit methods

  • Implicit Euler method
  • constant acceleration:
  • position dependence:
  • velocity dependence:
  • Trapezoidal rule
  • constant acceleration:
  • position dependence:
  • velocity dependence:

bad (1st order)

  • k (stable but damped)

great (monotone) great (2nd order) great (stable and no damp) good (stable, not monotone)

slide-47
SLIDE 47

What’s next?

slide-48
SLIDE 48
  • How do we enforce constraints on the

particles?

  • Read (optional): Particle animation and

rendering using data parallel computation, SIG90, Karl Sims