Skip to main content

PyAnsys Units

PyAnsys PyPI Python GH-CI codecov MIT Black pre-commit.ci status

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'

Use preferred units as a conversion policy:

import ansys.units as ansunits

dims = ansunits.BaseDimensions

mm_tonne_second = ansunits.UnitSystem(
    base_units={
        dims.MASS: "tonne",
        dims.LENGTH: "mm",
        dims.TIME: "s",
    }
)

stress = ansunits.Quantity(210e9, "Pa")

expanded = stress.convert(mm_tonne_second)
expanded.units.name  # 'tonne mm^-1 s^-2'

material_prefs = ansunits.PreferredUnits(["MPa"])
simplified = stress.convert(mm_tonne_second, preferred_units=material_prefs)
simplified.units.name  # 'MPa'

UnitSystem defines base units only. Preferred units such as "MPa" are passed to convert() per call, and they match quantities by dimensions.

License

PyAnsys Units is licensed under the MIT license. For more information, see the LICENSE file.

Metadata

Release files for ansys-units 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ansys-units 0.15.0
File Size Uploaded Provenance
ansys_units-0.15.0.tar.gz 52.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ansys-units 0.15.0
File Interpreter ABI Platform
ansys_units-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 121.1 kB

Release files / ansys_units-0.15.0.tar.gz

Download URL ansys_units-0.15.0.tar.gz
Size 52.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8a1183e07204fd671d821f88c03e57e08606add362e87dd5a07a094948342e9c
BLAKE2b-256 checksum
How to use checksums
b9d3c7a8c2eb8ab11d1935f45c330f88602a35a4c1e65c3b7dd1edaf757232c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 22, 2026.

Transparency log

Release files / ansys_units-0.15.0-py3-none-any.whl

Download URL ansys_units-0.15.0-py3-none-any.whl
Size 68.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f24d1fe77b137a44313745c70e6b31ed70bf75b6888a9e01dd4de78df3b67b8b
BLAKE2b-256 checksum
How to use checksums
73e428c3696addafed85851ee8b16aa4809e4fd1219f028979d53020429feef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 22, 2026.

Transparency log

Security for ansys-units 0.15.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ansys_units-0.15.0.tar.gz

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 Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page