Skip to content

alplabai/openEMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,389 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openEMS (alpLab fork)

This is the alpLab fork of openEMS, maintained for integration into Signex as the primary PCB electromagnetic field solver.

Upstream: https://github.com/thliebig/openEMS
Upstream Website: https://openEMS.de
Upstream Docs: https://docs.openEMS.de

Changes from upstream

All changes are kept minimal and upstreamable.

  • Replace all exit() calls with exception hierarchy (openEMS_SetupError, openEMS_AllocationError, openEMS_InternalError) for safe shared-library use
  • Replace volatile with std::atomic for proper thread safety in multi-threaded engine
  • Fix setlocale race conditions with RAII ScopedNumericLocale guard
  • SnapToMeshLine O(N) linear search replaced with O(log N) binary search (~14x speedup)
  • Fix diff_pow and m_LM_pos[n] memory leaks, size_t overflow
  • Merged upstream WIP: multi-threaded SAR (IEEE/IEC compliant), HDF5 improvements, arraylib

Features

  • Fully 3D Cartesian and cylindrical coordinates graded mesh
  • Multi-threading, SIMD (SSE) and MPI support for high speed FDTD
  • Octave/Matlab and Python interface
  • Dispersive material (Drude/Lorentz/Debye type)
  • Lumped RLC elements, conducting sheet model
  • MSL/Stripline/CPW/Waveguide ports with S-parameter extraction
  • Field dumps in time and frequency domain as VTK or HDF5 file format
  • Near-to-far-field (NF2FF) transformation
  • Multi-threaded SAR calculation with IEEE/IEC compliance

Building (MSYS2 MinGW on Windows)

pacman -S mingw-w64-x86_64-{gcc,cmake,boost,hdf5,vtk,tinyxml,cgal,nlohmann-json}

mkdir -p build && cd build
cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=../../install
mingw32-make -j$(nproc) install

License

openEMS is licensed under the terms of the GPLv3, see http://www.gnu.org/licenses/.

About

openEMS is a free and open-source electromagnetic field solver using the EC-FDTD method.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors