class_docstr: The class used to define vectors.
  
  It along with ReferenceFrame are the building blocks of describing a
  classical mechanics system in PyDy and sympy.physics.vector.
  
  Attributes
  ==========
  
  simp : Boolean
      Let certain methods use trigsimp on their outputs
class_docstr_tok: ["The","class","used","to","define","vectors",".","It","along","with","ReferenceFrame","are","the","building","blocks","of","describing","a","classical","mechanics","system","in","PyDy","and","sympy.physics.vector",".","Attributes","==========","simp",":","Boolean","Let","certain","methods","use","trigsimp","on","their","outputs"]
docstr: Returns the partial derivative of the vector with respect to a
  variable in the provided reference frame.
  
  Parameters
  ==========
  var : Symbol
      What the partial derivative is taken with respect to.
  frame : ReferenceFrame
      The reference frame that the partial derivative is taken in.
  var_in_dcm : boolean
      If true, the differentiation algorithm assumes that the variable
      may be present in any of the direction cosine matrices that relate
      the frame to the frames of any component of the vector. But if it
      is known that the variable is not present in the direction cosine
      matrices, false can be set to skip full reexpression in the desired
      frame.
  
  Examples
  ========
  
  >>> from sympy import Symbol
  >>> from sympy.physics.vector import dynamicsymbols, ReferenceFrame
  >>> from sympy.physics.vector import init_vprinting
  >>> init_vprinting(pretty_print=False)
  >>> t = Symbol('t')
  >>> q1 = dynamicsymbols('q1')
  >>> N = ReferenceFrame('N')
  >>> A = N.orientnew('A', 'Axis', [q1, N.y])
  >>> A.x.diff(t, N)
  - sin(q1)*q1'*N.x - cos(q1)*q1'*N.z
  >>> A.x.diff(t, N).express(A).simplify()
  - q1'*A.z
  >>> B = ReferenceFrame('B')
  >>> u1, u2 = dynamicsymbols('u1, u2')
  >>> v = u1 * A.x + u2 * B.y
  >>> v.diff(u2, N, var_in_dcm=False)
  B.y
docstr_tok: ["Returns","the","partial","derivative","of","the","vector","with","respect","to","a","variable","in","the","provided","reference","frame",".","Parameters","==========","var",":","Symbol","What","the","partial","derivative","is","taken","with","respect","to",".","frame",":","ReferenceFrame","The","reference","frame","that","the","partial","derivative","is","taken","in",".","var_in_dcm",":","boolean","If","true",",","the","differentiation","algorithm","assumes","that","the","variable","may","be","present","in","any","of","the","direction","cosine","matrices","that","relate","the","frame","to","the","frames","of","any","component","of","the","vector",".","But","if","it","is","known","that","the","variable","is","not","present","in","the","direction","cosine","matrices",",","false","can","be","set","to","skip","full","reexpression","in","the","desired","frame",".","Examples","========",">",">",">","from","sympy","import","Symbol",">",">",">","from","sympy.physics.vector","import","dynamicsymbols",",","ReferenceFrame",">",">",">","from","sympy.physics.vector","import","init_vprinting",">",">",">","init_vprinting","(","pretty_print=False",")",">",">",">","t","=","Symbol","(","'t","'",")",">",">",">","q1","=","dynamicsymbols","(","'q1","'",")",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","A","=","N.orientnew","(","'","A","'",",","'Axis","'",",","[","q1",",","N.y","]",")",">",">",">","A.x.diff","(","t",",","N",")","-","sin","(","q1",")","*","q1","'","*","N.x","-","cos","(","q1",")","*","q1","'","*","N.z",">",">",">","A.x.diff","(","t",",","N",")",".express","(","A",")",".simplify","(",")","-","q1","'","*","A.z",">",">",">","B","=","ReferenceFrame","(","'","B","'",")",">",">",">","u1",",","u2","=","dynamicsymbols","(","'u1",",","u2","'",")",">",">",">","v","=","u1","*","A.x","+","u2","*","B.y",">",">",">","v.diff","(","u2",",","N",",","var_in_dcm=False",")","B.y"]
code: def diff(self, var, frame, var_in_dcm=True):
      """Returns the partial derivative of the vector with respect to a
      variable in the provided reference frame.
  
      Parameters
      ==========
      var : Symbol
          What the partial derivative is taken with respect to.
      frame : ReferenceFrame
          The reference frame that the partial derivative is taken in.
      var_in_dcm : boolean
          If true, the differentiation algorithm assumes that the variable
          may be present in any of the direction cosine matrices that relate
          the frame to the frames of any component of the vector. But if it
          is known that the variable is not present in the direction cosine
          matrices, false can be set to skip full reexpression in the desired
          frame.
  
      Examples
      ========
  
      >>> from sympy import Symbol
      >>> from sympy.physics.vector import dynamicsymbols, ReferenceFrame
      >>> from sympy.physics.vector import init_vprinting
      >>> init_vprinting(pretty_print=False)
      >>> t = Symbol('t')
      >>> q1 = dynamicsymbols('q1')
      >>> N = ReferenceFrame('N')
      >>> A = N.orientnew('A', 'Axis', [q1, N.y])
      >>> A.x.diff(t, N)
      - sin(q1)*q1'*N.x - cos(q1)*q1'*N.z
      >>> A.x.diff(t, N).express(A).simplify()
      - q1'*A.z
      >>> B = ReferenceFrame('B')
      >>> u1, u2 = dynamicsymbols('u1, u2')
      >>> v = u1 * A.x + u2 * B.y
      >>> v.diff(u2, N, var_in_dcm=False)
      B.y
  
      """
  
      from sympy.physics.vector.frame import _check_frame
  
      _check_frame(frame)
      var = sympify(var)
  
      inlist = []
  
      for vector_component in self.args:
          measure_number = vector_component[0]
          component_frame = vector_component[1]
          if component_frame == frame:
              inlist += [(measure_number.diff(var), frame)]
          else:
              # If the direction cosine matrix relating the component frame
              # with the derivative frame does not contain the variable.
              if not var_in_dcm or (
                  frame.dcm(component_frame).diff(var) == zeros(3, 3)
              ):
                  inlist += [
                      (measure_number.diff(var), component_frame)
                  ]
              else:  # else express in the frame
                  reexp_vec_comp = Vector([vector_component]).express(
                      frame
                  )
                  deriv = reexp_vec_comp.args[0][0].diff(var)
                  inlist += Vector([(deriv, frame)]).args
  
      return Vector(inlist)
  
imports: from sympy import S, sympify, expand, sqrt, Add, zeros, acos, ImmutableMatrix, simplify
  from sympy.simplify.trigsimp import trigsimp
  from sympy.printing.defaults import Printable
  from sympy.utilities.misc import filldedent
  from sympy.core.evalf import EvalfMixin
  from mpmath.libmp.libmpf import prec_to_dps
label_desc: Use image node_id 22 for calling the Vector obj's underlying member method code with example usage: obj.diff(var, frame, var_in_dcm) and returns: Vector