Skip to main content

PhysTensor

PhysTensor Logo

PhysTensor

A strictly-typed physical tensor library for deterministic scientific computing.

Python License Build PyPI Typing CI


Overview

Scientific computing libraries excel at numerical operations but generally treat tensors as dimensionless arrays. This allows mathematically valid yet physically incorrect computations—for example, adding pressure to velocity or multiplying incompatible quantities without warning.

PhysTensor closes this gap by embedding physical dimensions and units directly into tensor operations. Every computation preserves dimensional information, enabling automatic validation of physical consistency while maintaining a familiar tensor programming experience.

Rather than replacing existing numerical backends, PhysTensor acts as a physics-aware layer that integrates dimensional analysis with modern tensor computation.


Why PhysTensor?

PhysTensor is designed around one principle:

A computation should be mathematically valid and physically meaningful.

The library combines:

  • Strictly typed tensor objects
  • Physical units and dimensions
  • Automatic dimensional analysis
  • Deterministic execution
  • Backend-agnostic tensor computation
  • Engineering-oriented validation

Features

Physics-Aware Tensors

Every tensor carries physical dimensional information alongside its numerical values.

Example quantities include:

  • Length
  • Time
  • Mass
  • Temperature
  • Current
  • Velocity
  • Acceleration
  • Force
  • Pressure
  • Energy
  • Power

Automatic Dimensional Analysis

PhysTensor validates every operation.

Examples:

✅ Force × Distance → Energy

✅ Velocity × Time → Distance

❌ Pressure + Velocity

❌ Energy + Temperature

Invalid operations raise informative exceptions before incorrect results propagate through a scientific workflow.


Strict Typing

Designed for modern Python tooling.

  • mypy
  • pyright
  • Ruff
  • IDE autocompletion

Deterministic Scientific Computing

PhysTensor prioritizes reproducibility by ensuring computations produce consistent results across scientific and engineering workflows.


Backend Agnostic

PhysTensor is designed to integrate with existing numerical ecosystems rather than replace them.

Potential backends include:

  • NumPy
  • PyTorch
  • JAX

Extensible Unit System

Define custom physical dimensions and derived quantities for specialized engineering domains.


Installation

pip install phystensor

For development:

git clone https://github.com/OWNER/phystensor.git

cd phystensor

pip install -e .[dev]

Quick Start

from phystensor import Tensor
from phystensor.units import Meter, Second

distance = Tensor([10], unit=Meter)
time = Tensor([2], unit=Second)

velocity = distance / time

print(velocity)

Output

5 m/s

Safety Example

pressure + velocity

Output

DimensionMismatchError:
Cannot add Pressure to Velocity.

Applications

PhysTensor is suitable for:

  • Scientific computing
  • Computational physics
  • Physics-informed machine learning
  • Digital twins
  • Robotics
  • Aerospace engineering
  • Mechanical engineering
  • Electrical engineering
  • Renewable energy systems
  • Battery modeling
  • Industrial simulation

Architecture

                 User Application
                        │
                ┌───────▼────────┐
                │   PhysTensor   │
                ├────────────────┤
                │ Typed Tensors  │
                │ Unit System    │
                │ Validation     │
                │ Dimensional    │
                │ Analysis       │
                └───────┬────────┘
                        │
        ┌───────────────┼────────────────┐
        │               │                │
      NumPy          PyTorch          JAX

Roadmap

Core

  • Typed physical tensors
  • Automatic dimensional analysis
  • Unit propagation

Future

  • Sparse tensors
  • GPU acceleration
  • Automatic differentiation
  • Symbolic dimensions
  • PDE utilities
  • Finite element helpers
  • Physics-informed optimization

Testing

pytest

Static analysis:

ruff check .

black --check .

mypy .

Contributing

Contributions are welcome.

Please:

  1. Fork the repository.
  2. Create a feature branch.
  3. Add tests.
  4. Ensure all CI checks pass.
  5. Submit a pull request.

Citation

If you use PhysTensor in research, please cite:

@software{phystensor,
  title  = {PhysTensor},
  author = {Asif Kazi},
  year   = {2026},
  url    = {https://github.com/ksaad20/phystensor}
}

License

Released under the Apache License 2.0.

See the LICENSE file for details.


Vision

PhysTensor aims to provide a reliable foundation for physics-aware tensor computing, enabling researchers and engineers to write software that respects both mathematical correctness and physical laws.


PhysTensor
Tensor computing with physical meaning.

Release files for phystensor 0.1.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 phystensor 0.1.0
File Size Uploaded
phystensor-0.1.0.tar.gz 31.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for phystensor 0.1.0
File Interpreter ABI Platform
phystensor-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 69.6 kB

Release files / phystensor-0.1.0.tar.gz

Download URL phystensor-0.1.0.tar.gz
Size 31.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6e558bd2f714079f894f62d26385862e3ea752f4d46e365e2d050200534a4e08
BLAKE2b-256 checksum
How to use checksums
05758d0c84703492f9a02180777293e014fe127db0e48796e91499de5e618b2f
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 Jul 29, 2026.

Transparency log

Release files / phystensor-0.1.0-py3-none-any.whl

Download URL phystensor-0.1.0-py3-none-any.whl
Size 38.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
874c4cf1c781d6b5c5fe67b2fee9752caaa97e02fa96f17d7d8900a4dd1a13f2
BLAKE2b-256 checksum
How to use checksums
6d39083e30ce3902cd2e076bc5c651124209dcec9dc7c7ef12e91eda1b71b88e
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 Jul 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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