.. toctree:: :maxdepth: 2 library examples
EMEpy is an open-source eigenmode expansion solver implemented in Python.
Key Features
- Free and open-source
- Easy to use, great for educators
- Computationally enhancing, great for designers
- Complete design capabilities in Python
Eigenmode Expansion (EME) is a method of simulating light through optical structures that operates in the frequency domain. The algorithm works by utilizing some useful properties of light. First, light exists as a superposition of eigenmodes that satisfy Maxwell's equations inside the structure. The eigenmodes are composed of a field pattern and an eigenvalue,
The EME algorithm utilizes this property by taking geometric structures and representing them as a series of continuous structures in the direction of propagation. This way, each section of the geometry can contain an set of eigenmodes and phase changes. At each intersection between sections, the power of the input eigenmodes transfer into the power of the output eigenmodes. However, unless the to sets of modes are identical, reflection can also occur.
To calculate the proportion of power that transmits and reflects from any given mode to another, the overlap is calculated and a system of equations is solved. Together, the intersection mode overlap and phase propagation are cascaded and provide a set of s-parameters for the device. EMEpy can be used to calculate these values and produce s-parameters for users' geometry.
EMEpy can be found on pip.
pip install emepy
For the latest version, the source code can be found on GitHub. Clone the directory onto your local desktop with:
git clone --depth 1 git@github.com:BYUCamachoLab/emepy.git
Then install from within the repo:
pip install -e .
To install the neural network models:
Read these instructions