K ia`ddlmZddlmZmZddlmZddlmZddl m Z dgZ GddeZ y) )S)crossdot)BodyBase)inertia_of_point_mass)sympy_deprecation_warningParticlecZeZdZdZej Zdfd ZdZdZ dZ dZ dZ xZ S) r anA particle. Explanation =========== Particles have a non-zero mass and lack spatial extension; they take up no space. Values need to be supplied on initialization, but can be changed later. Parameters ========== name : str Name of particle point : Point A physics/mechanics Point which represents the position, velocity, and acceleration of this Particle mass : Sympifyable A SymPy expression representing the Particle's mass potential_energy : Sympifyable The potential energy of the Particle. Examples ======== >>> from sympy.physics.mechanics import Particle, Point >>> from sympy import Symbol >>> po = Point('po') >>> m = Symbol('m') >>> pa = Particle('pa', po, m) >>> # Or you could change these later >>> pa.mass = m >>> pa.point = po c(t||||y)N)super__init__)selfnamepointmass __class__s f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/physics/mechanics/particle.pyr zParticle.__init__1s ud+cR|j|jj|zS)aLinear momentum of the particle. Explanation =========== The linear momentum L, of a particle P, with respect to frame N is given by: L = m * v where m is the mass of the particle, and v is the velocity of the particle in the frame N. Parameters ========== frame : ReferenceFrame The frame in which linear momentum is desired. Examples ======== >>> from sympy.physics.mechanics import Particle, Point, ReferenceFrame >>> from sympy.physics.mechanics import dynamicsymbols >>> from sympy.physics.vector import init_vprinting >>> init_vprinting(pretty_print=False) >>> m, v = dynamicsymbols('m v') >>> N = ReferenceFrame('N') >>> P = Point('P') >>> A = Particle('A', P, m) >>> P.set_vel(N, v * N.x) >>> A.linear_momentum(N) m*v*N.x )rrvelrframes rlinear_momentumzParticle.linear_momentum4s!Jyy4::>>%000rct|jj||j|jj |zS)aAngular momentum of the particle about the point. Explanation =========== The angular momentum H, about some point O of a particle, P, is given by: ``H = cross(r, m * v)`` where r is the position vector from point O to the particle P, m is the mass of the particle, and v is the velocity of the particle in the inertial frame, N. Parameters ========== point : Point The point about which angular momentum of the particle is desired. frame : ReferenceFrame The frame in which angular momentum is desired. Examples ======== >>> from sympy.physics.mechanics import Particle, Point, ReferenceFrame >>> from sympy.physics.mechanics import dynamicsymbols >>> from sympy.physics.vector import init_vprinting >>> init_vprinting(pretty_print=False) >>> m, v, r = dynamicsymbols('m v r') >>> N = ReferenceFrame('N') >>> O = Point('O') >>> A = O.locatenew('A', r * N.x) >>> P = Particle('P', A, m) >>> P.point.set_vel(N, v * N.y) >>> P.angular_momentum(O, N) m*r*v*N.z )rrpos_fromrrrrrs rangular_momentumzParticle.angular_momentum[s<TTZZ((/YY!668 8rctj|jzt|jj ||jj |zS)aKinetic energy of the particle. Explanation =========== The kinetic energy, T, of a particle, P, is given by: ``T = 1/2 (dot(m * v, v))`` where m is the mass of particle P, and v is the velocity of the particle in the supplied ReferenceFrame. Parameters ========== frame : ReferenceFrame The Particle's velocity is typically defined with respect to an inertial frame but any relevant frame in which the velocity is known can be supplied. Examples ======== >>> from sympy.physics.mechanics import Particle, Point, ReferenceFrame >>> from sympy import symbols >>> m, v, r = symbols('m v r') >>> N = ReferenceFrame('N') >>> O = Point('O') >>> P = Particle('P', O, m) >>> P.point.set_vel(N, v * N.y) >>> P.kinetic_energy(N) m*v**2/2 )rHalfrrrrrs rkinetic_energyzParticle.kinetic_energysEHvv !C u(=(, u(=%?? ?rc.tddd||_y)Nz The sympy.physics.mechanics.Particle.set_potential_energy() method is deprecated. Instead use P.potential_energy = scalar z1.5zdeprecated-set-potential-energy)deprecated_since_versionactive_deprecations_target)rpotential_energy)rscalars rset_potential_energyzParticle.set_potential_energys!!  "'#D !'rcbt|j|jj||S)aReturns an inertia dyadic of the particle with respect to another point and frame. Parameters ========== point : sympy.physics.vector.Point The point to express the inertia dyadic about. frame : sympy.physics.vector.ReferenceFrame The reference frame used to construct the dyadic. Returns ======= inertia : sympy.physics.vector.Dyadic The inertia dyadic of the particle expressed about the provided point and frame. )rrrrrs r parallel_axiszParticle.parallel_axiss+(%TYY 0C0CE0J%*, ,r)NN)__name__ __module__ __qualname____doc__r masscenterrr rrr r&r( __classcell__)rs@rr r s7#H   E,%1N+8Z%?N ',rN) sympyrsympy.physics.vectorrr!sympy.physics.mechanics.body_basersympy.physics.mechanics.inertiarsympy.utilities.exceptionsr__all__r rrr6s)+6A@ ,G,xG,r