Matrix Toolkit¶
A Comprehensive Python Framework for Sparse Matrix Generation & PDE Discretization
2800+ Real-World Matrices
Smart search & filtering by size, sparsity, symmetry, and domain. Multi-threaded download with automatic caching.
65+ Test Matrices
Well-defined matrices with automatic property verification. 5 collections: Core, Gallery, Hadamard, MATLAB, Regtools.
17 PDE Equation Types
Classical, fluids, solids, EM, quantum mechanics. 1D/2D/3D support with multiple discretization schemes.
Automatic conversion to SciPy, NumPy, CuPy, JAX, PyTorch
Train/val/test splits with stratified & diversity sampling
Uniform, Normal, Log-normal, Latin Hypercube Sampling
NPZ, HDF5, MAT, MTX formats with metadata preservation
Quick Start¶
pip install matrix-toolkit
Or install with all extras:
pip install matrix-toolkit[all]
from matrix_toolkit import MatrixFetcher
# Initialize and search
fetcher = MatrixFetcher()
results = fetcher.search(
rows=(1000, 50000),
sparsity=(0.8, 0.99),
symmetry='symmetric'
)
# Fetch matrix
A = fetcher.get_matrix('HB/494_bus', backend='scipy')
from matrix_toolkit.anymatrix import AnyMatrix, MatrixProperties
am = AnyMatrix()
# Generate test matrix
beta = am.generate('core/beta', 10)
# Verify properties
assert MatrixProperties.is_symmetric(beta)
assert MatrixProperties.is_positive_definite(beta)
from matrix_toolkit.pde import PDEMatrixGenerator, PDEConfig
# 2D Poisson equation
config = PDEConfig(dimension=2, mesh_size=64)
gen = PDEMatrixGenerator('poisson', config)
A = gen.generate()
print(f"Shape: {A.shape}, Sparsity: 99.88%")
config = PDEConfig(
dimension=3,
mesh_size=32,
backend='cupy', # GPU acceleration
format='csr'
)
gen = PDEMatrixGenerator('helmholtz', config)
A_gpu = gen.generate() # Matrix on GPU!
Features Overview¶
🗂️ SuiteSparse Integration
Smart Search
Size filtering (rows, cols, nnz)
Sparsity ratio
Symmetry properties
Problem domain
Positive definiteness
Multi-Backend
SciPy sparse matrices
NumPy dense arrays
CuPy (GPU)
JAX arrays
PyTorch tensors
Storage Formats
NPZ (NumPy compressed)
HDF5 (hierarchical)
MAT (MATLAB)
MTX (Matrix Market)
Dataset Tools
Train/val/test splits
Stratified sampling
Diversity sampling
Reproducible seeds
🧪 Anymatrix Test Matrices
65+ Test Matrices Across 5 Collections
Group |
Count |
Description |
|---|---|---|
Core |
45+ |
Beta, Fourier, Wilson, Nilpotent, Stochastic, Structured |
Gallery |
6 |
Lehmer, Minij, Moler, Clement, KMS, Tridiag |
Hadamard |
2 |
Hadamard, Walsh orthogonal matrices |
MATLAB |
8 |
Magic, Pascal, Hilbert, Rosser, Wilkinson |
Regtools |
5 |
Shaw, Phillips, Deriv2, Gravity, Blur (ill-posed problems) |
Property Verification (20+ Properties)
Symmetry, Hermitian, Skew-symmetric
Positive definite, Positive semi-definite
Orthogonal, Unitary
Diagonal, Tridiagonal, Triangular
Toeplitz, Circulant, Hankel
Stochastic (row, column, doubly)
📐 PDE Matrix Generation
17 Equation Types Across Multiple Physics Domains
Poisson |
|
1D/2D/3D |
Heat |
|
1D/2D/3D |
Wave |
|
1D/2D/3D |
Helmholtz |
|
1D/2D/3D |
Biharmonic |
|
1D/2D/3D |
Stokes |
|
2D/3D |
Navier-Stokes |
Linearized NS equations |
2D/3D |
Burgers |
|
1D/2D |
Advection-Diff |
|
1D/2D/3D |
Elasticity |
|
2D/3D |
Maxwell |
|
3D |
Schrödinger |
|
1D/2D/3D |
Klein-Gordon |
|
1D/2D/3D |
Advanced Features
Discretization: 2nd/4th/6th order finite differences
Boundary Conditions: Dirichlet, Neumann, Periodic, Robin, Mixed
Time Stepping: Forward/Backward Euler, Crank-Nicolson, θ-method
Parameter Sampling: Uniform, Normal, Log-normal, LHS
Batch Generation: Create 100s-1000s of matrices for UQ
Performance & Scalability¶
10,000 points
Matrix: 10,000²
NNZ: ~30K
Sparsity: 99.97%
100×100 grid
Matrix: 10,000²
NNZ: ~50K
Sparsity: 99.95%
50×50×50 grid
Matrix: 125,000²
NNZ: ~875K
Sparsity: 99.99%
Documentation Contents¶
Comprehensive guides for all modules and features
Step-by-step tutorials for common workflows
Advanced examples and use cases
Complete API documentation