Skip to content
/ torrepp Public

Full-wave em-wave and radar simulation and inversion in cpp.

License

Notifications You must be signed in to change notification settings

cstatz/torrepp

Repository files navigation

torrepp

Status

Build Status License

Content

  1. Introduction
    1. Contributing
    2. Versions
  2. Features
  3. Installation
    1. Dependencies
    2. Clone the repository
    3. Build and Test
    4. Configuration
  4. Usage
    1. Examples
    2. Minimal Examples
    3. Notes
  5. Benchmarks
  6. License

Introduction

Contributing

We appreciate all contributions from issues to pull requests.

For contributing, please read the contribution guide.

Versions

The releases are based on the master branch. The release-version is tagged and follows the scheme Year.Quarter.Revision.

Features

  • modern C++
  • unit tests via doctest

Installation

Installation and build are tested on linux (e.g. ubuntu bionic, arch linux) and macOS. Before starting the build process please ensure all dependencies are properly installed and available to the project.

Dependencies

  • C++17 capable compiler
  • cmake (>= 3.11.0)
  • doctest (for testing, pulled in as submodule)

Clone the repository

Clone the repository with the following command: git clone https://github.com/cstatz/torrepp.git

For the tests and the benchmarks the submodules must be cloned as well:

git submodule init
git submodule update 

This will pull doctest, ... as submodules.

Build and test

We strictly recommend an out-of-source build in a separate directory (here for simplicity build) Starting in the source directory to project is build from the commandline as follows:

mkdir build
cd build 
ccmake ../  # create cache and configuration
cmake --build .
cmake --build . -- install  # If package needs to be installed 
ctest  # Runs the tests

For maximum performance, we recommend building with gcc which results in a 15% to 20% better performance compared to clang (on linux and macOS). The provided benchmarks might be used to tune the compilation flags for your specific system and architecture.

Configuration

The easiest way to set the configuration variables is by using ccmake or pass the variables via cmake ../ -D<VARIABLE>:<TYPE>=value.

  • ENABLE_OMP: Enable OpenMP in examples (for traversal)
  • BUILD_TEST: Build tests

Usage

Examples

Minimal Example

Notes

Benchmarks

License

torrepp is licensed under the new BSD (3-clause) license. cnpy is licensed under the MIT license and available at: https://github.com/rogersce/cnpy

Releases

No releases published

Packages

No packages published