Skip to content

Commit 0ef1dc7

Browse files
Sébastien LoiselSébastien Loisel
authored andcommitted
docs: add rotating hero GIF; remove BibTeX from README/docs; prose cleanup
- README: lead with a rotating p-Laplace solution hero (docs/src/assets/hero.gif). - README + docs: keep the formatted bibliography only; drop the BibTeX blocks (structured citation data stays in CITATION.cff and paper/paper.bib). - README, paper.md: remove em-dashes in favour of other punctuation. - CONTRIBUTING: trim the help/questions section.
1 parent a64391c commit 0ef1dc7

5 files changed

Lines changed: 21 additions & 78 deletions

File tree

CONTRIBUTING.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
Contributions are welcome — bug reports, feature requests, documentation improvements, and
44
pull requests.
55

6-
## Reporting bugs and requesting features
6+
## Reporting bugs, requesting features, and questions
77

8-
Please open an issue: <https://github.com/sloisel/MultiGridBarrier.jl/issues>.
8+
Please open an issue: <https://github.com/sloisel/MultiGridBarrier.jl/issues>. Usage
9+
questions are welcome there too.
910

1011
For a bug report, include:
1112

@@ -27,11 +28,6 @@ For a bug report, include:
2728

2829
Small, focused pull requests are easier to review and merge.
2930

30-
## Asking questions / getting help
31-
32-
For usage questions, open an issue or ask on the
33-
[Julia Discourse](https://discourse.julialang.org).
34-
3531
## License
3632

3733
By contributing, you agree that your contributions will be licensed under the project's

README.md

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55
[![Build Status](https://github.com/sloisel/MultiGridBarrier.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/sloisel/MultiGridBarrier.jl/actions/workflows/CI.yml?query=branch%3Amain)
66
[![Coverage](https://codecov.io/gh/sloisel/MultiGridBarrier.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/sloisel/MultiGridBarrier.jl)
77

8-
**Quasi-optimal solvers for convex variational problems** — nonlinear PDEs and boundary-value
9-
problems, including the *nonsmooth* ones that defeat most solvers: the p-Laplacian for every
10-
`p ∈ [1, ∞]`, total variation, and obstacle problems. The **multigrid barrier method** couples an
8+
<p align="center">
9+
<img src="docs/src/assets/hero.gif" alt="A nonsmooth p-Laplace solution computed with MultiGridBarrier.jl" width="460">
10+
</p>
11+
12+
**Quasi-optimal solvers for convex variational problems.** `MultiGridBarrier.jl` solves
13+
nonlinear PDEs and boundary-value problems, including the *nonsmooth* ones that defeat most
14+
solvers: the p-Laplacian for every `p ∈ [1, ∞]`, total variation, and obstacle problems. The **multigrid barrier method** couples an
1115
interior-point (barrier) method with a multigrid hierarchy to reach near-linear cost where that is
1216
provably achievable. Finite elements in 1D/2D/3D (simplicial `P_k` and tensor-product `Q_k`) and
1317
Chebyshev spectral discretizations, with optional CUDA GPU acceleration.
@@ -30,8 +34,8 @@ plot(sol)
3034

3135
- **Convex variational problems / nonlinear PDEs & BVPs:** the p-Laplacian, total variation,
3236
obstacle-type constraints, and other convex functionals.
33-
- **Discretizations:** finite elements in 1D/2D/3D simplicial `P1`/`P2` and tensor-product `Q_k`
34-
plus Chebyshev spectral elements; all isoparametric.
37+
- **Discretizations:** finite elements in 1D/2D/3D (simplicial `P1`/`P2` and tensor-product `Q_k`),
38+
plus Chebyshev spectral elements; all isoparametric.
3539
- **Solver:** an algebraic-multigrid hierarchy (`amg`) driving a barrier (interior-point) method.
3640
- **Topological meshes:** slit domains, branch cuts, and glued manifolds via explicit connectivity
3741
(the `t=` keyword and `tensor_dofmap`).
@@ -56,36 +60,6 @@ work:
5660
Mathematik **146**(2):369–400, 2020.
5761
[doi:10.1007/s00211-020-01141-z](https://doi.org/10.1007/s00211-020-01141-z)
5862

59-
<details>
60-
<summary>BibTeX</summary>
61-
62-
```bibtex
63-
@article{loisel2026spectral,
64-
author = {Loisel, Sébastien},
65-
title = {The spectral barrier method to solve analytic convex optimization problems in function spaces},
66-
journal = {Numerische Mathematik},
67-
volume = {158},
68-
number = {1},
69-
pages = {281--302},
70-
year = {2026},
71-
publisher = {Springer},
72-
doi = {10.1007/s00211-025-01508-0}
73-
}
74-
75-
@article{loisel2020efficient,
76-
author = {Loisel, Sébastien},
77-
title = {Efficient algorithms for solving the p-Laplacian in polynomial time},
78-
journal = {Numerische Mathematik},
79-
volume = {146},
80-
number = {2},
81-
pages = {369--400},
82-
year = {2020},
83-
publisher = {Springer},
84-
doi = {10.1007/s00211-020-01141-z}
85-
}
86-
```
87-
</details>
88-
8963
## Author
9064

9165
Sébastien Loisel.

docs/src/assets/hero.gif

1.01 MB
Loading

docs/src/index.md

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,6 @@ paper(s) most relevant to your work:
2727
Numerische Mathematik **146**(2):369–400, 2020.
2828
[doi:10.1007/s00211-020-01141-z](https://doi.org/10.1007/s00211-020-01141-z)
2929

30-
BibTeX:
31-
```bibtex
32-
@article{loisel2026spectral,
33-
author = {Loisel, Sébastien},
34-
title = {The spectral barrier method to solve analytic convex optimization problems in function spaces},
35-
journal = {Numerische Mathematik},
36-
volume = {158},
37-
number = {1},
38-
pages = {281--302},
39-
year = {2026},
40-
publisher = {Springer},
41-
doi = {10.1007/s00211-025-01508-0}
42-
}
43-
44-
@article{loisel2020efficient,
45-
author = {Loisel, Sébastien},
46-
title = {Efficient algorithms for solving the p-Laplacian in polynomial time},
47-
journal = {Numerische Mathematik},
48-
volume = {146},
49-
number = {2},
50-
pages = {369--400},
51-
year = {2020},
52-
publisher = {Springer},
53-
doi = {10.1007/s00211-020-01141-z}
54-
}
55-
```
56-
5730
## Workflow at a glance
5831

5932
Every problem is solved with the same three-step pattern:

paper/paper.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ bibliography: paper.bib
2323
# Summary
2424

2525
`MultiGridBarrier.jl` is a Julia package for solving convex variational problems in
26-
function spacesthe nonlinear partial differential equations (PDEs) and boundary-value
27-
problems that arise from minimizing a convex functional. Representative examples include
26+
function spaces. These are the nonlinear partial differential equations (PDEs) and
27+
boundary-value problems that arise from minimizing a convex functional. Representative examples include
2828
the $p$-Laplacian for any $p \in [1, \infty]$, total-variation problems, and obstacle
2929
problems. The most useful of these are *nonsmooth*: the energy is convex but not
3030
differentiable (e.g. $p = 1$ or total variation), a regime in which Newton-type solvers
@@ -34,12 +34,12 @@ mesh resolution.
3434
The package implements the **multigrid barrier method**, which couples an interior-point
3535
(barrier) method with a multigrid hierarchy. For the problem classes covered by the
3636
supporting theory the method is *quasi-optimal*: the number of interior-point/Newton
37-
iterations grows only mildly with the number of degrees of freedom $n$ — for instance
38-
$O(\sqrt{n}\,\log n)$ for the $p$-Laplacian [@loisel2020efficient], and polylogarithmically
39-
in the analytic, spectral setting [@loisel2026spectral].
37+
iterations grows only mildly with the number of degrees of freedom $n$. For instance, this
38+
count is $O(\sqrt{n}\,\log n)$ for the $p$-Laplacian [@loisel2020efficient], and
39+
polylogarithmic in the analytic, spectral setting [@loisel2026spectral].
4040

4141
`MultiGridBarrier.jl` provides finite-element discretizations in one, two, and three
42-
dimensions simplicial $P_1$/$P_2$ elements and tensor-product $Q_k$ elements as well as
42+
dimensions (simplicial $P_1$/$P_2$ elements and tensor-product $Q_k$ elements), as well as
4343
Chebyshev spectral discretizations, all with isoparametric element maps. It builds an
4444
algebraic-multigrid hierarchy automatically (via `AlgebraicMultigrid.jl`
4545
[@AlgebraicMultigrid] or, optionally, `PyAMG` [@pyamg]), supports user-specified mesh
@@ -58,7 +58,7 @@ sol = mgb_solve(assemble(amg(geom); p = 1.0)) # a nonsmooth p = 1 problem
5858
Convex variational problems are ubiquitous in computational science: nonlinear elasticity
5959
and plasticity, image denoising and segmentation (total variation), contact and obstacle
6060
problems, and non-Newtonian flow (the $p$-Laplacian). The difficulty is that the most
61-
interesting cases are nonsmooth the energy is convex but not differentiable so
61+
interesting cases are nonsmooth (the energy is convex but not differentiable), so
6262
Newton-type methods applied naively either stagnate or require an iteration count that grows
6363
rapidly as the mesh is refined.
6464

@@ -74,8 +74,8 @@ the building blocks for discretizing PDEs and solving linear systems, but they d
7474
an out-of-the-box, theoretically grounded solver for nonsmooth convex variational problems.
7575
`MultiGridBarrier.jl` fills this gap: it packages the discretization, the multigrid hierarchy,
7676
and the barrier solver behind a small high-level interface (`fem2d_P2`, `amg`, `assemble`,
77-
`mgb_solve`), so that researchers and practitioners can solve such problemsand reproduce
78-
the numerical results of the underlying papersin a few lines, on the CPU or the GPU.
77+
`mgb_solve`). Researchers and practitioners can then solve such problems, and reproduce the
78+
numerical results of the underlying papers, in a few lines on the CPU or the GPU.
7979

8080
# Functionality
8181

0 commit comments

Comments
 (0)