Source code for symplyphysics.laws.kinematics.vector.centrifugal_acceleration_via_centripetal_acceleration
"""
Centrifugal acceleration via centripetal acceleration
=====================================================
The vector of *centrifugal acceleration* has the same magnitude as the vector of *centripetal
acceleration* but is directed oppositely to it.
**Links:**
#. `BYJU's <https://byjus.com/physics/centripetal-and-centrifugal-force/>`__.
"""
from symplyphysics import (
units,
validate_input,
validate_output,
Vector,
QuantityVector,
scale_vector,
)
[docs]
def centrifugal_law(centripetal_acceleration_: Vector) -> Vector:
r"""
*Centrifugal acceleration* via centripetal acceleration.
Law:
:code:`a_centrifugal = -1 * a_centripetal`
Latex:
.. math::
\vec a_\text{cf} = - \vec a_\text{cp}
:param centripetal_acceleration\_: :symbols:`acceleration` experienced by the rotating body in an inertial frame.
Symbol: :code:`a_centripetal`
Latex: :math:`\vec a_\text{cp}`
Dimension: *acceleration*
:return: :symbols:`acceleration` experienced by the body in a non-inertial, rotating frame.
Symbol: :code:`a_centrifugal`
Latex: :math:`\vec a_\text{cf}`
Dimension: *acceleration*
"""
return scale_vector(-1, centripetal_acceleration_)
[docs]
def centripetal_law(centrifugal_acceleration_: Vector) -> Vector:
r"""
*Centripetal acceleration* via centrifugal acceleration.
Law:
:code:`a_centripetal = -1 * a_centrifugal`
Latex:
.. math::
\vec a_\text{cp} = - \vec a_\text{cf}
:param centrifugal_acceleration\_: :symbols:`acceleration` experienced by the body in a non-inertial, rotating frame.
Symbol: :code:`a_centripetal`
Latex: :math:`\vec a_\text{cp}`
Dimension: *acceleration*
:return: :symbols:`acceleration` experienced by the rotating body in an inertial frame.
Symbol: :code:`a_centripetal`
Latex: :math:`\vec a_\text{cp}`
Dimension: *acceleration*
"""
return scale_vector(-1, centrifugal_acceleration_)
@validate_input(centripetal_acceleration_=units.acceleration)
@validate_output(units.acceleration)
def calculate_centrifugal_acceleration(
centripetal_acceleration_: QuantityVector,) -> QuantityVector:
result_vector = centrifugal_law(centripetal_acceleration_.to_base_vector())
return QuantityVector.from_base_vector(result_vector)