MPB is a free program for computing band structures of periodic dielectric structures.

The official code is designed for a Unix-like environment, and I have ported it, as well as its dependent libraries, to Windows. Unfortunately, due to the imperfect mapping of Unix capabilities to the analogous capabilities in Windows, some features are disabled. These minor differences are generally in areas such as date and time functions and file system functions. These differences should not impact the correctness of the results. Note also that MPB relies on an optimized BLAS library; the version included in this distribution is not optimal. This package is not meant for serious and heavy use.



Quick and dirty setup:

  1. Unzip the binary archive somewhere on your C: drive. The default location at the root of C: should work (i.e. there should be C:/mpb/guile created after unzipping). It is very important to unzip to a directory path that contains no spaces in it (so don't unzip it in C:/Program Files). If you place the directory anywhere not at the root of C:, then h5topng will not work because it won't be able to find the colormaps. You can copy the colormaps you need into your working directory if you insist on installing MPB somewhere else.
  2. Double click setup.bat in the base directory (e.g. C:\mpb\setup.bat).
  3. Run mpbshell.bat to get a shell with environment variables already set up for you.
  4. Type: cd examples/tri-rods
  5. Type: run

You will get errors during the conversion of h5 files because the Windows shell can't do proper name globbing. If you want to convert all the files, run the command in the batch file on each specific file. Also, the h5topng command won't work unless the colormaps are in C:\mpb\h5utils\colormaps, so try to unzip the archive in the root of C:.

The binary archive contains all necessary files other than the C runtime DLLs. Most modern Windows installations should have them already installed (msvcrt.dll and msvcr71.dll).

Since MPB is licensed under the GPL, I am providing the modified sources to libctl, mpb, and h5utils.