Skip to content

R-Hertel/tetmag

Repository files navigation

Documentation Status GitHub Forks GitHub Stars GitHub Release Date

tetmag is a finite-element software for general-purpose micromagnetic simulations.

Installation

Requirements

  • For ubuntu 22.04: Install the following
sudo apt-get install build-essential cmake git wget
sudo apt-get install libboost-all-dev libeigen3-dev libnetcdf-dev libvtk9-dev 
sudo apt-get install liblapack-dev libglu1 libpthread-stubs0-dev
sudo apt-get install libxrender-dev libxcursor-dev libxft-dev libxinerama-dev
sudo apt-get install qtbase5-dev qtdeclarative5-dev
  • Optional:
    • GPU-acceleration with CUDA (version 10.1 or higher needed)

For more detailed installation instructions, see the tetmag documentation.

Compilation

 git clone https://github.com/R-Hertel/tetmag.git 
 cd tetmag && mkdir build && cd build 
 cmake ..
 make -j$(nproc)
  • Notes:
    • Installation on Windows and other linux distributions should be possible, but hasn't been tested.
    • The software can be compiled and run on MacOS (tested on macOS 13.3.1 with Apple M1 processor) if the required libraries are installed.
    • An internet connection is necessary during the build process.

Additional software

Although tetmag is a standalone software that -unlike plugin-type applications- does not require a specific framework to operate, its workflow involves a series of processes that must be handled by other applications. This concerns two categories of operations:

  • Preprocessing - Definition of the sample geometry and finite-element mesh generation
  • Postprocessing - Visualization and analysis of the results

The following software can accomplish these tasks:

  • ParaView - Data visualization
  • gmsh or netgen - Finite-element mesh generation
  • FreeCAD - Design of three-dimensional objects

The documentation describes the required pre- and postprocessing steps and shows how tetmag interacts with this external software.

Usage

Credits

The tetmag software is powered by these awesome projects:

  • AMGCL - Iterative solution of sparse systems

  • SUNDIALS / CVODE - Solution of ordinary differential equation systems

  • Eigen - Linear algebra

  • H2Lib - Hierarchical matrix data compression

  • VTK and gmsh - I/O of finite-element mesh data

  • CUDA / Thrust - GPU acceleration

  • boost - Powerful C++ libraries

  • CMake - Build system generator