Karana.Math.Kquantities
=======================

.. py:module:: Karana.Math.Kquantities

.. autoapi-nested-parse::

   Simulation quantities and unit conversion tools.

   This module contains common quantities used throughout simulations. It also contains
   helper functions to convert a given quantity to the simulation's units. In addition,
   it contains functions to define and set a units system. The default is SI.



Attributes
----------

.. autoapisummary::

   Karana.Math.Kquantities.ureg
   Karana.Math.Kquantities.length
   Karana.Math.Kquantities.angle
   Karana.Math.Kquantities.mass
   Karana.Math.Kquantities.time
   Karana.Math.Kquantities.velocity
   Karana.Math.Kquantities.angular_velocity
   Karana.Math.Kquantities.acceleration
   Karana.Math.Kquantities.angular_acceleration
   Karana.Math.Kquantities.force
   Karana.Math.Kquantities.torque
   Karana.Math.Kquantities.inertia
   Karana.Math.Kquantities.momentum
   Karana.Math.Kquantities.angular_momentum
   Karana.Math.Kquantities.gravitational_parameter
   Karana.Math.Kquantities.linear_spring_constant
   Karana.Math.Kquantities.linear_damping_constant
   Karana.Math.Kquantities.rotational_spring_constant
   Karana.Math.Kquantities.rotational_damping_constant


Functions
---------

.. autoapisummary::

   Karana.Math.Kquantities.__getattr__
   Karana.Math.Kquantities.setUnitRegistry
   Karana.Math.Kquantities.getDefaultUnits
   Karana.Math.Kquantities.convert


Module Contents
---------------

.. py:function:: __getattr__(name)

.. py:data:: ureg
   :type:  pint.UnitRegistry

.. py:function:: setUnitRegistry(ur: pint.UnitRegistry)

   Set the UnitRegistry.

   This sets the units system used for simulation. If this is never called, the default will
   be SI units. If you want something other than SI for your simulation, you should call
   this function before ureg is ever imported from Kquantities.

   :param ur: The new UnitRegistry to use.
   :type ur: UnitRegistry


.. py:data:: length

.. py:data:: angle

.. py:data:: mass

.. py:data:: time

.. py:data:: velocity

.. py:data:: angular_velocity

.. py:data:: acceleration

.. py:data:: angular_acceleration

.. py:data:: force

.. py:data:: torque

.. py:data:: inertia

.. py:data:: momentum

.. py:data:: angular_momentum

.. py:data:: gravitational_parameter

.. py:data:: linear_spring_constant

.. py:data:: linear_damping_constant

.. py:data:: rotational_spring_constant

.. py:data:: rotational_damping_constant

.. py:function:: getDefaultUnits(quantity: pint.util.UnitsContainer) -> pint.facets.plain.objects.PlainUnit

   Get the default units for a quantity.

   :param quantity: The quantity to get default units for.
   :type quantity: UnitsContainer

   :returns: The default units for the provided quantity.
   :rtype: PlainUnit


.. py:function:: convert[T](v: T) -> T

   Convert this quantity to the current units system.


