Simulation/MEEP

From OptoelectronicsWiki
Jump to: navigation, search

Introduction

Meep (http://ab-initio.mit.edu/wiki/index.php/Meep) is a powerful electromagnetic field simulation tool based on finite-difference time-domain (FDTD) method.It is used to simulate integrated optical devices like ring resonators in order to build variation-aware models with high fidelity.

Usage Instruction

Meep has been successfully installed on the UCSB-CNSI clusters!

In order to apply for account, you could apply in this page:

http://csc.cnsi.ucsb.edu/forms/request-user-account

After logging in, you could simply run

/home/ruiwu/.bashrc

to set environmental variables in order that you could call Meep in any directory.

You could start with several sample simulations from the Meep tutorial (http://ab-initio.mit.edu/wiki/index.php/Meep_Tutorial). Some existing ctl files are in /home/ruiwu/meep-sim.

Installation Info and Log

Meep is installed on the Knot (http://csc.cnsi.ucsb.edu/clusters/knot) cluster of the CNSI clusters.

The installation directory is

/home/ruiwu/install


1/22/2013

Parallel Meep works now! The 11/29/2012's problem has been fixed by installing Guile on all nodes of Knot with help of Paul, the system manager of Knot.

Tasks should be submitted via .job file. The parallel version template of the .job file is as follows:

#!/bin/sh
# IMPORTANT:  the next line determines how many nodes to run on 
#  nodes is number of nodes, ppn= processors (cores) per node
#PBS -l nodes=1:ppn=8
# 
# Make sure that we are in the same subdirectory as where the qsub command 
# is issued. 
# 
cd $PBS_O_WORKDIR 
#
#  make a list of allocated nodes(cores)
#  Note that if multiple jobs run in same directory, use different names
#     for example, add on jobid nmber.
cat $PBS_NODEFILE > nodes-$PBS_O_JOBID
# How many cores total do we have?
NO_OF_CORES=`cat $PBS_NODEFILE | egrep -v '^#'\|'^$' | wc -l | awk '{print $1}'`
NODE_LIST=`cat $PBS_NODEFILE `
#
# Just for kicks, see which nodes we got.
echo $NODE_LIST
# 
# Run the executable. *DO NOT PUT* a '&' at the end!!
# 
nohup mpirun -np $NO_OF_CORES -machinefile nodes-$PBS_O_JOBID  meep-mpi  <MEEP_ARGUMENTS> CTL_FILE 

Submit this job file using command "qsub".



12/13/2012

Use "GUILE_CONFIG=/home/ruiwu/install/bin/guile-config ./runconfig" command to specify the user-installed 2.0 version guile before the configure command.


11/29/2012

The parallel version MEEP (command meep-mpi) could not work. This is due to the old version of Guile 1.8.0 in the system default folder, though a latest Guile 2.0.6 has been installed in /home/ruiwu/install/bin.


10/17/2012

The following dependencies have been installed in the above directory :

meep needs guile OK

guile needs libtool OK

guile need libunistring ok

guile need libffi OK

guile needs bdw-gs ok

guile needs 4.2.x or higher version gmp OK

meep needs hdf5 OK

However, the required libctl library are from the following shared directory:

/sw/cnsi/share/libctl

The HDF5, a data format library, is installed in its serial version because there may be some conflicts on the intel parallel interface version.

The Harminv library, which is used to extract resonant frequencies and decay rates, has not been installed for now.