User Friendly Magnetic Field Calculations
Project description
Pymagnet
User friendly magnetic field calculations in Python
Getting Started
Installing pymagnet
can be done using
python -m pip install pymagnet
Pymagnet is a collection of routines to calculate and plot the magnetic field due to arbitrary 2D and 3D objects, like cubes or cylinders, as well as complex non-convex structures stored in STL files. The library can also calculate the magnetic forces and torques on one magnet due to all other magnets in the system.
The approach assumes the magnets are uniformly magnetised, and fully transparent to magnetic fields. There are some drawbacks to this compared to Finite Element Methods (FEM), but with the advantage of significantly faster calculations.
The current version is written in Python with some speed up using Numpy and Numba, but the backend is being ported to Rust for improved performance.
Features
This code uses analytical expressions to calculate the magnetic field due to simple magnets:
- 3D: cubes, prisms (cuboids), cylinders, spheres
- 2D: rectangles, squares, circles
and complex compound objects:
- 3D: Polyhedra stored as STL meshes
- 2D: Polygons constructed from collections of line elements
There are helper functions to plot the data as line, contour, slice, and volume plots, but the underlying data is also accessible.
Documentation
Full documentation can be found here: https://pdunne.github.io/pymagnet/
Examples
Examples can be found in the repository.
Or run on Colab:
2D Examples
3D Examples
Forces and Torques
Binder
The example notebooks can be run as an instance using Binder:
Usage
Forms of this library have been used in a number of projects including Liquid flow and control without solid walls, Nature 2020.
Licensing
Source code licensed under the Mozilla Public License Version 2.0
Documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
This is a human-readable summary of (and not a substitute for) the license, adapted from CS50x. Official translations of this license are available in other languages.
You are free to:
- Share — copy and redistribute the material in any medium or format.
- Adapt — remix, transform, and build upon the material.
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original
- No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pymagnet-0.4.1.tar.gz
.
File metadata
- Download URL: pymagnet-0.4.1.tar.gz
- Upload date:
- Size: 59.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a03673bf0349800ea36a3230f2f77f530a62ab6441aede2a8fccdea360a34818 |
|
MD5 | dfdbcaaac06243fb82aaa6a8aea46179 |
|
BLAKE2b-256 | 569553b4c9aa1743e76b082b611950ea298f2d6621eafba0dafa2c8dde61cea2 |
File details
Details for the file pymagnet-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: pymagnet-0.4.1-py3-none-any.whl
- Upload date:
- Size: 73.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a172aaed97dad9a7030df03553346128236851cdb57dad05f7486dba66f0fb |
|
MD5 | a33db61ae364b59361a23074fc364a5d |
|
BLAKE2b-256 | 96f4ec10ec81ca6d7f2649170a7bbf77c57ad80e4a2055500d7ad98d06f85378 |