SHTns is a high-performance Spherical Harmonic Transform library. It was designed for numerical simulation (fluid flows, mhd, etc.) in spherical geometries, but can be used for any kind of problem involving scalar or vector spherical harmonics. It is very fast, thanks to careful vectorization and runtime tuning. It supports multi-threaded transforms via OpenMP. It features scalar and vector transforms, synthesis and analysis, and flexible truncation and normalization. A Python interface is included.
|Tags||Scientific/Engineering Mathematics Software Development Libraries|
|Operating Systems||Linux Unix BSD Mac OS X|
|Implementation||C SWIG OpenMP sse2 avx Python Xeon Phi|
Release Notes: This release adds several new features, including support for Intel Xeon Phi (in native mode only, icc 14+ required). The building process is also more robust, and a feature for saving/restoring configurations allows faster initialization and better bit-level reproducibility of results. A few minor bugs are also fixed.
Release Notes: This update corrects a performance problem for the analysis step of large transforms, when spatial data was stored with a contiguous longitude coordinate. Performance of this case is now comparable to other cases (e.g., synthesis and contiguous theta storage).
Release Notes: The main new feature in this release is the introduction of scalar spherical harmonic transforms of complex valued spatial data. There is also a new function for controlling the amount of informative output (verbosity). Support for Intel MKL has been improved, the header file is now compatible with std::complex (c++), and a new Python example for solving shallow water equations has been added.
Release Notes: This release fixes problems with compilation, adds optional support for the fft provided by intel MKL, and allows multi-threaded and single-threaded libraries to be installed side-by-side. The multi-threaded fftw is detected more reliably. The timing program now works on MacOS X and requires less memory. There are also other minor fixes and improvements.
Release Notes: This release adds new functions to access more data structures (m, gauss nodes, etc.) and allows some special operators to be applied in spectral space without performing a transform (like multiplication by cos(theta)). There are also minor improvements and two important bugfixes (one specific to openmp, the other to clang).