GravoTet: A Fast Multigrid Hierarchy
Construction for Tetrahedral Meshes

Shape Modeling International (SMI) · Computers & Graphics, 2026
GravoTet Teaser Image
We introduce GravoTet, a fast boundary-aware mesh hierarchy construction for tetrahedral meshes for geometric multigrid methods. The hierarchy is used for the efficient computation of barycentric prolongation weights. For volumetric Poisson and biharmonic problems, we obtain faster convergence rates in V-cycle iterations and lower total computation times than CHOLMOD.
📄 Paper (soon) GitHub GitHub ✍️ Cite

Abstract

Geometric multigrid (GMG) methods are a fundamental tool for efficiently solving large sparse linear systems. A requirement for GMG is a hierarchy of grids; however, many practical volumetric domains are available only as single, irregular tetrahedral meshes, making the construction of a multigrid hierarchy necessary. Existing approaches often trade off speed against hierarchy quality: remeshing- or coarsening-based methods can be expensive to construct, whereas graph-based techniques are fast but often yield weaker multigrid performance. We introduce GravoTet, which bridges this gap by combining geometric structure with graph-based efficiency to construct fast and effective multigrid hierarchies. GravoTet builds a vertex hierarchy and then generates graph-Voronoi diagrams whose dual cells define coarse tetrahedra, enabling rapid construction of multigrid levels. Boundary elements are explicitly prioritized during both sampling and tet generation to preserve the boundary. In our evaluation, we solve Poisson and biharmonic problems on irregular tetrahedral meshes and compare GravoTet against state-of-the-art geometric multigrid, algebraic multigrid and direct solvers, demonstrating superior performance, particularly on large meshes.

Method

GravoTet combines fast point sampling with graph-Voronoi-based coarsening to build a hierarchy of tetrahedral meshes without explicit remeshing. At each level, a set of vertices is sampled using fast disc sampling and then clustered via a two-phase Dijkstra Voronoi computation — first restricted to the boundary graph, then expanded into the full volumetric graph. Cliques in the resulting coarse graph define coarse tetrahedra (or faces, edges, and isolated vertices for lower-dimensional features). Barycentric coordinates of fine vertices within their enclosing simplex give the prolongation weights, with at most four non-zero entries per row.

GravoTet Method Overview
An overview of our method. The input tetrahedral mesh is sampled and a tetrahedron is constructed using the graph-Voronoi approach (shown in 2D for illustration purposes). The sampling is directed by features and the simplex construction focuses on the surface. The resulting coarser mesh is then used to compute barycentric prolongation weights.

Boundary-Aware Coarsening

Preserving boundary fidelity is critical for multigrid performance on tetrahedral meshes. GravoTet introduces two targeted improvements: first, sharp boundary features are identified by their dihedral-angle sum and used to prioritize vertex sampling, so high-curvature regions on the surface are represented at every hierarchy level. Second, the graph-Voronoi clustering proceeds in two phases — propagation is first restricted to the exterior graph (surface geodesics), then expanded into the interior. Together, these modifications keep coarse meshes geometrically faithful to the input boundary with negligible extra runtime.

Armadillo Mesh Comparison
The Armadillo input tetrahedral mesh (middle) is coarsened using our graph-Voronoi-based approach. We compare the boundary-aware result (right) with the result without boundary awareness (left).
Coarsening Comparison
A comparison of the mesh hierarchy produced by applying our boundary-aware approach vs. omitting it for the first three levels of the fidelity mesh.

Comparisons

We benchmark GravoTet against Shi06 (graph-based geometric multigrid), AMG-RS and AMG-SA (algebraic multigrid via PyAMG), and the sparse direct solver CHOLMOD. All multigrid methods share the same V-cycle implementation and differ only in their prolongation operators. Each row below shows the input mesh, then relative residual vs. wall-clock time (convergence) and total execution time breakdown for the Poisson problem, followed by the same two plots for the biharmonic problem. The biharmonic problem is considerably harder for iterative solvers: competing methods frequently hit the time budget, while GravoTet converges on all models. More graphs are provided in the supplementary material.

Poisson
convergence
total time
Biharmonic
convergence
total time

Armadillo
519k vertices

Armadillo

Spot
709k vertices

Spot

Cow
2.0M vertices

Cow

Fertility
2.8M vertices

Fertility

Performance Table

Detailed performance metrics for all 26 comparison models across Poisson and biharmonic problems. Build, Solve, and Total times are in seconds. Bold values mark the best result per row. GravoTet consistently achieves the lowest iteration count and the lowest total time in most cases. On the ill-conditioned biharmonic problem, competing methods frequently hit the time budget while GravoTet converges on every model; CHOLMOD fails on memory for the larger meshes.

Model #Vert N1 Ours Shi06 AMG-RS AMG-SA Direct (CHOLMOD)
BuildSolveTotal#It BuildSolveTotal#It BuildSolveTotal#It BuildSolveTotal#It Fact.Subst.Total
Poisson Problems
Fandisk22k0.090.120.2170.060.190.25100.050.220.27490.070.110.18390.170.000.18
Homer33k0.180.180.3680.100.340.43130.080.310.39460.090.170.26410.270.010.27
Teapot52k0.290.480.7670.160.460.62110.140.650.79600.130.380.51460.610.020.63
Horse74k0.460.390.8490.220.640.86140.201.011.20620.190.600.80480.780.020.80
Spike102k0.570.471.0460.321.071.39130.311.451.76660.281.031.31611.410.051.46
Max Planck157k0.760.801.5680.561.892.44140.484.154.631160.641.712.35582.260.072.32
Ring208k1.080.992.0760.641.872.51160.642.713.35490.961.822.78432.460.062.52
Rocker Arm262k0.991.412.4080.832.453.28160.844.605.44731.123.044.16583.350.093.44
Bob309k1.441.813.2471.223.124.34151.058.039.081061.374.255.61674.700.134.83
Cylinder310k2.451.874.3261.093.384.47171.277.048.31871.654.736.38644.750.144.88
Bunny411k2.122.714.8371.284.435.72141.4814.6316.111421.955.697.64607.740.207.94
Cube 803512k5.134.839.9683.366.9410.30175.078.7013.78172.446.969.405711.040.2911.33
Armadillo519k4.354.088.43113.086.209.28162.6030.0932.691922.8010.1212.92718.870.219.08
Nefertiti617k4.325.109.42102.547.5910.13152.4141.3043.702333.1611.4814.646713.780.3514.13
Spot709k6.025.5211.5482.478.9511.42162.8741.7244.592053.6713.4017.076918.570.4819.05
Spike Ball829k7.667.0114.6793.4711.3514.81173.08timeout> 1min2856.3016.0922.396335.791.2237.01
Beast881k7.067.6114.68105.1110.8315.95176.4745.9652.431616.4419.0425.4973failedfailedfailed
Cube 10031.0M3.3914.0617.4584.5715.1819.751916.3422.0038.34188.4817.8526.3350115.790.96116.76
Dragon1.0M9.589.2618.84126.5512.6819.22177.9651.8959.8516010.7321.3332.0672failedfailedfailed
Happy Buddha1.2M6.8810.8317.70135.1117.2922.41195.76timeout> 1min1846.9027.2934.198745.510.6546.16
Octocat1.5M7.2312.3419.5695.9422.0427.98227.09timeout> 1min1368.5936.4145.008951.821.6053.42
Kitten1.5M8.5312.7321.2686.2622.1728.43177.53timeout> 2min2879.0430.9840.027260.045.8165.85
Lucy1.9M21.9318.4140.341612.4328.3040.732013.45185.55199.0026019.9838.4158.388952.141.3853.51
Cow2.0M23.5819.8343.411014.5153.1467.641915.38timeout> 4min23723.1287.46110.5887failedfailedfailed
XYZ Dragon2.4M14.1925.7539.941410.5039.6550.152112.96timeout> 2min15315.6869.4785.1598failedfailedfailed
Fertility2.8M10.0024.0234.02910.6741.4952.161914.27timeout> 2min14617.4794.11111.5986failedfailedfailed
Biharmonic Problems
Fandisk22k0.120.320.44240.080.670.76520.062.432.482900.061.181.241560.520.010.53
Homer33k0.230.630.87200.141.912.05940.0819.2719.359110.096.486.573691.390.031.42
Teapot52k0.331.301.63390.163.303.46990.1314.9915.136130.136.336.463121.630.051.68
Horse74k0.451.491.94260.255.705.951330.2058.9159.1118030.1913.9914.185182.050.052.11
Spike102k0.663.344.00470.3115.3615.672360.29timeout> 1min11560.2733.2933.567784.290.114.40
Max Planck157k1.004.915.91440.5126.7427.252640.47timeout> 1min7210.61timeout> 1min9007.240.177.42
Ring208k1.174.685.85260.6015.0115.611010.63timeout> 1min5680.8434.2235.053866.530.156.68
Rocker Arm262k1.475.767.23241.6427.4829.121530.83timeout> 1min4421.13timeout> 1min5399.410.229.63
Bob309k2.5110.3012.81421.0151.1652.172411.03timeout> 1min3441.42timeout> 1min41514.370.3314.69
Cylinder310k1.969.8111.77381.0841.4742.561931.07timeout> 1min3461.38timeout> 1min42212.810.3013.11
Bunny411k2.2218.8521.07561.2899.69100.973291.47timeout> 2min4721.94timeout> 2min55330.821.3932.21
Cube 803512k2.6426.9329.57801.6578.2779.922274.6335.3840.01512.25timeout> 2min50740.130.9741.10
Armadillo519k2.8119.3822.20391.75118.48120.233021.88timeout> 2min3582.53timeout> 2min41031.230.8832.11
Nefertiti617k2.8125.8228.62432.22timeout> 2min2662.39timeout> 2min2903.12timeout> 2min32656.017.2463.25
Spot709k3.1432.4835.61482.61timeout> 2min2302.87timeout> 2min2503.67timeout> 2min283failedfailedfailed
Spike Ball829k8.9360.1069.03614.45timeout> 4min3534.93timeout> 4min4566.80timeout> 4min303failedfailedfailed
Beast881k6.3042.1648.46514.94timeout> 4min2163.50timeout> 4min2363.23timeout> 4min267failedfailedfailed
Cube 10031.0M6.0763.6669.72903.42242.62246.0333510.7596.51107.26694.86timeout> 4min484failedfailedfailed
Dragon1.0M10.0645.1355.19315.93timeout> 4min1936.60timeout> 4min2398.84timeout> 4min313failedfailedfailed
Happy Buddha1.2M11.3972.7084.09448.09timeout> 6min2398.56timeout> 6min26411.52timeout> 6min298failedfailedfailed
Octocat1.5M7.9853.3161.29275.97timeout> 4min2077.05timeout> 4min2248.74timeout> 4min257failedfailedfailed
Kitten1.5M8.4775.7784.23466.18timeout> 6min2887.36timeout> 6min3228.96timeout> 6min369failedfailedfailed
Lucy1.9M11.8489.17101.01438.02timeout> 6min2289.45timeout> 6min25511.29timeout> 6min294failedfailedfailed
Cow2.0M15.58144.04159.62468.41timeout> 8min14016.38timeout> 8min22025.84timeout> 8min342failedfailedfailed
XYZ Dragon2.4M13.86121.74135.613412.45timeout> 8min20012.96timeout> 8min21415.75timeout> 8min246failedfailedfailed
Fertility2.8M14.14150.77164.913613.15timeout> 10min20015.48timeout> 10min21719.17timeout> 10min246failedfailedfailed

Hierarchy Sparsity

Comparative analysis of matrix sparsity showing the average and maximal number of non-zero entries per row in the prolongation matrices, alongside the resulting iteration counts. GravoTet's graph-Voronoi construction guarantees at most 4 non-zero entries per row, keeping the prolongation operators extremely sparse while consistently requiring fewer iterations than competing methods for both Poisson and biharmonic problems.

Mesh Method #Vert Nl #It #It nnz/row
Poisson Biharm. (avg/max)
CylinderOurs310k; 38k; 3.9k; 4286383.50 / 4
Shi06310k; 82k; 17k; 3.5k; 738; 173171933.17 / 10
AMG-RS310k; 71k; 13k; 2.1k; 34287+3462.06 / 8
AMG-SA310k; 11k; 14364+4224.31 / 10
Spike BallOurs829k; 101k; 10k; 1.2k; 3109613.44 / 4
Shi06829k; 216k; 45k; 9.2k; 2.0k; 523; 16717+4073.11 / 11
AMG-RS829k; 190k; 34k; 5.5k; 968; 205+285+4471.98 / 10
AMG-SA829k; 31k; 46963+5044.65 / 12
LucyOurs1.9M; 225k; 23k; 2.5k; 30716433.49 / 4
Shi061.9M; 488k; 101k; 20k; 4.2k; 943; 22420+2283.10 / 18
AMG-RS1.9M; 425k; 77k; 12k; 2.0k; 428260+2552.02 / 10
AMG-SA1.9M; 68k; 820; 1889+2944.18 / 13
FertilityOurs2.8M; 333k; 33k; 3.4k; 3929363.53 / 4
Shi062.8M; 726k; 145k; 28k; 5.7k; 1.2k; 26019+2003.11 / 17
AMG-RS2.8M; 633k; 113k; 18k; 2.8k; 536; 152+146+2171.95 / 9
AMG-SA2.8M; 99k; 1.0k; 1486+2464.01 / 12

Quick Summary

BibTeX

Citation coming soon.