Scientific Computing Template Library

11
1
C++

SCTL: Scientific Computing Template Library

tests
codecov
Stable Version
Latest Release

This is a header-only C++ library that provides several functionalities useful in scientific computing.
These functionalities a outlined below.
The header files contain the class declaration and doxygen style documentation of the interface.
An example/test code is also provided for most classes.

Containers:

  1. Vector
  2. Matrix, Permutation
  3. Tensor

Numerical Methods:

  1. SDC (Spectral Deferred Correction ODE solver)
  2. ParallelSolver: distributed memory GMRES (wrapper to PETSc when available)
  3. LagrangeInterp
  4. InterpQuadRule, ChebQuadRule, LegQuadRule: generalized Chebyshev quadrature, Clenshaw-Curtis quadrature, Gauss-Legendre quadrature
  5. SphericalHarmonics
  6. Tree, PtTree, Morton: Morton ordering based n-dimensional tree
  7. FFT: wrapper to FFT
  8. FMM: wrapper to PVFMM
  9. ChebBasis: general-dimension tensor product Chebyshev basis (unmaintained)

Boundary integral methods:

  1. BoundaryIntegralOp, BoundaryIntegralOp: generic boundary integral method
  2. SlenderElemList
  3. n-body kernel functions
  4. Boundary quadrature: generic boundary integral method based on quad-patches and hedgehog quadrature (unmaintained)

HPC:

  1. Comm: wrapper for MPI
  2. Vec: SIMD vectorization class
  3. OpenMP utilities: merge-sort, scan
  4. Profile

Misceleneous

  1. MemoryManager, Iterator, ConstIterator
  2. Stacktrace utility
  3. VTUData: write unstructured VTK files
  4. QuadReal, basic math functions, constants
  5. GEMM, SVD (unoptimized)