Library / Study
9 · Simulating dark matter

Wave solvers II: adaptive mesh (GAMER/ELBDM)

To resolve a sub-kiloparsec soliton inside a megaparsec box, you need resolution where it matters and coarseness elsewhere — adaptive mesh refinement. This article covers the finite-difference AMR approach behind GAMER, our core-resolving wave code.

Why adaptive mesh

A uniform spectral grid (Topic 9.3) spends the same resolution on empty voids as on dense cores — wasteful when the soliton is a thousand times smaller than the box. Adaptive mesh refinement (AMR) instead refines the grid only where the density (or the de Broglie scale) demands it, concentrating cells on halo centres.

An adaptive-mesh wave solver resolves the flat solitonic core (dashed) that a uniform grid cannot, capturing the cusp-vs-core difference at the halo centre.

GAMER and the ELBDM scheme

GAMER is a GPU-accelerated AMR code; its ELBDM (Extremely Light Bosonic Dark Matter) module solves the Schrödinger–Poisson system on the adaptive mesh with a finite-difference scheme. It is the code behind the original Schive et al. (2014) results and our core-resolving lane.

Worked example — resolving the core

A uniform grid grid-locks the soliton at $r_c/\Delta x\approx2$ (barely resolved), and $\rho_c$ never converges. GAMER's AMR refines until $r_c/\Delta x\approx22$ in our 2 Mpc runs — an order of magnitude better — so the core is genuinely resolved and its density plateaus. This is what a uniform solver cannot do, and why AMR exists.

The trade-offs

AMR buys dynamic range but pays in complexity: finite differences introduce some dispersion error (unlike spectral), refinement adds bookkeeping, and — crucially for FDM — the granular wave field wants fine resolution everywhere at once, which fights the whole premise of refining locally (Topic 9.5). GAMER also hits a memory ceiling (MAX_PATCH) at high refinement.

Complementary to spectral

Spectral (JAXiON) and AMR (GAMER) are complementary: spectral is exact but uniform, AMR resolves cores but approximate. Their agreement on the soliton — GAMER's AMR cores landing on JAXiON's spectral family — is a powerful cross-code validation precisely because the methods are so different.

Adaptive mesh resolves the core ($r_c/\Delta x\sim22$) that a uniform grid locks at $\sim2$.
In our research

GAMER is our core-resolving lane. It resolves solitons to $r_c/\Delta x\approx22$ (vs $\sim2$ uniform), giving the cored profiles of Task 2 (GM-F12), and its cores agree with JAXiON's spectral soliton (cross-code validation, JXE-F9). Its 20 Mpc zoom hit the MAX_PATCH memory wall — the resolution limit of Topic 9.5.

Key references
  • Schive, Tsai & Chiueh (2010), GAMER, ApJS 186, 457 (arXiv:0907.3390).
  • Schive, Chiueh & Broadhurst (2014), Nature Physics 10, 496 (arXiv:1406.6586).
  • Schwabe et al. (2020), AxioNyx, MNRAS 496, 4227 (arXiv:2007.08256).