Wednesday, April 19, 2017

SHTns

"SHTns is a high performance library for Spherical Harmonic Transform written in C, aimed at numerical simulation (fluid flows, mhd, ...) in spherical geometries.

Features:
  • blazingly fast.
  • both scalar and vector transforms.
  • backward and forward (synthesis and analysis) functions.
  • flexible truncation (degree, order, azimuthal periodicity).
  • spatial data can be stored in latitude-major or longitude-major arrays.
  • various conventions (normalization and Condon-Shortley phase).
  • can be used from Fortran, c/c++, and Python programs.
  • highly efficient Gauss algorithm working with Gauss nodes (based on Gauss-Legendre quadrature).
  • support for SSE2, SSE3, AVX, AVX2 vectorization, as well as Xeon Phi and Blue Gene/Q.
  • parallel transforms with OpenMP.
  • synthesis (inverse transform) at any coordinate (not constrained to a grid).
  • on-the-fly transforms : saving memory and bandwidth, they are even faster on modern architectures.
  • accurate up to spherical harmonic degree l=16383 (at least).
  • rotation functions to rotate spherical harmonics.
  • special spectral operator functions that do not require a transform (multiply by cos(theta)...).
  • scalar transforms and rotations for complex spatial fields.
  • SHT at fixed m (without fft, aka Legendre transform - beta).
Documentation:

  • On-line doc is available: http://users.isterre.fr/nschaeff/SHTns/


  • You can build it locally: Run make docs to generate documentation (requires doxygen). Then browse the html documentation starting with doc/html/index.html
  • A related research paper has been published: Efficient Spherical Harmonic Transforms aimed at pseudo-spectral numerical simulations, also available from arXiv.


  • https://bitbucket.org/nschaeff/shtns

    No comments:

    Post a Comment