|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| examples/ | H | 23-Oct-2020 | - | 1,430 | 1,131 |
| m4/ | H | 15-May-2020 | - | 9,674 | 8,756 |
| mpb/ | H | 23-Oct-2020 | - | 9,178 | 7,119 |
| src/ | H | 23-Oct-2020 | - | 13,605 | 9,887 |
| tests/ | H | 23-Oct-2020 | - | 2,429 | 1,972 |
| utils/ | H | 23-Oct-2020 | - | 1,755 | 1,500 |
| AUTHORS | H A D | 13-Feb-2019 | 242 | 9 | 6 |
| COPYING | H A D | 03-Apr-2014 | 17.6 KiB | 341 | 281 |
| COPYRIGHT | H A D | 29-Jul-2020 | 787 | 18 | 16 |
| Makefile.am | H A D | 20-Jan-2018 | 181 | 13 | 9 |
| Makefile.in | H A D | 23-Oct-2020 | 26.1 KiB | 853 | 754 |
| NEWS.md | H A D | 23-Oct-2020 | 20.9 KiB | 607 | 392 |
| README.md | H A D | 13-Feb-2019 | 2.3 KiB | 27 | 18 |
| TODO | H A D | 03-Apr-2014 | 361 | 12 | 6 |
| aclocal.m4 | H A D | 23-Oct-2020 | 42.9 KiB | 1,183 | 1,075 |
| compile | H A D | 21-Mar-2020 | 7.2 KiB | 349 | 259 |
| config.guess | H A D | 21-Mar-2020 | 47.3 KiB | 1,668 | 1,457 |
| config.h.in | H A D | 23-Oct-2020 | 7.8 KiB | 298 | 200 |
| config.sub | H A D | 21-Mar-2020 | 30.9 KiB | 1,794 | 1,637 |
| configure | H A D | 23-Oct-2020 | 713.7 KiB | 24,407 | 20,912 |
| configure.ac | H A D | 23-Oct-2020 | 21.9 KiB | 613 | 525 |
| depcomp | H A D | 21-Mar-2020 | 23 KiB | 792 | 502 |
| install-sh | H A D | 21-Mar-2020 | 15.3 KiB | 530 | 346 |
| ltmain.sh | H A D | 15-Feb-2015 | 316.5 KiB | 11,148 | 7,979 |
| missing | H A D | 21-Mar-2020 | 6.7 KiB | 216 | 143 |
README.md
1[![Latest Docs](https://readthedocs.org/projects/pip/badge/?version=latest)](http://mpb.readthedocs.io/en/latest/)
2[![Build Status](https://travis-ci.org/NanoComp/mpb.svg?branch=master)](https://travis-ci.org/NanoComp/mpb)
3
4MPB is a free and open-source software package for computing electromagnetic band structures and modes.
5
6## Features
7
8- **Free and open-source software** under the [GNU GPL](https://en.wikipedia.org/wiki/GNU_General_Public_License).
9- Complete **scriptability** via [Python](Python_Tutorial) or [Scheme](Scheme_User_Interface) APIs.
10- Portable to any Unix-like system such as [Linux](https://en.wikipedia.org/wiki/Linux), [macOS](https://en.wikipedia.org/wiki/MacOS), and [FreeBSD](https://en.wikipedia.org/wiki/FreeBSD).
11- Distributed memory **parallelism** on any system supporting the [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface) standard.
12- Fully-vectorial **1d, 2d, 3d** calculations. Iterative eigensolver techniques are employed to make large calculations possible.
13- **Direct, frequency-domain eigensolver** as opposed to indirect methods, e.g. time-domain. This means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time. See [comparison of time-domain and frequency-domain techniques](Introduction.md#frequency-domain-vs-time-domain).
14- **Targeted eigensolver**. Iterative eigensolvers normally compute states (harmonic modes) with the lowest few frequencies. MPB can alternatively compute the modes whose frequencies are closest to a specified target frequency. This greatly reduces the number of bands that must be computed in guided or resonant mode calculations.
15- Support for arbitrary, **anisotropic** dielectrics including **gyrotropic/magneto-optic** materials and **non-orthogonal** unit cells.
16- Field output in the [HDF5](https://support.hdfgroup.org/HDF5/) data format.
17
18## Citing MPB
19
20We kindly request that you cite the following reference in any publication for which you use MPB:
21
22* Steven G. Johnson and J. D. Joannopoulos, [Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis](http://www.opticsinfobase.org/abstract.cfm?URI=oe-8-3-173), *Optics Express* vol. **8**, no. 3, pp. 173–190 (2001).
23
24## Documentation
25
26See the [manual on readthedocs](https://mpb.readthedocs.io/en/latest) for the latest documentation.
27