Vous êtes sur la page 1sur 4

Notes

Von Mises yield criterion


!

Read Physically Based Modelling SIGGRAPH course notes by Witkin and Baraff (at least, rigid body sections)

If the stress has been diagonalized:


1 2

("1 # " 2 )

+ (" 2 # " 3 ) + (" 3 # "1 ) $ " Y

An alternative way to derive the equations of


motion for rigid bodies

! !

More generally:

3 2

"

2 F

# 1 Tr(" ) $ " Y 3

This is the same thing as the Frobenius norm of the ! deviatoric part of stress

i.e. after subtracting off volume-changing part:

3 2

" # 1 Tr(" ) I 3

$ "Y

cs533d-winter-2005

cs533d-winter-2005

Linear elasticity shortcut


!

Perfect plastic flow


! !

For linear (and isotropic) elasticity, apart from the volume-changing part which we cancel off, stress is just a scalar multiple of strain

Once yield condition says so, need to start changing plastic strain The magnitude of the change of plastic strain should be such that we stay on the yield surface

(ignoring damping)
!

! !

I.e. maintain f(!)=0 (where f(!)!0 is, say, the von Mises condition)

So can evaluate von Mises with elastic strain tensor too (and an appropriately scaled yield strain)

The direction that plastic strain changes isnt as straightforward Associative plasticity: $f

"p = #

$%
cs533d-winter-2005 4

cs533d-winter-2005

Algorithm
!

Multi-Dimensional Fracture
! ! ! !

After a time step, check von Mises criterion: is f (" ) = 3 dev (" ) # " > 0 ?
2 F Y

If so, need to update plastic strain:


" new = " p + # p
= "p + #

$f $%
3 2

dev(% ) dev(% ) F

Smooth stress to avoid artifacts (average with neighbouring elements) Look at largest eigenvalue of stress in each element If larger than threshhold, introduce crack perpendicular to eigenvector Big question: what to do with the mesh?

with " chosen so that f(!new)=0 (easy for linear elasticity)


cs533d-winter-2005 5

Simplest: just separate along closest mesh face Or split elements up: OBrien and Hodgins Or model crack path with embedded geometry: Molino et al.
cs533d-winter-2005 6

Rigid Bodies
! !

Rigid Bodies
Most volumes in the real world are very stiff---not visibly deformable Rather than stiff and expensive deformable mechanics, mathematically abstract this into perfectly rigid bodies


! !

Constrain motion to rigid body modes Avoid having to model internal constraint forces which keep bodies rigid

More efficient, but rigid abstraction can cause problems Still, best approach especially for real-time simulations of such objects - e.g. games

cs533d-winter-2005 7

Even large objects which deform may be best decomposed into rigid parts cs533d-winter-2005

Object Space vs. World Space


! ! !

Kinematics
!

As before, we have rest/reference/object space configuration (label points with variable p) And current/real/world space configuration (position is x(p)) First note:

Differentiate map in time: v = Rp + V


Invert map for p: p = RT (x " X)

! ! !

If it ever gets confusing, replace continuous matter with a finite set of mass points (object space positions p1, p2, and world space positions x1, x2, ) R is a rotation matrix (orthogonal and det(R)=1) X is a translation vector
cs533d-winter-2005 9

" Thus: v = RRT (x! X) + V


! 1st term: rotation, 2nd term: translation

Rigidity means that x(p,t)=R(t)p+X(t)

Lets simplify the rotation


cs533d-winter-2005 10

Skew-Symmetry
!

The cross-product matrix


!

Differentiate RRT=# w.r.t. time:

Note that:

T RRT + RRT = 0 " RRT = #( RRT )

Skew-symmetric! Thus can write as:

!
$

$ 0 "# 2 & RRT = & # 2 0 & % "#1 # 0


Call this matrix %"

#1 ' ) "# 0 ) ) 0 (

So we have:

% 0 $" 2 "1 (% x 0 ( % "1 x 2 $ " 2 x1 ( ' *' * ' * " x = ' "2 0 $" 0 *' x1 * = '" 2 x 0 $ " 0 x 2 * = " + x ' *' * ' * 0 )& x 2 ) & " 0 x1 $ "1 x 0 ) &$"1 " 0
#

v = " # (x $ X ) + V
!
$ $

(built from a vector %)

RRT = " # $ R = " # R


cs533d-winter-2005 11

% is the angular velocity of the object Magnitude gives speed of rotation, direction gives axis of rotation

!
cs533d-winter-2005 12

Velocity Modes
!

Virtual Work
!

Think of linear space of all possible velocities, and choose a set of basis vectors for the subspace of allowed motions (rigid body motions)

! !

Think back to modal dynamics

In this case, velocity is a linear combination of 3 translations and 3 rotations, with coefficients V and % Write this as v=Su, or

The internal constraint forces are going to keep v in the span of S, so v=Su for some coefficients u But assume (and this is the key assumption) that they dont mess with these allowed modes That is, they are orthogonal:

STFint=0 They do no virtual work

v(x) = S(x)u

% ( = (" X * # x * )'V * &$ )

[= V # (x # X) + $ K]
cs533d-winter-2005 13

For example, internal forces wont cause an object to out of the blue start translating, or rotating

Can derive from, for example, the assumption that down at some level forces between particles are in the direction between particles cs533d-winter-2005

14

Constrained Dynamics

Working it out
What is the matrix multiplying du/dt? $ ' " ) M " X * # x* ) S T MS = *& *T i X # x *T ( i ( % i i $ ' " X * # x* i & *T ) = * mi & *T * * T * * ) X # x i ( X # x i ) ( X # x i )( i % ! Using total mass M (not the matrix!) and centre of mass XCM this simplifies to: * % ( M" MX * # MX CM ' *T ** *T *T ' MX # MX CM $ mi ( X # x i ) ( X # x i ) * & ) i
!

We have F=Ma, i.e. Mv = Fint + Fext ! Now plug in form for constrained velocity
!

MSu + MSu = Fint + Fext

! S T MSu + S T MSu = S T Fint + S T Fext 13 2 =0 ! T T ) u = S T Fext (S MS)u + (S MS


cs533d-winter-2005 15

And eliminate the internal forces:

cs533d-winter-2005

16

Can we do better?
! !

Change of S
! ! !

We have some freedom in defining S Dont have to rotate about the origin: can rotate around the centre of mass instead

This will let us zero out the off-diagonal blocks, make it simpler to invert the 6x6 matrix

That is, X=XCM so that STMS becomes

% M" ' 0 ' &


!

( 0 % M" 0 ( *T * mi ( X # x i ) ( X # x i ) * = ' 0 I(t)* $ * & ) ) i


cs533d-winter-2005 17

There was also the dS/dt term Note that identity matrix is constant: disappears $ ' " We get * * S T MS = * mi & *T *T ) 0 V # v i % X # xi ( i $0 ' V * # v* i = * mi & *T *) %0 ( X # x i ) (V # v i ) ( i $0 ' 0 *T * = &0 ) % * mi ( X # x i ) (V # v i ) (

! !

We call I(t) the inertia tensor

Note simplification from mivi summing to MV Left with dI(t)/dt in lower right corner cs533d-winter-2005 !

18

What about the external forces?


!

Equations of Motion
!

What is STFext? S T F = $ *& ext


i

' " )f X *T # x *T ( i % i ' ) fi) (

Plugging it all in (and assuming centre of mass is at the origin in object space)

$ *i f i =& &* ( x # X ) + % i i $ ' = &F) %, (


!

! !

Call L=I(t)% the angular momentum

d (I(t)" ) = # dt
X =V R = " *R

MV = F

The component of momentum in the rotational mode

We call F the net force, and & the net torque

Also add in

!
19

cs533d-winter-2005

cs533d-winter-2005

20

To Do
Figure out I(t) efficiently ! Numerically integrate the ODEs
!

Turns out R is not a good representation for


the current rotation
!

Look at the net force and torque of some external forces

Gravity Collisions
cs533d-winter-2005 21

Vous aimerez peut-être aussi