Skip to main content

Inductance

PyPI Status Python Version License Read the documentation at https://inductance.readthedocs.io/ Tests Codecov pre-commit Ruff

This is a python library to calculate inductance. Mostly for the purposes of calcualting magnetically confined plasmas. It might someday actually contain some plasma physics, but lets not get too carried away.

Features

  • Self-inductance formulas

    • self inductance of circular, circular hollow, and rectangular section by Maxwell's approximation
    • Lyle's approximation for thick coil solenoid self inductances to 4th and 6th order.
    • Butterworth's approximation for long solenoids
    • Lorentz's perfect analytic solution for current sheet solenoids
    • Babic and Akyel's approximation for thin solenoids
  • Mutual-inductance formulas

    • mutual inductance of filaments (Maxwell)
  • Filamentary models

    • utility functions to create filament arrays from rectangular definitions of coils and subcoils
    • calculation for filament array mutual inductance
    • calculation of filament array self inductance
  • Green's functions

    • calculation of Green's functions for Psi, Br, and Bz from filamented coils to points
      • with Numba, calculation of green's functions for arbitrary grids of points
    • calculation fo Green's functions for coil forces
  • Arbitrary coil shapes

    • rudimentary support for arbitrary wire filament coil shapes

Requirements

Inductance requires NumPy and uses Numba for acceleration. It is written in mostly pure python referencing academic articles for calculating inductances by various methods, most of which rely on elliptic functions. Inductance provides Numba accelerated pure python elliptic functions.

Numba is optional, though it is installed by default. Without it, Inductance falls back to pure python: everything still works, just slower, apart from the vectorized Green's function helpers (BrGreenFil, BzGreenFil, AGreenFil), which stay callable but are no longer generalized ufuncs, so they need an explicit output array. The plan is to provide different options, including with alternative accelerators, such as JAX. The requirements are:

  • python >= 3.11
  • numpy >= 2.3
  • numba >= 0.63 — optional, installed by default on any python Numba supports

Installation

You can install inductance via pip from PyPI:

$ pip install inductance

That installs Numba too. On a python newer than Numba supports, it is skipped automatically so the install still succeeds; once Numba catches up, ask for it explicitly with:

$ pip install "inductance[numba]"

To install without Numba on a python that does support it:

$ pip install --no-deps inductance numpy

If Numba is installed but you want to bypass compilation — when debugging, or under coverage — set NUMBA_DISABLE_JIT=1 in the environment instead.

Reference

Please see the reference for details.

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, inductance is free and open source software.

Issues

For now, this is a very early release. It is likely a new top level API will be developed as the library matures.

If you encounter any problems, please file an issue along with a detailed description.

Credits

This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inductance-0.2.0.tar.gz (181.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inductance-0.2.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file inductance-0.2.0.tar.gz.

File metadata

  • Download URL: inductance-0.2.0.tar.gz
  • Upload date:
  • Size: 181.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for inductance-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f44cc4254df79b69e7b8c23828441232d9ea9ff982477e55502b79055ff4ba2e
MD5 bafc1987cfed2da8ec2d3356da47922d
BLAKE2b-256 e3453565006da039db14ac4d2fe408446b7d21226abbcbbccc175d316225b3c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for inductance-0.2.0.tar.gz:

Publisher: release.yml on dgarnier/inductance

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file inductance-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: inductance-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for inductance-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e385b9781f67d47ba47ea35c233ee94a4053aa46331491e07123c4be6f78ba8f
MD5 4f1aaeb960175681054603f55caa1a80
BLAKE2b-256 a72c3b69068e5463daa0727072c63d65a15e8ae3b808451cae87ed181e3b388a

See more details on using hashes here.

Provenance

The following attestation bundles were made for inductance-0.2.0-py3-none-any.whl:

Publisher: release.yml on dgarnier/inductance

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page