Overview
PyAnsys Units is a Python library designed for managing physical quantities, which are combinations of numerical values and corresponding units of measurement. This package facilitates arithmetic operations and conversions between various units.
With a modular design, PyAnsys Units offers the flexibility to extend or modify its extensive list of physical units and unit systems without altering the source code. It seamlessly integrates with NumPy mathematical operations.
PyAnsys Units comes bundled with a comprehensive set of physical units, prefixes, and constants and boasts complete test coverage.
Documentation and issues
Documentation for the latest stable release of PyAnsys Units is hosted at PyAnsys Units documentation.
In the upper right corner of the documentation’s title bar, there is an option for switching from viewing the documentation for the latest stable release to viewing the documentation for the development version or previously released versions.
On the PyAnsys Units Issues page, you can create issues to report bugs, and request new features. On the PyAnsys Units Discussions page or the Discussions page on the Ansys Developer portal, you can post questions, share ideas, and get community feedback.
To reach the project support team, email pyansys.core@ansys.com.
Installation
The ansys.units package supports Python 3.10 through Python 3.14 on Windows and Linux.
Install the latest release from PyPI with this command:
pip install ansys-units
If you plan on doing local development of PyAnsys Units with Git, install the latest release with these commands:
git clone https://github.com/ansys/pyansys-units.git
cd pyansys-units
pip install pip -U
pip install -e .
Getting started
PyAnsys Units supports flexible instantiation of Quantity objects along with symbolic calculations using the standard operators:
import ansys.units as ansunits
from ansys.units.common import m
# Using the pre-defined units in ansys.units.common
volume = 1 * m**3
volume.value # 1.0
volume.units.name # "m^3"
# Using unit strings
volume = ansunits.Quantity(value=1, units="m^3")
volume.value # 1.0
volume.units.name # "m^3"
# Using Unit instances
ureg = ansunits.UnitRegistry()
mass = ansunits.Quantity(value=1, units=ureg.kg)
volume.value # 1.0
volume.units.name # "kg"
# Using base dimensions
dims = ansunits.BaseDimensions
dimensions = ansunits.Dimensions({dims.LENGTH: 1, dims.TIME: -2})
acceleration = ansunits.Quantity(value=3, dimensions=dimensions)
acceleration.value # 3.0
acceleration.units.name # "m s^-2"
# Using the quantity map
torque = ansunits.Quantity(5, quantity_map={"Torque": 1})
torque.value # 5.0
torque.units.name # "N m"
torque.si_units # "kg m^2 s^-2"
With NumPy installed, you can instantiate a Quantity using either a list of floats or a NumPy array:
from ansys.units.common import m, s
import numpy as np
length_array_quantity = np.array([1.0, 6.0, 7.0]) * m
length_array_quantity[1] # Quantity(6.0, "m")
time = 2 * s
speed = length_array_quantity / time
speed # Quantity([0.5 3. 3.5], "m s^-1")
You can instantiate unit systems with one of two methods:
# Use a pre-defined unit system
si = ansunits.UnitSystem(system="SI")
si.base_units # ['kg', 'm', 's', 'K', 'delta_K', 'radian', 'mol', 'cd', 'A', 'sr']
# Define a custom unit system from a dictionary of base units. Any unspecified
# unit will default to the SI equivalent.
ureg = ansunits.UnitRegistry()
dims = ansunits.BaseDimensions
sys = ansunits.UnitSystem(
base_units={
dims.MASS: ureg.slug,
dims.LENGTH: ureg.ft,
dims.TEMPERATURE: ureg.R,
dims.TEMPERATURE_DIFFERENCE: ureg.delta_R,
dims.CHEMICAL_AMOUNT: ureg.slugmol,
}
)
sys.base_units # ['slug', 'ft', 's', 'R', 'delta_R', 'radian', 'slugmol', 'cd', 'A', 'sr']
Examples
Perform arithmetic operations:
from ansys.units.common import degree, m, s
deg = 90 * degree
math.sin(deg) # 1.0
v1 = 10.0 * m / s
v2 = 5.0 * m / s
v3 = v1 - v2
v3.value # 5.0
vpow = v1**2
vpow.value # 100.0
vpow.units # "m^2 s^-2"
Directly convert values to another set of units:
from ansys.units.common import lb, ft, s, Pa
flbs = 1 * lb / ft / s
flbs.value # 1
pas = flbs.to(Pa * s)
pas.value # 1.4881639435695542
pas.units.name # 'Pa s'
Use a custom unit system to perform conversions:
import ansys.units as ansunits
from ansys.units.common import kg, m, s
ureg = ansunits.UnitRegistry()
dims = ansunits.BaseDimensions
sys = ansunits.UnitSystem(
base_units={
dims.MASS: ureg.slug,
dims.LENGTH: ureg.ft,
dims.TEMPERATURE: ureg.R,
dims.TEMPERATURE_DIFFERENCE: ureg.delta_R,
dims.CHEMICAL_AMOUNT: ureg.slugmol,
}
)
v = 10 * kg * m * s**2
v2 = sys.convert(v)
v2.value # 2.2480894309971045
v2.units.name # 'slug ft s^2'
License
PyAnsys Units is licensed under the MIT license. For more information, see the LICENSE file.
Metadata
Release files for ansys-units 0.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ansys_units-0.13.0.tar.gz | 50.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ansys_units-0.13.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.5 kB
Release files / ansys_units-0.13.0.tar.gz
| Download URL | ansys_units-0.13.0.tar.gz |
|---|---|
| Size | 50.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2cd7f173ab786d8b070dadc6cdfb9b3d17454ff51cf6d6d7d8f62d3c75be5629
|
|
BLAKE2b-256 checksum How to use checksums |
eb5f15955b564e7345320b77e912bf0fb38a19ae25285438874c98229b188c11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / ansys_units-0.13.0-py3-none-any.whl
| Download URL | ansys_units-0.13.0-py3-none-any.whl |
|---|---|
| Size | 66.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6e2bfb8efafd667e98dcffa9285bc706785c7bd94d34157cfd750a2793f46e9
|
|
BLAKE2b-256 checksum How to use checksums |
48f76ff3b93b29bae97700dfd70fb7dc33d9f045c69234a208d688a01dd8f3a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency log