Notes Von Mises yield criterion � Read “Physically Based Modelling” � If the stress has been diagonalized: 1 2 + � 2 � � 3 2 + � 3 � � 1 2 � � Y SIGGRAPH course notes by Witkin and ( ) ( ) ( ) � 1 � � 2 2 Baraff (at least, rigid body sections) � More generally: 2 � 1 2 � � Y 3 ( ) � F 3 Tr � • An alternative way to derive the equations of 2 motion for rigid bodies � This is the same thing as the Frobenius norm of the deviatoric part of stress • i.e. after subtracting off volume-changing part: 2 � � 1 3 ( ) I F � � Y 3 Tr � cs533d-winter-2005 1 cs533d-winter-2005 2 Linear elasticity shortcut Perfect plastic flow � For linear (and isotropic) elasticity, apart � Once yield condition says so, need to start changing plastic strain from the volume-changing part which we � The magnitude of the change of plastic strain cancel off, stress is just a scalar multiple of should be such that we stay on the yield surface strain • I.e. maintain f( � )=0 • (ignoring damping) (where f( � ) � 0 is, say, the von Mises condition) � So can evaluate von Mises with elastic � The direction that plastic strain changes isn’t as strain tensor too (and an appropriately straightforward scaled yield strain) � “Associative” plasticity: p = � � f ˙ � �� cs533d-winter-2005 3 cs533d-winter-2005 4 Algorithm Multi-Dimensional Fracture � After a time step, check von Mises criterion: � Smooth stress to avoid artifacts (average with is ? neighbouring elements) f ( � ) = 3 2 dev � ( ) F � � Y > 0 � Look at largest eigenvalue of stress in each element � If so, need to update plastic strain: � If larger than threshhold, introduce crack new = � p + � � f perpendicular to eigenvector � p �� � Big question: what to do with the mesh? dev ( � ) 3 = � p + � • Simplest: just separate along closest mesh face 2 dev ( � ) F • Or split elements up: O’Brien and Hodgins • with � chosen so that f( � new )=0 • Or model crack path with embedded geometry: (easy for linear elasticity) Molino et al. cs533d-winter-2005 5 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 • Even large objects which deform may be best decomposed into rigid parts cs533d-winter-2005 7 cs533d-winter-2005 8 Object Space vs. World Space Kinematics v = ˙ R p + V � As before, we have rest/reference/object space � Differentiate map in time: configuration (label points with variable p) � And current/real/world space configuration p = R T ( x � X ) � Invert map for p: (position is x(p)) � First note: R T ( x � X ) + V v = ˙ R � Thus: • If it ever gets confusing, replace continuous matter with a finite set of mass points (object space positions p 1 , p 2 , … and world space positions x 1 , x 2 , …) � 1st term: rotation, 2nd term: translation � Rigidity means that x(p,t)=R(t)p+X(t) • Let’s simplify the rotation • R is a rotation matrix (orthogonal and det(R)=1) • X is a translation vector cs533d-winter-2005 9 cs533d-winter-2005 10 Skew-Symmetry The cross-product matrix � Differentiate RR T = � w.r.t. time: � Note that: R T + R ˙ T = 0 � ˙ R T = � ˙ T ˙ ( ) � � � � � � R T 0 � � 2 � 1 x 0 � 1 x 2 � � 2 x 1 R R R R � � � � � � � � x = � 2 0 � � 0 x 1 = � 2 x 0 � � 0 x 2 = � � x � Skew-symmetric! Thus can write as: � � � � � � � � � � � � � � 1 � 0 0 x 2 � 0 x 1 � � 1 x 0 � � � � � � � 0 � � � 2 � 1 � So we have: � � R T = ˙ R 0 � 2 � � 0 � � � � v = � � x � X ( ) + V � � 1 � 0 0 � � � Call this matrix � � (built from a vector � ) � � is the angular velocity of the object R T = � � � Magnitude gives speed of rotation, direction gives axis of ˙ ˙ R = � � R R � rotation cs533d-winter-2005 11 cs533d-winter-2005 12
Velocity Modes Virtual Work � Think of linear space of all possible velocities, � The internal “constraint” forces are going to keep and choose a set of basis vectors for the v in the span of S, so v=Su for some coefficients subspace of allowed motions (rigid body u motions) � But assume (and this is the key assumption) that • Think back to modal dynamics… they don’t mess with these allowed modes � In this case, velocity is a linear combination of 3 � That is, they are orthogonal: translations and 3 rotations, with coefficients V • S T F int =0 and � • They do no “virtual work” � Write this as v=Su, or � For example, internal forces won’t cause an v ( x ) = S ( x ) u object to out of the blue start translating, or rotating… � � � ) V X * � x * ( [ = V � ( x � X ) � � K ] = � � • Can derive from, for example, the assumption that � � � down at some level forces between particles are in the direction between particles cs533d-winter-2005 13 cs533d-winter-2005 14 Constrained Dynamics Working it out M ˙ v = F int + F ext � We have F=Ma, i.e. � What is the matrix multiplying du/dt? � � � S T MS = X * � x i � Now plug in form for constrained velocity � ( * ) M i � � � X * T � x i * T � � u + M ˙ MS ˙ S u = F int + F ext i X * � x i � * � � � = m i � T X * � x i � X * T � x i X * � x i � � * T ( * ) ( * ) � And eliminate the internal forces: � � i S T MS ˙ u + S T M ˙ u = S T F int 3 + S T F ext S � Using total mass M (not the matrix!) and 1 2 centre of mass X CM this simplifies to: = 0 MX * � MX CM � * � S T MS u + S T M ˙ M � ( ) ˙ ( ) u = S T F ext S � * T X � x i � MX * T � MX CM * * T � ( ) ( ) m i X � x i � � � � cs533d-winter-2005 15 i cs533d-winter-2005 16 Can we do better? Change of S � We have some freedom in defining S � There was also the dS/dt term � Don’t have to rotate about the origin: can rotate � Note that identity matrix is constant: disappears around the centre of mass instead � We get � � S T M ˙ � * � v i ( ) � * S = m i � 0 V � X * T � x i • This will let us zero out the off-diagonal blocks, make * T � � it simpler to invert the 6x6 matrix i V * � v i � * � 0 � That is, X=X CM so that S T MS becomes � m i = � � * T V � v i * 0 ( X � x i ) ( ) � � i � � = 0 0 � � M � 0 * T V � v i � = M � � 0 � � * � * T X � x i � 0 m i ( X � x i ) ( ) � * � � � � ( ) ( ) � � 0 m i X � x i i � 0 I ( t ) � � � � � Note simplification from m i v i summing to MV i � Left with dI(t)/dt in lower right corner � We call I(t) the “inertia tensor” cs533d-winter-2005 17 cs533d-winter-2005 18
What about the external forces? Equations of Motion � � � � Plugging it all in (and assuming centre of mass � What is S T F ext ? � S T F ext = � � f i X * T � x i * T is at the origin in object space) � � M ˙ i V = F � � � f i d � � = i ( ) = � dt I ( t ) � � � � ( x i � X ) � f i � � i � � � = F � Call L=I(t) � the angular momentum � • The component of momentum in the rotational mode � � � � Also add in � We call F the net force, and � the net ˙ X = V torque ˙ R = � * R cs533d-winter-2005 19 cs533d-winter-2005 20 To Do � Figure out I(t) efficiently � Numerically integrate the ODE’s • 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
Recommend
More recommend