OpenEMS

From openEMS

Jump to: navigation, search

OpenEMS is a free and open source EC-FDTD solver. The development was started in February 2010 and is written in C++. An extensive Matlab (or Octave) interface is used to define the FDTD options. The geometry used for the FDTD simulations is handled by the CSXCAD library which is part of the openEMS project.

Contents

Features

  • Efficient EC-FDTD method in full 3D cartesian coordinates (x,y,z)
  • Efficient EC-FDTD method in full 3D cylindrical coordinates (ρ, φ, z)
  • Fully graded mesh
  • Multi-threading, SIMD (SSE) and MPI support for high speed parallel FDTD
  • Simple engine extensions API to easily introduce new features to the FDTD algorithm
  • Matlab-Interface
  • Absorbing boundary conditions (MUR, PML)
  • Coordinate dependent material definitions
  • Coordinate dependent excitation definitions (e.g. mode-profiles)
  • Dispersive material (Drude/Lorentz/Debye type)
  • Field dumps in time and frequency domain as vtk or hdf5 file format
  • Flexible post-processing routines (mostly in Matlab)
  • Subgrids to reduce simulation time in cylindrical coordinates
  • Remote simulations using SSH (Linux only)

Components

  • OpenEMS - A free and open source EC-FDTD solver.
  • CSXCAD - A C++ library to describe geometrical objects and their physical or non-physical properties.
  • AppCSXCAD - A visualization program, capable of showing the structure defined inside a CSXCAD xml-file.
  • QCSXCAD - The visualisation library used by AppCSXCAD.

Dependencies

Libraries used by openEMS:

Installation

Windows

  • Download the latest 32bit openEMS or 64bit openEMS. (Old versions can be found here: win32, win64)
  • Unzip to a folder of your choice e.g. "D:/" (zip contains an openEMS folder)
  • Add the openEMS path to matlab (maybe in a "startup.m" in your Matlab startup folder):
addpath('D:/openEMS/matlab');

That's it! Check your installation in the First Steps Tutorial

Linux

The recommended way to install openEMS is to use the package repository we set up for most Linux distributions. Follow the instructions here.

Alternatively you may install openEMS from source.

Octave Support

As of version v0.0.26 Octave support should be nearly complete. After installing a new openEMS version or a new Octave version (recommended and tested is Octave >3.4.3) execute:

setup

Additional Software

Additional Software that you may find useful:

Paraview

"Paraview is an open-source, multi-platform data analysis and visualization application." Paraview Homepage

Paraview can be used to visualize vtk files containing field dumps generated by openEMS. Use your package-manager to install (Linux) or download at: http://www.paraview.org/paraview/resources/software.html

Reference

We kindly ask you to reference openEMS in any publication that you were using openEMS for:

BibTex:

@ELECTRONIC{openEMS,
  author = {Thorsten Liebig},
  title = {openEMS - Open Electromagnetic Field Solver},
  organization = {General and Theoretical Electrical Engineering (ATE), University of Duisburg-Essen},
  url = {http://openEMS.de}
}

Release Notes

v0.0.28

Date: 13.06.2012

Have a look at the release notes in the Forum-News

v0.0.27

Date: 01.03.2012

  • Near-field to far-field transformation completely rewritten in C++ with multi-threading --> speedup of 5 (single core) to 20+ (on my Quad-Core + HT)
  • New Tutorial: Helical Antenna
  • PML allowed in all directions for a cylindrical FDTD
  • HDF5, read/write cleanup
  • smaller fixes

v0.0.26

Date: 19.01.2012

  • update and test of all tutorials
  • many minor fixes and enhancements
  • removed misleading percentage progress in openEMS output, replaced by warnings concerning low max. number of timesteps
  • CSXCAD: Octave support improved
  • Octave support: fixes in calculating nf2ff
  • Octave support: now full hdf5 read support (needs execution of setup.m)
  • Matlab/Octave: Convert hdf5 dump to vtk
  • Fixes and Updates to Queue framework (see help on InitQueue)

v0.0.25

Date: 01.12.2011

  • CSXCAD: new transformation scheme: apply a transformation (e.g. rotation, translation, scaling) to any primitive object
  • CSXCAD: new rotational polygon primitive
  • CSXCAD: arbitrary transformation (e.g. rotation, translation, scaling) of discrete material (e.g. human body model) properties
  • QCSXCAD: 3D view mode as default, material is transparent
  • Queue interface for parallel matlab execution (currently Linux only)
  • Find a free ssh host (Linux only)
  • Dump far-field pattern to vtk
  • Advanced timestep in cylindrical coordinates
  • console output reduced & simplified

v0.0.24

Data: 20.9.2011

  • Maltab: added a lot of new tutorials
  • Matlab: revision of AddMSLPort & calcPort
  • allow multiple boxes for a single Probe or Dump Property
  • fix in lumped elements mesh snapping
  • fix in cylindrical multigrid timestep resetting

v0.0.23

Date: 22.7.2011

  • matlab field interpolation fix and matlab vtk dump fix
  • internal fixes handling dump and probe boxes
  • fix in material debug for cylindrical coordinates
  • bug fixes in the lumped elements and lumped port
  • find free ssh host (linux only)
  • fix in dumps using "OptResolution"
  • critical bug fix in default pml grading function
  • some updates to dft and fft, including a new resonance estimation

v0.0.22

Date: 4.5.2011

  • some fixes in field dumps for handling special cases in cylindrical coordinates
  • new vtk file I/O, now using compressed vtk files
  • new lumped elements support
  • several bug fixes

v0.0.21

Date: 28.3.2011

Personal tools
MediaWiki Appliance - Powered by TurnKey Linux