Meep

Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagnetic systems, along with our MPB eigenmode package. Its features include: Meep Download Release notes FAQ Meep manual Introduction Installation Tutorial Reference C++ Tutorial C++ Reference Acknowledgements License and Copyright

  • Free software under the GNU GPL.
  • Simulation in 1d, 2d, 3d, and cylindrical coordinates.
  • Distributed memory parallelism on any system supporting the MPI standard. Portable to any Unix-like system (GNU/Linux is fine).
  • Arbitrary anisotropic electric permittivity ε and magnetic permeability μ, along with dispersive ε(ω) and μ(ω) (including loss/gain) and nonlinear (Kerr & Pockels) dielectric and magnetic materials, and electric/magnetic conductivities σ.
  • PML absorbing boundaries and/or perfect conductor and/or Bloch-periodic boundary conditions.
  • Exploitation of symmetries to reduce the computation size — even/odd mirror symmetries and 90°/180° rotations.
  • Complete scriptability — either via a Scheme scripting front-end (as in libctl and MPB), or callable as a C++ library; a Python interface is also available.
  • Field output in the HDF5 standard scientific data format, supported by many visualization tools.
  • Arbitrary material and source distributions.
  • Field analyses including flux spectra, frequency extraction, and energy integrals; completely programmable.
  • Multi-parameter optimization, root-finding, integration, etcetera (via libctl).

Installed versions

  • meep/1.1.1
  • meep/1.2.1

Using Meep

SGE example script

meep_mpi.sge
#!/bin/bash -l
 
# Pour utiliser ce script, faire un qsub de celui-ci
# apres renseignement des parametres
# qsub <nom du script> 
 
# Temps maximum pour l'execution du processus
# * Plus ce temps est court, plus la priorite du job sera importante
# * Le job sera tue s'il depasse ce temps
#$ -l h_rt=360:00:0
 
# Nom du fichier ou stocker la sortie
#$ -o $JOB_NAME.o$JOB_ID
 
 
# Nom du job
#$ -N exemple_meep_mpi
 
# Queue utilisee 
#$ -q normal15d    # file pour les jobs paralleles courts < 15j
 
#$ -pe impi_tight 4             # on demande 4 coeurs
 
# SGE doit charger l'environnement
#$ -V
#$ -cwd
 
 
 
 
# On charge les modules necessaires
 
module load meep
 
# Lancement du programme
 
mpirun -n $NSLOTS meep-mpi input.ctl > output

Getting started