Skip to main content

A computational E&M package for learning the fundimentals

Project description

pyEMLearn

A computational E&M library written in python, intended for learning the fundamentals

Installation

pyEMLearn is available through pip:

 $ pip3 install pyEMLearn

(or just pip if you are on windows, or have aliased your python3 installation)

Development

To install toward developing this package: fork and download this repo from github, open a terminal in the head directory and run:

 $ python3 -m venv venv
 $ source venv/bin/activate
 (venv) $ pip install -r requirements.txt
 (venv) $ python setup.py install

This will create a virtual environment, activate it, install the required packages, then install the current version of pyEMLearn into your virtual environment.

After you have made changes to the source code, re-run the last line to install your modified version.

Creating source packages

 $ python3 setup.py sdist bdist_wheel

Uploading to PyPI

 $ python3 -m twine upload dist/*

Development Philosophy

This package is really intended as a learning tool, rather than a full computational workhorse. As a result, much of the core code is deliberately inefficient so as to be more closely connected with the theory of the scattering (transfer) matrix methods. There are plenty of other computational E&M libraries which are both more efficient and have more sophisticated features (like EMpy, EMUstack and Rigorous-Couple-Wave-Analysis ] to name a few). So, development in pyEMLearn will always prioritize user-clarity over code-efficiency.

Acknowledgements

The authors would like to thank Dr. Raymond Rumpf (of UTEP) for his extensive educational resources, on which this project is principally based.

To Do

  • Comment Everything . . .
  • Add some descriptive examples
  • Add some better examples
  • Restructure the catalog
  • Add more materials to the catalog
  • Add transmittance matrix approach
  • Create source object, which can produce k-vecs and polarization vecs
  • Create field object? which can track E?
  • Add Poynting vector functionality to field object
  • Begin thinking about RCWA
  • Fix RCWA, its broke AF

V1 To Do, Obsolete

  • Flesh out interface object with "t" matrix
  • Add interface object to layers objects (and halfplane objects)
  • Modify utils objects to be more general
  • Change materials repr functions to NOT return parameters, put that in a "summary" function
  • Finish Docstring-ing
  • Restructure the materials catalog
  • Add more asserts to System.init to make sure that transmission layers arn't actually injection layers, or gap layers arn't actually just thickness zero layers, etc.
  • Improve computational efficiency for LHI materials? (using 2c.pdf)
  • Spend some time making all the class variable names consistent in their case/-/_ usage
  • Add config and license files
  • Get Setup on PyPi
  • Add anisotropy functionality
  • Make some better examples (bragg reflectors)
  • Add parallelization options for parameter sweep calculations
  • Add ellipsometric variable support
  • Add internal field support

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

pyEMLearn-0.2.0.tar.gz (42.4 kB view details)

Uploaded Source

Built Distribution

pyEMLearn-0.2.0-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyEMLearn-0.2.0.tar.gz
  • Upload date:
  • Size: 42.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyEMLearn-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b4953b8585fdf5455b43e00bd8363058c2b2b5a3d56b58d0100cb1d714074cae
MD5 fab393733d730917d69188f64b04461f
BLAKE2b-256 b183e7bfebc96aa590c0af9a0eae10a2db9983e31015ab7c699beadaec763740

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyEMLearn-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyEMLearn-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e59c1cca20c95fe7842f44c75aa8691c722cff95e2bd4e5613837d6f9fc7953
MD5 4807392b272bb2e517c6254d98819c96
BLAKE2b-256 07bbba8a44aa2e02805a1e0c481797d1be5ba54a7cb68ef34e2a39d13e5c3658

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