Skip to main content

Electromagnetic simulation tools

Project description

meanas

meanas is a python package for electromagnetic simulations

** UNSTABLE / WORK IN PROGRESS **

Formerly known as fdfd_tools.

This package is intended for building simulation inputs, analyzing simulation outputs, and running short simulations on unspecialized hardware. It is designed to provide tooling and a baseline for other, high-performance purpose- and hardware-specific solvers.

Contents

  • Finite difference frequency domain (FDFD)
    • Library of sparse matrices for representing the electromagnetic wave equation in 3D, as well as auxiliary matrices for conversion between fields
    • Waveguide mode operators
    • Waveguide mode eigensolver
    • Stretched-coordinate PML boundaries (SCPML)
    • Functional versions of most operators
    • Anisotropic media (limited to diagonal elements eps_xx, eps_yy, eps_zz, mu_xx, ...)
    • Arbitrary distributions of perfect electric and magnetic conductors (PEC / PMC)
  • Finite difference time domain (FDTD)
    • Basic Maxwell time-steps
    • Poynting vector and energy calculation
    • Convolutional PMLs

This package does not provide a fast matrix solver, though by default meanas.fdfd.solvers.generic(...) will call scipy.sparse.linalg.qmr(...) to perform a solve. For 2D FDFD problems this should be fine; likewise, the waveguide mode solver uses scipy's eigenvalue solver, with reasonable results.

For solving large (or 3D) FDFD problems, I recommend a GPU-based iterative solver, such as opencl_fdfd or those included in MAGMA. Your solver will need the ability to solve complex symmetric (non-Hermitian) linear systems, ideally with double precision.

Installation

Requirements:

  • python >=3.11
  • numpy
  • scipy

Install from PyPI with pip:

pip3 install 'meanas[dev]'

Development install

Install python3 and git:

# This is for Debian/Ubuntu/other-apt-based systems; you may need an alternative command
sudo apt install python3 build-essential python3-dev git

In-place development install:

# Download using git
git clone https://mpxd.net/code/jan/meanas.git

# If you'd like to create a virtualenv, do so:
python3 -m venv my_venv

# If you are using a virtualenv, activate it
source my_venv/bin/activate

# Install in-place (-e, editable) from ./meanas, including development dependencies ([dev])
pip3 install --user -e './meanas[dev]'

# Run tests
cd meanas
python3 -m pytest -rsxX | tee test_results.txt

See also:

Use

See examples/ for some simple examples; you may need additional packages such as gridlock to run the examples.

Project details


Download files

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

Source Distribution

meanas-0.9.tar.gz (191.0 kB view details)

Uploaded Source

Built Distribution

meanas-0.9-py3-none-any.whl (103.3 kB view details)

Uploaded Python 3

File details

Details for the file meanas-0.9.tar.gz.

File metadata

  • Download URL: meanas-0.9.tar.gz
  • Upload date:
  • Size: 191.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for meanas-0.9.tar.gz
Algorithm Hash digest
SHA256 b5cb1a81a408a35efcbde8439b821fd09815a4385bb78fc1fd0622ebd2442634
MD5 bd2daf815a9126e34e3c8bdb6a78052c
BLAKE2b-256 2e65f98f7ff13c052cf0b090af2aa6c2e8991c8b53a57d5992fe6f99298cac1a

See more details on using hashes here.

File details

Details for the file meanas-0.9-py3-none-any.whl.

File metadata

  • Download URL: meanas-0.9-py3-none-any.whl
  • Upload date:
  • Size: 103.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for meanas-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b9af24c5a116543202fc202a7323e9daa84cd64b7348abecaa541b1391d10bde
MD5 560dff7449eb80edd500461ccf7d88ed
BLAKE2b-256 f450c4901319f4c303d3f8514fd9069170beb38f52be6875bb7c7f5d9f48d0fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page