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. The latest official version is 1.3 and can be found at Download Page for Meep
Before you compile Meep 1.2.1, you need to first compile the libctl library. Compiling the libctl library is quite straightforward. After downloading,
Step 1: Compiling libctl-3.2.1
# tar -zxvf libctl-3.2.1.tar.gz
# cd libctl-3.2.1
# ./configure --prefix=/usr/local/libctl-3.2.1
# make -j8
# make install
Step 2: Other Prerequisites include guile and guile-devel. Do make sure you install these 2 packages which can be done
# yum install guile guile-devel
Step 3: Prepare Intel Compilers and Intel MPI environment
$ vim .bashrc
source /usr/local/intel_2015/bin/compilervars.sh intel64 source /usr/local/intel_2015/impi/5.0.3.049/bin64/mpivars.sh intel64 source /usr/local/intel_2015/mkl/bin/mklvars.sh intel64 export CC=icc export CXX=icpc export F77=ifort export MPICC=mpicc export MPICXX=mpiicpc export CFLAGS="-O3 -xHost -fno-alias -align" export FFLAGS="-O3 -xHost -fno-alias -align" export CXXFLAGS="-O3 -xHost -fno-alias -align" export FFlags="-I/usr/local/intel_2015/impi/5.0.3.049/include64 -L/usr/local/intel_2015/impi/5.0.3.049/lib64"
Step 4: Compiling hdf5-1.8.17
See Compiling HDF5-1.8.17 with Intel-15.0.6 and Intel-MPI-5.0.6
Step 5: Compiling MEEP-1.3
$ ./configure --prefix=/usr/local/meep-1.3.1_impi-5.0.3 --with-mpi \ --with-libctl="/usr/local/libctl-3.2.1/share/libctl" \ LDFLAGS="-L/usr/local/libctl-3.2.1/lib -L/usr/local/hdf5-1.8.17/lib" \ CPPFLAGS="-I/usr/local/libctl-3.2.1/include -I/usr/local/hdf5-1.8.17/include" $ make -j 12 $ make install