In order to let users use easily, we have designed a package and graphical user interface (GUI) on MATLAB for these fast algorithms. Users only need to set the required parameters, and then you can run directly and quickly to get the corresponding results. We will introduce the GUI for FAME in the following.

Download source code

  • FAME (version 1.1)

How to start FAME GUI?

  • Download the FAME source code and run "FAME_GUI_Main_Code" directly on MATLAB.

How to use FAME GUI?

  1. Current material type setting : The string shown here represents the currently selected material and lattice type.
  2. Clear button : Clear all settings to default.
  3. Option property popup menu : We divide the option property into six types. User can change the option of this popup menu to set different parameters.
  4. Option setting area : Option area will change with the choice of Option property popup menu.
  5. Action buttons
  6. The drawing area


The material type can be chosen between 'Isotropic', 'Bi-isotropic' and 'Anisotropic'.


There are five properties which can be chosen in the Domain block.

  • grid numbers

Used in discretization. Notice that these grid numbers must be multiple of six if the lattice type is 'Face-centered cubic' or 'Body-centered cubic'.

  • lattice constants

Must be a positive real number.

  • shape

Some properties of material shape could be set here.

  • lattice type popup menu

Four lattice type could be chosen.

  • show 3D structure

Display current material shape in drawing area.


The material properties with different material type were also distinct. In particular, these properties in Anisotropic type should be chosen as 3x3 Hermitian matrices. Notice that the permeability can's be chosen in our implement now.


User could choose a desired computation path on the first Brillouin zone corresponding to chosen lattice type.

  • Path

Must be consisted of the vertices in first Brillouin zone listed above.

  • Partition number

Must be a positive integer which represent the number of partition between two vertices in the chosen path string.

Boundary Condition

Boundary condition only could be chosen as quasi-periodic condition now.

Eigen Solver

We provide two kinds of eigensolver to compute the corresponding eigenvalue problem.


Collect all current setting and compute the corresponding band structure. The resulting band structure would be display in the drawing area.

Select the interested eigenmode by clicking 'choose wave vector' button, and there is an adjustable red line in the band structure in order to choose.

And then press the 'run eigenmode' button, we will get another window which shows the simulation that electromagnetic waves are conducted in the material in three directions.


Save all current settings and computation results.


Load previous saved file. It would change all settings and display the band structure corresponding to the saved file.