🚧 Under construction.
This is a collection of libraries that is being developed mostly for educational purposes.
- Dense matrices and vectors of strandard and user-defined types with static and dynamic extents
- Matrices with static extents can be used in
constexpr
context - Sub-matrix (block) and transposed views
- Expression templates
- Sparse matrices with CSR storage scheme
- Some operations like
X = Y
orX += Y
withfloat
,double
,std::complex<float>
, andstd::complex<double>
matrix elements are mapped into MKL routines - Export in MATLAB
.mat
and Gnuplot binary matrix files - MKL inspector-executor sparse matrix wrapper
- MKL Pardiso linear solver and MKL Feast eigensolver wrappers
- GDB pretty printing
- 1D meshes
- 2D meshed based on half-edge datastructure
- Vertex, edge and face iterators and views
- 1D and 2D Lagrange elements of variable degree that is fixed at compile-time
- 2D⊗1D Lagrange elements
- Guass and Dunavant rules for itegration
- Matrix-based linear, non-linear and eigensolvers
- Mesh faces colouring and multi-threaded matrix assembly
- Import from Gmsh mesh files, export into VTK, Matlab and Gnuplot files
- GDB pretty printing
- Intel MKL
Requires C++17/C++20 compiler (the only C++20 feature used is template parameter list for generic lambdas P0428R2). Tested with GCC 8.3.0.