class_docstr: An idealized rigid body.
  
  Explanation
  ===========
  
  This is essentially a container which holds the various components which
  describe a rigid body: a name, mass, center of mass, reference frame, and
  inertia.
  
  All of these need to be supplied on creation, but can be changed
  afterwards.
  
  Attributes
  ==========
  
  name : string
      The body's name.
  masscenter : Point
      The point which represents the center of mass of the rigid body.
  frame : ReferenceFrame
      The ReferenceFrame which the rigid body is fixed in.
  mass : Sympifyable
      The body's mass.
  inertia : (Dyadic, Point)
      The body's inertia about a point; stored in a tuple as shown above.
  potential_energy : Sympifyable
      The potential energy of the RigidBody.
  
  Examples
  ========
  
  >>> from sympy import Symbol
  >>> from sympy.physics.mechanics import ReferenceFrame, Point, RigidBody
  >>> from sympy.physics.mechanics import outer
  >>> m = Symbol('m')
  >>> A = ReferenceFrame('A')
  >>> P = Point('P')
  >>> I = outer (A.x, A.x)
  >>> inertia_tuple = (I, P)
  >>> B = RigidBody('B', P, A, m, inertia_tuple)
  >>> # Or you could change them afterwards
  >>> m2 = Symbol('m2')
  >>> B.mass = m2
docstr: Kinetic energy of the rigid body.
  
  Explanation
  ===========
  
  The kinetic energy, T, of a rigid body, B, is given by:
  
  ``T = 1/2 * (dot(dot(I, w), w) + dot(m * v, v))``
  
  where I and m are the central inertia dyadic and mass of rigid body B
  respectively, w is the body's angular velocity, and v is the velocity of
  the body's mass center in the supplied ReferenceFrame.
  
  Parameters
  ==========
  
  frame : ReferenceFrame
      The RigidBody's angular velocity and the velocity of it's mass
      center are typically defined with respect to an inertial frame but
      any relevant frame in which the velocities are known can be
      supplied.
  
  Examples
  ========
  
  >>> from sympy.physics.mechanics import Point, ReferenceFrame, outer
  >>> from sympy.physics.mechanics import RigidBody
  >>> from sympy import symbols
  >>> m, v, r, omega = symbols('m v r omega')
  >>> N = ReferenceFrame('N')
  >>> b = ReferenceFrame('b')
  >>> b.set_ang_vel(N, omega * b.x)
  >>> P = Point('P')
  >>> P.set_vel(N, v * N.x)
  >>> I = outer (b.x, b.x)
  >>> inertia_tuple = (I, P)
  >>> B = RigidBody('B', P, b, m, inertia_tuple)
  >>> B.kinetic_energy(N)
  m*v**2/2 + omega**2/2
docstr_tok: ["Kinetic","energy","of","the","rigid","body",".","Explanation","===========","The","kinetic","energy",",","T",",","of","a","rigid","body",",","B",",","is","given","by",":","``","T","=","1\/2","*","(","dot","(","dot","(","I",",","w",")",",","w",")","+","dot","(","m","*","v",",","v",")",")","``","where","I","and","m","are","the","central","inertia","dyadic","and","mass","of","rigid","body","B","respectively",",","w","is","the","body","'s","angular","velocity",",","and","v","is","the","velocity","of","the","body","'s","mass","center","in","the","supplied","ReferenceFrame",".","Parameters","==========","frame",":","ReferenceFrame","The","RigidBody","'s","angular","velocity","and","the","velocity","of","it","'s","mass","center","are","typically","defined","with","respect","to","an","inertial","frame","but","any","relevant","frame","in","which","the","velocities","are","known","can","be","supplied",".","Examples","========",">",">",">","from","sympy.physics.mechanics","import","Point",",","ReferenceFrame",",","outer",">",">",">","from","sympy.physics.mechanics","import","RigidBody",">",">",">","from","sympy","import","symbols",">",">",">","m",",","v",",","r",",","omega","=","symbols","(","'m","v","r","omega","'",")",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","b","=","ReferenceFrame","(","'","b","'",")",">",">",">","b.set_ang_vel","(","N",",","omega","*","b.x",")",">",">",">","P","=","Point","(","'","P","'",")",">",">",">","P.set_vel","(","N",",","v","*","N.x",")",">",">",">","I","=","outer","(","b.x",",","b.x",")",">",">",">","inertia_tuple","=","(","I",",","P",")",">",">",">","B","=","RigidBody","(","'","B","'",",","P",",","b",",","m",",","inertia_tuple",")",">",">",">","B.kinetic_energy","(","N",")","m","*","v","*","*","2\/2","+","omega","*","*","2\/2"]
code: def kinetic_energy(self, frame):
      """Kinetic energy of the rigid body.
  
      Explanation
      ===========
  
      The kinetic energy, T, of a rigid body, B, is given by:
  
      ``T = 1/2 * (dot(dot(I, w), w) + dot(m * v, v))``
  
      where I and m are the central inertia dyadic and mass of rigid body B
      respectively, w is the body's angular velocity, and v is the velocity of
      the body's mass center in the supplied ReferenceFrame.
  
      Parameters
      ==========
  
      frame : ReferenceFrame
          The RigidBody's angular velocity and the velocity of it's mass
          center are typically defined with respect to an inertial frame but
          any relevant frame in which the velocities are known can be
          supplied.
  
      Examples
      ========
  
      >>> from sympy.physics.mechanics import Point, ReferenceFrame, outer
      >>> from sympy.physics.mechanics import RigidBody
      >>> from sympy import symbols
      >>> m, v, r, omega = symbols('m v r omega')
      >>> N = ReferenceFrame('N')
      >>> b = ReferenceFrame('b')
      >>> b.set_ang_vel(N, omega * b.x)
      >>> P = Point('P')
      >>> P.set_vel(N, v * N.x)
      >>> I = outer (b.x, b.x)
      >>> inertia_tuple = (I, P)
      >>> B = RigidBody('B', P, b, m, inertia_tuple)
      >>> B.kinetic_energy(N)
      m*v**2/2 + omega**2/2
  
      """
  
      rotational_KE = S.Half * dot(
          self.frame.ang_vel_in(frame),
          dot(self.central_inertia, self.frame.ang_vel_in(frame)),
      )
      translational_KE = (
          S.Half
          * self.mass
          * dot(self.masscenter.vel(frame), self.masscenter.vel(frame))
      )
      return rotational_KE + translational_KE
  
imports: from sympy import Symbol, S
  from sympy.physics.vector import ReferenceFrame, Dyadic, Point, dot
  from sympy.physics.mechanics.body_base import BodyBase
  from sympy.physics.mechanics.inertia import inertia_of_point_mass, Inertia
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 14 for calling the RigidBody obj's underlying member method code with example usage: obj.kinetic_energy(frame) and returns: unknown