Lemma
0.4.0

Originally Lemma was intended as a recursive acronym standing for Lemma is an ElectroMagnetics Modelling API. As the breadth of the project has expanded, the name has remained appropriate in a more literal sense. Lemma is a flexible crossplatform library delivering an expressive API that can be used to easily create versatile programs. Lemma is not itself a program, instead it is a collection of building blocks to make geophysical applications. We retain this name because:
 In mathematics a Lemma is a proven proposition which is used as a stepping stone to a larger result rather than as a statement inandof itself.
 In addition to the electromagnetic modelling, some other facilities are provided such as numerical optimization and inversion capabilities. These tools are also considered stepping stones to final products.
We feel that this is a particularly approprate name, as Lemma's API can be leveraged create powerful applications such as forward modelling and inverting frequency and timedomain surveys of arbitrary survey design, sNMR surveys, CSEM and more.
Motivation
Why another Geophysical EM project? For starters, there aren't that many quality open source packages out there. Those that do exist are generally specialized to perform a single task and extending them is a major undertaking. Lemma's approach is much different, by providing a set of general tools users can easily assemble applications that suite their needs. Furthermore, most are written in either Fortran or MATLAB, and can be difficult to integrate into multiphysics applications. To our knowlege, Lemma is the only C++ EM simulation package freely available.
Capabilities
In the long term, we have many goals for this software project. Due to its design, Lemma can be built upon and extended easily. The initial aim is to provide flexible 1D and 3D EM modelling in the time and frequency domains.
Frequencydomain forward modelling
Lemma was initially called EMMODFD: Electromagnetic Modelling in the Frequency Domain. As such this is the most mature area of Lemma.
 1D
 Frequency domain solutions to electrical and magnetic dipoles can be computed quasianalytically in 1D. Calculations can be made in or above the layered media, and complex electrical conductivity and magnetic susceptibility are supported according to the ColeCole model. Sources may be embdedded in the media or in the resisitive air layer. Lemma can also can compute fields due to arbitrarily shaped ungrounded wire loops, topography of the loops is also supported. Two separate approaches to solving the Hankel transform, one based on Anderson's digitial filtering technique, and another based on Gaussian quadrature.
 3D
A fast 3D solver that can modify the 1D results based on arbitrary electrical conductivity model is nearing completion and is provided in a separate module.
 future work
We are also planning on supporting grounded wires in the near future.
Timedomain forward modelling
A 1D timedomain solution has been implemented that utilises both a dipole source as well as a wire loop. Currently, only one receiver is modelled at a time, but will be generalised. In addition, utilities to read in data files for modelling have been implemented.
Data Formats
The EM community is plagued with myriad data formats. Often each equiptment manufacturer provides their own data format and interoperability is a constant struggle. We are working on a flexible data format based on the XML format that can be adapted to many types of data. The template for this format will be publically released and we hope it catches on in the community. At the least, it will provide a mechanism to compare datasets and datatypes within Lemma.
Modules
Due to Lemma's design, it is easy to extend the platform. In some cases this extension results in adding functionality that is not directly related to ElectroMagnetics. The following modules utilise parts of Lemma to provide their functionality.
Tutorials
 Tutorial  Basic intruduction to Lemma, including aquiring and compiling the code, class structure, and building your own applications.
 Extending Tutorial on how to extend Lemma.
Development and design
Ths package was initially developed by the Center for Gravity, Electrical, and Magnetic Studies (CGEM) at the Colorado School of Mines (CSM), the United States Geological Survey (USGS), and Broken Spoke Development, LLC. Where it drew on work by many others including Ki Ha Lee, and Walt Anderson. All new work and interfaces are written entirely in C++. Several small external projects are included, which are written in standard C, and FORTRAN 77. We adapt a modern, test driven, object oriented, C++ framework. More recent development has been undertaken at the University of Utah through the Energy and Geoscience Institute.
Legalities
Copyrights
The following copyrights apply to the source. Most of the code was developed either by Trevor Copyright (C) 20082010 Trevor Irons trevo or M. Andrew Kass Copyright (C) 2010 r.ir ons@l emma softw are. orgmkass. @usg s.gov
The 1D EM solver was derived (but updated heavily) from a Fortran programme written by Ki Ha Lee in 1984. We have communicated with Ki Ha, and he assured us that this code is in the public domain.
A Gaussian quadrature hankel transform originally written by Alan Chave was ported to C++. This code is in the public domain, and the source code was published in Geophysics.
A digital filtering approach to the Hankel transform written by Walt Anderson was also rewritten for Lemma. The original Fortran code is also in the public domain.
Please note that Ki Ha Lee and Walt Anderson had no part in this work, and the above should not be interpreted as any sort of endorsement by those parties.
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Suggestions and contributions
We welcome contributions and suggestions. Feel free to email the development team at info@. Under the terms of the MPL, if you modify a lemm asoft ware .orgLemma file, you are obligated to share those contributions back with the community.
Useful links
 Home page https://lemmasoftware.org
 Git repository https://git.lemmasoftware.org
 Broken Spoke Develpment http://numericalgeo.com
 CGEM at the Coloroado School of Mines http://geophysics.mines.edu/cgem/
 EGI at the Eniversity of Utah http://egi.utah.edu/
Generated on Sun Sep 27 2020 22:50:18 for Lemma by TracDoxygen 0.7.5 & 1.8.5