Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
9715068
add timeroutputs
Abdelrahman912 Nov 29, 2025
131471d
add hot fix for sym check
Abdelrahman912 Nov 30, 2025
77e4e3a
big mat test
Abdelrahman912 Nov 30, 2025
8a8e5f6
minor fix
Abdelrahman912 Nov 30, 2025
1e6fb37
minor changes
Abdelrahman912 Nov 30, 2025
2a8b1e0
fixes
Abdelrahman912 Dec 1, 2025
5679c04
minor fix
Abdelrahman912 Dec 1, 2025
1620a1b
add eq 6.3
Abdelrahman912 Dec 3, 2025
c656c08
fix test
Abdelrahman912 Dec 3, 2025
5172c8d
Merge branch 'main' into l1gs-mem-fix
Abdelrahman912 Dec 3, 2025
00de37e
minor fixes
Abdelrahman912 Dec 3, 2025
3fc68b2
add eta and docstring
Abdelrahman912 Dec 3, 2025
8f872e3
typo
Abdelrahman912 Dec 3, 2025
b34c57a
init first sketches for new L1GS
Abdelrahman912 Dec 8, 2025
048fde2
Merge branch 'main' into l1gs-mem-fix
Abdelrahman912 Jan 4, 2026
3b2df89
minor fix
Abdelrahman912 Jan 4, 2026
2e1db53
julia formatter
Abdelrahman912 Jan 4, 2026
13e4677
apply jlfmt
Abdelrahman912 Jan 4, 2026
eb968ef
init
Abdelrahman912 Jan 5, 2026
88d658f
init arch
Abdelrahman912 Jan 7, 2026
7c52544
refactor `_make_sweep_plan`
Abdelrahman912 Jan 14, 2026
e7448db
refactor `_apply_sweep`
Abdelrahman912 Jan 15, 2026
6e74bff
jlfmt
Abdelrahman912 Jan 15, 2026
75c708e
minor fix
Abdelrahman912 Jan 15, 2026
9e25288
pre-commit
Abdelrahman912 Jan 15, 2026
35b800f
minor fix
Abdelrahman912 Jan 15, 2026
41c9237
fix prev tests
Abdelrahman912 Jan 15, 2026
0ec39a1
minor fix
Abdelrahman912 Jan 15, 2026
1b2c1af
fix backward sweep bug + add algorithm tests
Abdelrahman912 Jan 24, 2026
22542ee
precommit
Abdelrahman912 Jan 26, 2026
534b225
frmt
Abdelrahman912 Jan 26, 2026
6230a45
add non-symmetric tests
Abdelrahman912 Jan 26, 2026
25b9c45
frmt
Abdelrahman912 Jan 26, 2026
a335cde
minor fix
Abdelrahman912 Jan 26, 2026
56c9707
tests
Abdelrahman912 Jan 27, 2026
af37d21
frmt
Abdelrahman912 Jan 27, 2026
ea76502
minor changes
Abdelrahman912 Jan 28, 2026
8211c1e
fix ci
Abdelrahman912 Jan 28, 2026
c36ce4f
add tests
Abdelrahman912 Jan 29, 2026
7df4cbf
add sym sweep fix
Abdelrahman912 Jan 29, 2026
e1a3ebd
fix sym test
Abdelrahman912 Jan 30, 2026
713d5f8
un comment sym flag + pass solver object
Abdelrahman912 Jan 30, 2026
dd26ef1
add docs
Abdelrahman912 Feb 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion docs/src/api-reference/solver.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ SchurComplementLinearSolver
## Preconditioners

```@docs
Thunderbolt.Preconditioners.BlockPartitioning
Thunderbolt.Preconditioners.L1GSPrecBuilder
Thunderbolt.Preconditioners.L1GSPreconditioner
Thunderbolt.Preconditioners.ForwardSweep
Thunderbolt.Preconditioners.BackwardSweep
Thunderbolt.Preconditioners.SymmetricSweep
Thunderbolt.Preconditioners.PackedBufferCache
Thunderbolt.Preconditioners.MatrixViewCache
```

## Nonlinear
Expand Down
14 changes: 14 additions & 0 deletions docs/src/assets/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -359,3 +359,17 @@ @article{BakFalKolYan:2011:MSU
eprint = {https://doi.org/10.1137/100798806},
abstract = {This paper investigates the properties of smoothers in the context of algebraic multigrid (AMG) running on parallel computers with potentially millions of processors. The development of multigrid smoothers in this case is challenging, because some of the best relaxation schemes, such as the Gauss–Seidel (GS) algorithm, are inherently sequential. Based on the sharp two-grid multigrid theory from Falgout and Vassilevski (2004) and Falgout, Vassilevski, and Zikatanov (2005), we characterize the smoothing properties of a number of practical candidates for parallel smoothers, including several C-F, polynomial, and hybrid schemes. We show, in particular, that the popular hybrid GS algorithm has multigrid smoothing properties which are independent of the number of processors in many practical applications, provided that the problem size per processor is large enough. This is encouraging news for the scalability of AMG on ultraparallel computers. We also introduce the more robust ℓ₁ smoothers, which are always convergent and have already proven essential for the parallel solution of some electromagnetic problems.}
}

@book{saad2003iterative,
author = {Saad, Yousef},
title = {Iterative Methods for Sparse Linear Systems},
edition = {Second},
year = {2003},
publisher = {Society for Industrial and Applied Mathematics},
address = {Philadelphia, PA},
series = {Other Titles in Applied Mathematics},
volume = {82},
isbn = {978-0-89871-534-7},
doi = {10.1137/1.9780898718003},
url = {https://epubs.siam.org/doi/book/10.1137/1.9780898718003}
}
5 changes: 4 additions & 1 deletion src/solver/linear/preconditioners/Preconditioners.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import KernelAbstractions:
import SparseArrays: getcolptr, getnzval
import SparseMatricesCSR: getnzval
import LinearAlgebra: Symmetric
using LinearAlgebra
import Thunderbolt:
ThreadedSparseMatrixCSR, AbstractDevice, AbstractCPUDevice, AbstractGPUDevice, default_backend
using TimerOutputs: @timeit_debug

## Generic Code #

Expand Down Expand Up @@ -40,6 +42,7 @@ getrowptr(A::Union{SparseMatrixCSR, ThreadedSparseMatrixCSR}) = SparseMatricesCS

include("l1_gauss_seidel.jl")

export L1GSPrecBuilder
export L1GSPrecBuilder,
ForwardSweep, BackwardSweep, SymmetricSweep, PackedBufferCache, MatrixViewCache

end
Loading
Loading