openEMS is a free and open electromagnetic field solver using the FDTD method. Matlab or Octave are used as an easy and flexible scripting interface.
Website: http://openEMS.de
Forum: http://openEMS.de/forum
Wiki: http://openems.de/index.php
Github: https://github.com/thliebig/openEMS-Project
IRC: #openEMS on freenode
openEMS Features:
- fully 3D Cartesian and cylindrical coordinates graded mesh.
- Multi-threading, SIMD (SSE) and MPI support for high speed FDTD.
- Octave and Matlab-Interface
- Dispersive material (Drude/Lorentz/Debye type)
- Field dumps in time and frequency domain as vtk or hdf5 file format
- Flexible post-processing routines in Octave/Matlab
- and many more
Install Instruction
Requirements
Ubuntu
- Install all necessary dependencies, e.g. on Ubuntu 12.04:
sudo apt-get install build-essential git libhdf5-openmpi-dev libvtk5-dev libboost-all-dev libcgal-dev libtinyxml-dev libqt4-dev libvtk5-qt4-dev
- Install all necessary dependencies, e.g. on Ubuntu 13.04 and above:
sudo apt-get install build-essential git libhdf5-dev libvtk5-dev libboost-all-dev libcgal-dev libtinyxml-dev libqt4-dev libvtk5-qt4-dev
- Optional: Install octave and octave devel packages:
sudo apt-get install octave liboctave-dev
- Optional: For the package hyp2mat you need additonal dependencies:
sudo apt-get install gengetopt help2man groff pod2pdf bison flex libhpdf-dev libtool
Fedora
- Install all necessary dependencies, e.g. on Fedora 19:
sudo yum install make gcc gcc-c++ git hdf5-devel vtk-devel boost-devel CGAL-devel tinyxml-devel qt-devel vtk-qt
Clone, build and install
- Clone this repository, build openEMS and install e.g. to "~/opt/openEMS":
git clone https://github.com/thliebig/openEMS-Project.git
cd openEMS-Project
./update_openEMS.sh ~/opt/openEMS
./update_openEMS.sh ~/opt/openEMS --with-hyp2mat --with-CTB
- Add the given paths to your Octave/Matlab environment (e.g.):
addpath('~/opt/openEMS/share/openEMS/matlab');
addpath('~/opt/openEMS/share/CSXCAD/matlab');
- Add the optional packages to your Octave/Matlab environment (e.g.):
addpath('~/opt/openEMS/share/hyp2mat/matlab');
addpath('~/opt/openEMS/share/CTB/matlab');
For more informations and other platforms see:
http://www.openems.de/index.php/OpenEMS#Installation
Update Instruction:
- Perform an update in case of a new release
Note: Changes you may have made (e.g. to the tutorials or examples) may be overwritten!
cd openEMS-Project
git pull
./update_openEMS.sh ~/opt/openEMS
Switch to the stable version:
- Fetch all remote trees
- checkout and track the remote stable branch
- update, build and install
Note: Changes you may have made (e.g. to the tutorials or examples) may be overwritten!
cd openEMS-Project
git fetch --all
git checkout -b stable origin/stable
./update_openEMS.sh ~/opt/openEMS
- You may want to switch back to the master branch:
Note: Changes you may have made (e.g. to the tutorials or examples) may be overwritten!
cd openEMS-Project
git checkout master
./update_openEMS.sh ~/opt/openEMS