SCTL: Scientific Computing Template Library
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:
- Vector
- Matrix, Permutation
- Tensor
Numerical Methods:
- SDC (Spectral Deferred Correction ODE solver)
- ParallelSolver: distributed memory GMRES (wrapper to PETSc when available)
- LagrangeInterp
- InterpQuadRule, ChebQuadRule, LegQuadRule: generalized Chebyshev quadrature, Clenshaw-Curtis quadrature, Gauss-Legendre quadrature
- SphericalHarmonics
- Tree, PtTree, Morton: Morton ordering based n-dimensional tree
- FFT: wrapper to FFT
- FMM: wrapper to PVFMM
- ChebBasis: general-dimension tensor product Chebyshev basis (unmaintained)
Boundary integral methods:
- BoundaryIntegralOp, BoundaryIntegralOp: generic boundary integral method
- SlenderElemList
- n-body kernel functions
- Boundary quadrature: generic boundary integral method based on quad-patches and hedgehog quadrature (unmaintained)
HPC:
- Comm: wrapper for MPI
- Vec: SIMD vectorization class
- OpenMP utilities: merge-sort, scan
- Profile
Misceleneous
- MemoryManager, Iterator, ConstIterator
- Stacktrace utility
- VTUData: write unstructured VTK files
- QuadReal, basic math functions, constants
- GEMM, SVD (unoptimized)