MIT Photonic Bands

From AbInitio

(Difference between revisions)
Jump to: navigation, search
Revision as of 01:42, 16 October 2005 (edit)
Stevenj (Talk | contribs)
(MPB download)
← Previous diff
Revision as of 18:03, 28 July 2017 (edit)
Ardavan (Talk | contribs)

Next diff →
Line 4: Line 4:
The '''MIT Photonic-Bands''' ('''MPB''') package is a [http://www.gnu.org/philosophy/free-sw.html free] program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, on both serial and parallel computers. It was developed by [http://math.mit.edu/~stevenj Steven G. Johnson] at [http://web.mit.edu/ MIT] along with the Joannopoulos [http://ab-initio.mit.edu/ Ab Initio Physics] group. The '''MIT Photonic-Bands''' ('''MPB''') package is a [http://www.gnu.org/philosophy/free-sw.html free] program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, on both serial and parallel computers. It was developed by [http://math.mit.edu/~stevenj Steven G. Johnson] at [http://web.mit.edu/ MIT] along with the Joannopoulos [http://ab-initio.mit.edu/ Ab Initio Physics] group.
-This program computes definite-frequency eigenstates (harmonic modes) of [[w:Maxwell's equations|Maxwell's equations]] in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods. It is especially designed for the study of [http://ab-initio.mit.edu/photons/ photonic crystals] (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.)+This program computes definite-frequency eigenstates (harmonic modes) of [[w:Maxwell's equations|Maxwell's equations]] in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods. It is especially designed for the study of [http://ab-initio.mit.edu/book/ photonic crystals] (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.)
 + 
 +See also our complementary [[Meep]] package for time-domain simulations, reflection/transmission spectra, etc.
 + 
{{TOCright}} {{TOCright}}
== [[MPB download]] == == [[MPB download]] ==
-You can [[MPB download|download]] the full source code (in ANSI C) for MPB under the [[MPB License and Copyright|free GPL license]]. The [[MPB Installation|installation] section of the manual describes how to install it; mainly, this consists of downloading and installing various prerequisites if you do not have them already.+You can [[MPB download|download]] the full source code (in ANSI C) for MPB under the [[MPB License and Copyright|free GPL license]]. The [[MPB Installation|installation]] section of the manual describes how to install it; mainly, this consists of downloading and installing various prerequisites if you do not have them already.
-=== New! Version 1.4.2 ===+=== Latest version: 1.5 ===
-The [[MPB release notes]] describe what is new in each version; the current version of MPB is 1.4.2.+The [[MPB release notes]] describe what is new in each version; the current version of MPB is 1.5.
 + 
 +You can also download the latest development sources from [https://github.com/stevengj/mpb MPB on Github].
== Documentation == == Documentation ==
 +{{MPB}}
 +The latest documentation is available on [http://mpb.readthedocs.io/ readthedocs].
The [[MPB manual]] is readable online. Note especially the [[MPB User Tutorial|tutorial]] section of the manual, to get a flavor of what it is like to use the program. You may be also interested in the [[libctl manual]], which describes a Guile/Scheme-based scripting library that we build our interface on top of, and also a collection of [[Guile and Scheme links]]. The [[MPB manual]] is readable online. Note especially the [[MPB User Tutorial|tutorial]] section of the manual, to get a flavor of what it is like to use the program. You may be also interested in the [[libctl manual]], which describes a Guile/Scheme-based scripting library that we build our interface on top of, and also a collection of [[Guile and Scheme links]].
Line 20: Line 27:
We have published a paper (available online) on the computational methods underlying MPB: We have published a paper (available online) on the computational methods underlying MPB:
-:Steven G. Johnson and J. D. Joannopoulos, "[http://www.opticsexpress.org/oearchive/source/27937.htm Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis]," ''Optics Express'' '''8''', no. 3, 173-190 (2001).+:Steven G. Johnson and J. D. Joannopoulos, "[http://www.opticsinfobase.org/abstract.cfm?URI=oe-8-3-173 Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis]," ''Optics Express'' '''8''', no. 3, 173-190 (2001).
-See also our [[MPB License and Copyright|free GPL license#Referencing|referencing suggestions]] for how to cite MPB in your work.+See also our [[Citing MPB|referencing suggestions]] for how to cite MPB in your work.
=== Mailing Lists === === Mailing Lists ===
-The MPB mailing lists (and their archives) are another source of information about MPB.+The MPB mailing lists and their archives are another source of information about MPB.
-Subscribe to the (read-only) [http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-announce mpb-announce mailing list] to receive an email when MIT Photonic-Bands is updated in the future. Subscribe to the (unmoderated) [http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss mpb-discuss mailing list] for discussion of questions and ideas about using the MIT Photonic-Bands package. Announcements are '''not''' always sent to mpb-discuss; you should subscribe to mpb-announce for that. [http://news.gmane.org/thread.php?group=gmane.comp.science.photonic-bands Archives of mpb-discuss] are available online. (You can also read & post the list via the [news://news.gmane.org/gmane.comp.science.photonic-bands gmane.comp.science.photonic-bands] newsgroup from [http://www.gmane.org/ Gmane]).+Subscribe to the read-only [http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-announce mpb-announce mailing list] to receive notifications of updates and releases. Subscribe to the unmoderated [http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss mpb-discuss mailing list] for discussions about using MPB. Archives are available [http://www.mail-archive.com/mpb-discuss@ab-initio.mit.edu/ here]. You can also read and post to the list via the [news://news.gmane.org/gmane.comp.science.photonic-bands gmane.comp.science.photonic-bands] newsgroup from [http://www.gmane.org/ Gmane].
 + 
 +=== Bug reports and feature requests ===
 + 
 +For bug reports and feature requests, please [https://github.com/stevengj/mpb/issues file an MPB Github issue].
== Features == == Features ==
Line 35: Line 46:
* Fully-vectorial, three-dimensional calculation. Iterative eigensolver techniques are employed to make large, three-dimensional calculations possible. (Can handle 2D and 1D problems too, of course.) * Fully-vectorial, three-dimensional calculation. Iterative eigensolver techniques are employed to make large, three-dimensional calculations possible. (Can handle 2D and 1D problems too, of course.)
-* Direct, frequency-domain eigensolver (as opposed to indirect methods, e.g. time-domain). For one thing, this means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time. (See also a [[MPB Introduction# Frequency-Domain vs. Time-Domain|comparison of time-domain and frequency-domain techniques]] in the [[MPB manual]].) +* Direct, frequency-domain eigensolver (as opposed to indirect methods, e.g. time-domain). For one thing, this means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time. (See also a [[MPB Introduction#Frequency-Domain vs. Time-Domain|comparison of time-domain and frequency-domain techniques]] in the [[MPB manual]].)
* Targeted eigensolver. Normally, iterative eigensolvers provide you with the states (optical bands/modes) with the lowest few frequencies. Our software 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. * Targeted eigensolver. Normally, iterative eigensolvers provide you with the states (optical bands/modes) with the lowest few frequencies. Our software 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.
* Flexible, scriptable user interface based upon the [http://www.gnu.org/software/guile/ GNU Guile] extension & scripting language. * Flexible, scriptable user interface based upon the [http://www.gnu.org/software/guile/ GNU Guile] extension & scripting language.
Line 50: Line 61:
Many people and groups have contributed to the development of this software, both directly and indirectly. Please see the [[MPB Acknowledgements|acknowledgements section]] of the manual for those to whom we feel especially grateful. Many people and groups have contributed to the development of this software, both directly and indirectly. Please see the [[MPB Acknowledgements|acknowledgements section]] of the manual for those to whom we feel especially grateful.
-== Contact Info ==+== Contacts and Feedback ==
- +
-If you have questions or problems regarding MIT Photonic-Bands, you are encouraged look at the [[#Mailing lists|mailing lists]] and the [http://news.gmane.org/thread.php?group=gmane.comp.science.photonic-bands mpb-discuss archives] as your first resort.+
-For professional consulting support of the MIT Photonic-Bands package, and photonic band-gap applications in general, contact [http://rleweb.mit.edu/rlestaff/p-joan.htm Prof. John D. Joannopoulos] of MIT (phone: (617) 253-4806, fax: (617) 253-2562).+If you have questions or problems regarding MPB, you are encouraged to query the [https://www.mail-archive.com/mpb-discuss@ab-initio.mit.edu/ mailing list].
-Alternatively, you may directly contact [http://math.mit.edu/~stevenj Steven G. Johnson] at [mailto:stevenj@alum.mit.edu stevenj@alum.mit.edu].+For professional consulting as well as free access to MPB in the public cloud via Amazon Web Services (AWS), see [http://www.simpetuscloud.com Simpetus].
[[Category:MPB]] [[Category:MPB]]

Revision as of 18:03, 28 July 2017


The MIT Photonic-Bands (MPB) package is a free program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, on both serial and parallel computers. It was developed by Steven G. Johnson at MIT along with the Joannopoulos Ab Initio Physics group.

This program computes definite-frequency eigenstates (harmonic modes) of Maxwell's equations in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods. It is especially designed for the study of photonic crystals (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.)

See also our complementary Meep package for time-domain simulations, reflection/transmission spectra, etc.

Contents

MPB download

You can download the full source code (in ANSI C) for MPB under the free GPL license. The installation section of the manual describes how to install it; mainly, this consists of downloading and installing various prerequisites if you do not have them already.

Latest version: 1.5

The MPB release notes describe what is new in each version; the current version of MPB is 1.5.

You can also download the latest development sources from MPB on Github.

Documentation

MIT Photonic Bands
Download
Release notes
MPB manual
Introduction
Installation
User Tutorial
Data Analysis Tutorial
User Reference
Developer Information
Acknowledgements
License and Copyright

The latest documentation is available on readthedocs.

The MPB manual is readable online. Note especially the tutorial section of the manual, to get a flavor of what it is like to use the program. You may be also interested in the libctl manual, which describes a Guile/Scheme-based scripting library that we build our interface on top of, and also a collection of Guile and Scheme links.

We have published a paper (available online) on the computational methods underlying MPB:

Steven G. Johnson and J. D. Joannopoulos, "Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis," Optics Express 8, no. 3, 173-190 (2001).

See also our referencing suggestions for how to cite MPB in your work.

Mailing Lists

The MPB mailing lists and their archives are another source of information about MPB.

Subscribe to the read-only mpb-announce mailing list to receive notifications of updates and releases. Subscribe to the unmoderated mpb-discuss mailing list for discussions about using MPB. Archives are available here. You can also read and post to the list via the gmane.comp.science.photonic-bands newsgroup from Gmane.

Bug reports and feature requests

For bug reports and feature requests, please file an MPB Github issue.

Features

Some of the more noteworthy features of the MIT Photonic-Bands package are:

  • Fully-vectorial, three-dimensional calculation. Iterative eigensolver techniques are employed to make large, three-dimensional calculations possible. (Can handle 2D and 1D problems too, of course.)
  • Direct, frequency-domain eigensolver (as opposed to indirect methods, e.g. time-domain). For one thing, this means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time. (See also a comparison of time-domain and frequency-domain techniques in the MPB manual.)
  • Targeted eigensolver. Normally, iterative eigensolvers provide you with the states (optical bands/modes) with the lowest few frequencies. Our software 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.
  • Flexible, scriptable user interface based upon the GNU Guile extension & scripting language.
  • Support for arbitrary, anisotropic dielectric structures (including gyrotropic/magneto-optic materials) and non-orthogonal unit cells.
  • Field output in HDF format for input into many popular graphing and visualization tools.
  • Portable to most any Unix-like operating system; tested under Linux, AIX, IRIX, and Tru64 (née Digital) Unix. See also the installation section of the manual.
  • Support for parallel machines with MPI. (Tested on an SGI Origin2000 and on an SMP Linux machine with MPICH.)
  • Free software under the GNU General Public License. (See also the MPB License and Copyright section of the manual.)

To give you some feel for how long these calculations take, let us consider one typical data point. For the 3d band-structure of a diamond lattice of dielectric spheres in air, computing the lowest 10 bands on a 16×16×16 grid at 31 k-points, MPB 1.0 took 2 minutes on a 550MHz Pentium-III under Linux with the ATLAS optimized BLAS library. (Thus, at each k-point, MPB was minimizing a function with 81920 degrees of freedom in 4 seconds on average.)

Acknowledgements

Many people and groups have contributed to the development of this software, both directly and indirectly. Please see the acknowledgements section of the manual for those to whom we feel especially grateful.

Contacts and Feedback

If you have questions or problems regarding MPB, you are encouraged to query the mailing list.

For professional consulting as well as free access to MPB in the public cloud via Amazon Web Services (AWS), see Simpetus.

Personal tools