Difference between revisions of "Meep"

(Created page with "== Description == ''From the Meep Homepage'': Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagne...")
 
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Description ==
== Description ==


''From the Meep Homepage'': 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:
''From the Meep Homepage'': '''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:
*Free software under the GNU GPL.
*Free software under the GNU GPL.
*Simulation in 1d, 2d, 3d, and cylindrical coordinates.
*Simulation in 1d, 2d, 3d, and cylindrical coordinates.
Line 14: Line 14:
*Multi-parameter optimization, root-finding, integration, etcetera (via libctl).<br />Meep officially stands for MIT Electromagnetic Equation Propagation, but we also have several unofficial meanings of the acronym.
*Multi-parameter optimization, root-finding, integration, etcetera (via libctl).<br />Meep officially stands for MIT Electromagnetic Equation Propagation, but we also have several unofficial meanings of the acronym.


{{AppStandardHeader|1.3|meep}}


* [http://ab-initio.mit.edu/wiki/index.php/Meep Meep Home Page]
{{AppRunningOnAll}}
== Version ==
 
*1.2.1
 
== Authorized Users ==
 
*<code>CIRCE</code> account holders
 
== Platform ==
 
*<code>CIRCE</code> cluster
 
== Running Meep on CIRCE ==
 
It is highly recommended that you read the tutorials on using Meep from the Meep webpage. Please refer to the [[Meep#Additional Documentation | Additional Documentation]] section for a link to the tutorial.
 
=== Meep Utilities ===
 
Ensure that you’ve loaded the module <code>apps/meep/1.2.1</code> into your environment to access the various HDF5 utilities for converting and working with output data. Load it persistently so that we can avoid having to deal with it again later:
 
<pre style="white-space:pre-wrap; width:35%; border:1px solid lightgrey; background:#000000; color:white;">
[user@login0 ~]$ module add apps/meep/1.2.1
[user@login0 ~]$ module initadd apps/meep/1.2.1</pre>
Loading the Meep module will automatically provide the following dependencies:
 
*compilers/intel/2013sp1_cluster_xe


=== Running a Parallel Job ===
=== Running a Parallel Job ===
Line 55: Line 30:
#SBATCH --time=01:00:00
#SBATCH --time=01:00:00


#### Slurm 8 processor MEEP test to run for 1 hour.
#### SLURM 8 processor MEEP test to run for 1 hour.


module load apps/meep/1.2.1
module load apps/meep/1.3
time mpirun meep-mpi input.ctl
time mpirun meep-mpi input.ctl


Line 64: Line 39:
mv $SLURM_JOB_ID.out $SLURM_JOB_ID
mv $SLURM_JOB_ID.out $SLURM_JOB_ID
mv *.h5 $SLURM_JOB_ID</pre>
mv *.h5 $SLURM_JOB_ID</pre>
Here, we run Meep on 8 processors for a maximum of one hour, specifying the input ctl file `input.ctl`. See the tutorials linked in [[Meep#Additional Documentation|Additional Documentation]] for information on creating the ctl (Scheme-based) input file.
&nbsp;<br>
Here, we run Meep on 8 processors for a maximum of one hour, specifying the input ctl file `input.ctl`. See the tutorials linked in [[Meep#Additional Documentation | Additional Documentation]] for information on creating the ctl (Scheme-based) input file.


Next, you can change to your job’s directory, and run the sbatch command to submit the job:
Next, you can change to your job’s directory, and run the sbatch command to submit the job:
Line 74: Line 50:
*You can view the status of your job with the “squeue -u <username>” command
*You can view the status of your job with the “squeue -u <username>” command


=== Additional Documentation ===
{{Documentation}}
* Meep Tutorial
*Meep Home Page
**http://ab-initio.mit.edu/wiki/index.php/Meep
 
{{BKETOR}}
*Meep Tutorial
**http://ab-initio.mit.edu/wiki/index.php/Meep_Tutorial
**http://ab-initio.mit.edu/wiki/index.php/Meep_Tutorial


{{MoreInformation}}
{{AppStandardFooter}}
{{ReportingBugs}}

Latest revision as of 19:14, 13 April 2017

Description

From the Meep Homepage: 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:

  • 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.
  • 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).
    Meep officially stands for MIT Electromagnetic Equation Propagation, but we also have several unofficial meanings of the acronym.

Version

  • 1.3

Authorized Users

  • CIRCE account holders
  • RRA account holders
  • SC account holders

Platforms

  • CIRCE cluster
  • RRA cluster
  • SC cluster

Modules

Meep requires the following module file to run:

  • apps/meep/1.3

Running Meep on CIRCE/SC

The Meep user guide is essential to understanding the application and making the most of it. The guide and this page should help you to get started with your simulations. Please refer to the Documentation section for a link to the guide.

  • Note on CIRCE: Make sure to run your jobs from your $WORK directory!
  • Note: Scripts are provided as examples only. Your SLURM executables, tools, and options may vary from the example below. For help on submitting jobs to the queue, see our SLURM User’s Guide.

Running a Parallel Job

To run Meep, we will use the run command which creates our job script and submits our job to the cluster for us. We will also use the /work filesystem since Meep relies on HDF5’s parallel I/O facilities:

#!/bin/bash
#
#SBATCH --ntasks=8
#SBATCH --job-name=meep-test
#SBATCH --output=%j.out
#SBATCH --time=01:00:00

#### SLURM 8 processor MEEP test to run for 1 hour.

module load apps/meep/1.3
time mpirun meep-mpi input.ctl

#### cleanup output
mkdir -p $SLURM_JOB_ID
mv $SLURM_JOB_ID.out $SLURM_JOB_ID
mv *.h5 $SLURM_JOB_ID

 
Here, we run Meep on 8 processors for a maximum of one hour, specifying the input ctl file `input.ctl`. See the tutorials linked in Additional Documentation for information on creating the ctl (Scheme-based) input file.

Next, you can change to your job’s directory, and run the sbatch command to submit the job:

[user@login0 ~]$ cd my/jobdir
[user@login0 jobdir]$ sbatch ./meep-test.sh
  • You can view the status of your job with the “squeue -u <username>” command

Documentation

Home Page, User Guides, and Manuals

Benchmarks, Known Tests, Examples, Tutorials, and Other Resources

More Job Information

See the following for more detailed job submission information:

Reporting Bugs

Report bugs with Meep to the IT Help Desk: rc-help@usf.edu