emsig logo



ElectroMagnetic Simulation in Geophysics#

emsig are open-source codes to simulate electromagnetic data. Their main targets are geophysical applications (exploration and monitoring, engineering, environmental), but they are by no means limited to that. The main codes are listed on this page. The emsig GitHub org contains besides the main codes also related publications for reproducibility purposes and other associated things of interest, such as smaller codes which were part of publications.




3D EM modeller for 1D VTI media

empymod.emsig.xyz

The modeller empymod can compute electric or magnetic responses due to a 3D electric or magnetic source in a layered-earth model with vertical transverse isotropic (VTI) resistivity, VTI electric permittivity, and VTI magnetic permeability, from very low frequencies (DC) to very high frequencies (GPR). The computation is carried out in the wavenumber-frequency domain, and various Hankel- and Fourier-transform methods are included to transform the responses into the space-frequency and space-time domains.

Multigrid solver for 3D EM diffusion

emg3d.emsig.xyz

The modeller emg3d is a multigrid solver for 3D EM diffusion with tri-axial electrical anisotropy. The matrix-free solver can be used as main solver or as preconditioner for Krylov subspace methods, and the governing equations are discretized on a staggered Yee grid.

Modelling with the total electric field approach using finite elements in 3D

github.com/emsig/elfe3D

elfe3D is a 3D forward modelling code that can simulate electric and magnetic field responses from frequency-domain controlled-source electromagnetic geophysical setups. It uses tetrahedral meshes and first-order finite-element approximations. In addition, adaptive mesh refinement approaches are implemented.

The electromagnetic response in a layered vertical transverse isotropic medium

github.com/emsig/EMmod

EMmod, which stands for electromagnetic modeling, is an algorithm to model the full electromagnetic field in a vertical transverse isotropic (VTI) layered medium. Although the algorithm was designed for frequency-domain marine Controlled Source Electromagnetics (CSEM), it can also be used to simulate data for other geophysical exploration methods like for example Ground Penetrating Radar (GPR). The algorithm computes the EM-field analytically in the wavenumber-frequency domain and then carries out a numerical Hankel transformation to get the space-frequency domain representation.

Invert frequency-domain electromagnetic data

github.com/emsig/iEMmod

The software iEMmod is a non-linear conjugate-gradient algorithm to invert frequency-domain electromagnetic data for a layered-Earth model. The forward solver used is our open-source layered-Earth electromagnetic modeling code EMmod.

Seismoelectromagnetic homogeneous space Green’s functions

github.com/emsig/3Dhom

ElSeisHom3D stands for computing the Green’s functions of electromagnetic fields and elastic waves that are coupled in a homogeneous porous medium. The fields are the electric field, the magnetic field, the particle velocity, the filtration velocity, the acoustic pressure in the fluid, and bulk stress. The sources that generate these fields are the electric current source, the magnetic current source, the force source acting on the bulk, the force source acting on the fluid, the acoustic volume injection rate source acting on the fluid, and the deformation rate source acting on the bulk. The impulse responses that connect the fields to these sources are the Green’s functions.

Library of Digital Linear Filters

github.com/emsig/libdlf

libdlf is a library for digital linear filters. Codes until now had to hard-code their digital linear filters. This has several disadvantages. Having a common library that can be used by any code base in any language should hopefully widen the adoption of linear filters, make their use more reproducible, and might hopefully even spark the design of new, hopefully more robust filters or filters for new applications.

A python version of FFTLog

pyfftlog.readthedocs.io

pyfftlog is a python version of the logarithmic FFT code FFTLog. FFTLog is a set of fortran subroutines that compute the fast Fourier or Hankel (= Fourier-Bessel) transform of a periodic sequence of logarithmically spaced points.

A python wrapper for FFTLog

github.com/emsig/fftlog

fftlog is a simple f2py-wrapper for the logarithmic FFT code FFTLog. FFTLog is a set of fortran subroutines that compute the fast Fourier or Hankel (= Fourier-Bessel) transform of a periodic sequence of logarithmically spaced points.




Contributing & Contact#

emsig are community codes, please help to shape their future!

Join the #emsig-channel on the SWUNG Chat.

If you prefer personal email you can contact me through my website werthmuller.org.