My research is on numerical methods for astrophysical fluid dynamics. I am especially interested in high-order
methods, which reach a given accuracy with far fewer degrees of freedom than the second-order schemes most codes
rely on, and in making them robust enough for real astrophysical flows, with their shocks, steep gradients and
scales that cannot be fully resolved. I am equally interested in performance: how these methods are implemented
and optimized so that they run efficiently on modern supercomputers, GPUs in particular. On the application
side, my background is in planet formation and planet–disc interaction.
Previously: postdoctoral researcher at Princeton University (2022–2025) and at the Institute for
Computational Science, University of Zurich (2019–2022). PhD in Computational Modelling and Scientific Computing,
UAEM, Cuernavaca, Mexico (2019).
Research
High-order methods and their robustness
High-order methods reach a given accuracy with far fewer degrees of freedom than second-order schemes,
but at shocks and other discontinuities they produce spurious oscillations, which can drive the density
or the pressure negative. I work on the Spectral Difference method, a discontinuous finite-element scheme of
arbitrary order, combined with a posteriori limiting: every update is tested against numerical and
physical admissibility criteria, and in the cells that fail, the high-order fluxes are replaced by those
of a second-order MUSCL–Hancock scheme defined on the sub-cells of each element. The solution keeps its high
order where the flow is smooth and remains stable at discontinuities. With Romain Teyssier and Maria
Han Veiga, we have developed the method for the Euler equations, for low Mach number flows such as
stellar convection, and for the Navier–Stokes equations.
Self-gravity requires the solution of Poisson's equation for the gravitational potential at every time
step. Relaxation methods such as Jacobi or Gauss–Seidel solve it with simple local updates, but they
only damp the error efficiently at the scale of the mesh spacing: its smooth, long-wavelength part
decays slowly, and the number of iterations needed to converge grows with the resolution. Multigrid
applies the same relaxation on a hierarchy of coarser meshes, where those long wavelengths become short
and are damped quickly, so that a converged solution is reached in a few cycles, whatever the resolution.
I work on the multigrid self-gravity solver of AthenaK, on adaptively refined meshes and on GPUs: the
interpolation at the boundaries between refinement levels, which has to be conservative for orbits not
to drift, and the performance of the solver on large GPU clusters. It is now used in work on tidal
disruption events and on black holes inside massive stars.
I write and optimize simulation codes for GPUs: spd_K,
a Kokkos implementation of the Spectral Difference method, the nested-mesh version of FARGO3D,
and contributions to AthenaK and RAMSES. On these machines most of the performance is decided by how a
code uses the hardware rather than by the number of operations it performs: the memory access pattern
and the data locality of its kernels, the number of kernels launched per step, and the way ghost zones
are exchanged between mesh blocks and between ranks.
Planets in gas and dust discs
A planet embedded in a disc heats the gas around it, and that heat changes the force the gas exerts back.
With Frédéric Masset I studied these thermal forces, the dynamical friction on luminous bodies, and how
accretion of pebbles can drive a low-mass planet onto an eccentric orbit, using nested meshes to resolve
scales far below the planet's Hill radius.
Interactive explainers
Three short pages where the algorithm runs live in the browser and you control it.
Drag the solution inside an element, follow the four steps of an update, then advect a square wave at
orders 1 to 8 with and without a posteriori limiting.
Follow one stage as every control volume is checked and, where it fails, recomputed at second order;
then watch the limiter stay silent until a shock forms.
Watch relaxation remove only the rough part of the error, step through a V-cycle level by level, then
drag point masses around and compare solvers on a 2D gravity problem.
Publications
First-author papers
Spectral Difference method with a posteriori limiting: III – Navier–Stokes equations with arbitrary high-order accuracy
D. A. Velasco-Romero & R. Teyssier · submitted to MNRAS (2026)
An arbitrarily high-order treatment of the Laplacian for the Spectral Difference method. The scheme resolves
viscous and diffusive scales at lower resolution than low-order methods and stays stable when those scales
are under-resolved.
Spectral Difference method with a posteriori limiting: II – Application to low Mach number flows
D. A. Velasco-Romero & R. Teyssier · MNRAS 537, 2387 (2025)
Stellar convection is slow compared with sound, and most shock-capturing schemes drown it in numerical diffusion.
We combine a low-Mach correction of the HLLC Riemann solver with a well-balanced formulation to evolve small
perturbations on top of a steep hydrostatic equilibrium.
Dust rings trap protoplanets on eccentric orbits and get consumed by them
D. A. Velasco-Romero, F. S. Masset, A. Morbidelli, P. Benítez-Llambay, L. Krapp & E. Lega · MNRAS (2024)
Three-dimensional two-fluid simulations with nested meshes of protoplanets of 0.1 to 8 Earth masses near a
dusty ring. Two stable eccentric orbits keep the planet close to the ring, halt its migration and let it accrete
the dust; on the outer one, a strong thermal force at each passage through the ring produces bursts of accretion.
Spectral Difference method with a posteriori limiting: Application to the Euler equations in one and two space dimensions
D. A. Velasco-Romero, M. Han Veiga & R. Teyssier · MNRAS (2023)
An arbitrarily high-order Spectral Difference method with a second-order finite-volume scheme as fallback.
Troubled cells are detected after each update and only their fluxes are replaced, which gives robust shock
capturing without giving up the accuracy of the smooth flow.
Eccentricity driving of pebble accreting low-mass planets
D. A. Velasco-Romero, F. S. Masset & R. Teyssier · MNRAS 509, 5622 (2022)
Simulations of a freely moving, luminous planet in a thermally diffusive disc with a nested-mesh version of
FARGO3D. The resolution reached gives converged values of the eccentricity a low-mass planet attains as a
function of its luminosity.
Dynamical friction with radiative feedback – II. High-resolution study of the subsonic regime
D. A. Velasco-Romero & F. S. Masset · MNRAS 495, 2063 (2020)
Simulations that resolve the Bondi radius of a perturber moving through uniform gas. For small masses the net
force agrees with linear theory; at larger masses the thermal forces fall below it.
Numerical study of dynamical friction with thermal effects – I. Comparison to linear theory
D. A. Velasco-Romero & F. S. Masset · MNRAS 483, 4383 (2019)
How heat changes the drag on a massive body moving through gas, with and without its own luminosity.
The range of scales involved required nested meshes, implemented in the GPU version of FARGO3D.
Planet–disc interactions with Discontinuous Galerkin methods using GPUs
D. A. Velasco-Romero, M. Han Veiga, R. Teyssier & F. S. Masset · MNRAS (2018)
A two-dimensional, high-order Discontinuous Galerkin code that runs on several GPUs, compared with FARGO3D on
a planet–disc problem through the numerical viscosity inferred from the torque on the planet. Fifth-order
schemes reach numerical viscosities of a few 10−8 r2Ω.
H.-X. Jiang, M. Yang, D. A. Velasco-Romero, F. Yu, J.-Z. Xia, X. Li & Y. Mizuno,
An end-to-end numerical framework for tidal disruption events with AthenaK, accepted in ApJS (2026).
arXiv:2609.37859
S. Ma, D. N. C. Lin & D. A. Velasco-Romero,
Formation of merging black hole binaries inside massive AGN stars (2026).
arXiv:2609.16290
A. Derdzinski, A. J. Dittmann, A. Franchini, et al. (incl. D. A. Velasco-Romero),
The LISA Astrophysics “Disc-IMRI” code comparison project: intermediate-mass-ratio binaries in AGN-like discs,
submitted to the Open Journal of Astrophysics (2025).
arXiv:2512.10893
J. Palafoutas, D. A. Velasco-Romero & R. Teyssier,
Comparison between a priori and a posteriori slope limiters for high-order finite volume schemes,
J. Comput. Phys. (2025).
Journal · arXiv:2404.18037
M. Han Veiga, D. A. Velasco-Romero, Q. Wenger & R. Teyssier,
An arbitrary high-order Spectral Difference method for the induction equation,
J. Comput. Phys. (2021).
Journal · arXiv:2005.13563
M. Han Veiga, D. A. Velasco-Romero, R. Abgrall & R. Teyssier,
Capturing near-equilibrium solutions: a comparison between high-order Discontinuous Galerkin methods and well-balanced schemes,
Commun. Comput. Phys. (2019).
Journal · arXiv:1803.05919
J. Fung, F. Masset, E. Lega & D. Velasco,
Planetary torque in 3D isentropic disks, AJ 153, 124 (2017).
Journal · arXiv:1610.09375
F. S. Masset & D. A. Velasco-Romero,
Dynamical friction on hot bodies in opaque, gaseous media, MNRAS 465, 3175 (2017).
Journal · arXiv:1611.05684
Kelvin–Helmholtz instability. Density, fourth-order Spectral Difference with a posteriori
limiting, 800×800 elements (3200² degrees of freedom). The method of
Paper I; see where the limiter acts.Rayleigh–Taylor instability. Density with a second-order Godunov method at 512, 1024,
2048 and 4096 cells.Viscous Kelvin–Helmholtz instability. The dye in the test of Lecoanet et al. (2016)
at Reynolds number 10⁵, with both streams at the same density: explicit viscosity and diffusion give
the problem a well-defined solution to converge to. Fourth-order Spectral Difference with the
Navier–Stokes terms of Paper III, run with spd_K at 2048×4096
degrees of freedom; one of the two shear layers is shown.The same test with a density jump. One stream is now twice as dense as the
other, and nothing else changes. The billow rolls up as before and then breaks into small-scale
structure. This case is far harder to converge, and at this resolution the details of the break-up
are not.
Taylor–Green vortex in three dimensions. A volume rendering of the vorticity
magnitude at Reynolds number 1600 and Mach 0.1: the initial vortex is stretched into sheets, the sheets
roll up into tubes, and the tubes break down into turbulence. Fourth-order Spectral Difference with the
Navier–Stokes terms of Paper III, 128³ degrees of freedom;
the colour scale follows the growth of the vorticity.A hot bubble rising at low Mach number, and the turbulence it leaves. A convective
layer between two stably stratified ones, with gravity pointing down. The colour is the temperature
relative to the hydrostatic equilibrium, within ±0.4 per cent: the bubble starts as a perturbation of one
per cent, rises at a few per cent of the sound speed, rolls up into a vortex pair and breaks apart under
the stable layer. Its debris stirs the whole convective layer into turbulence, while gravity waves grow
in the stable layers until they saturate this colour scale. Well-balanced fourth-order Spectral Difference
scheme, 768×384 degrees of freedom, from the tests of Paper II.
Shocks at high order
Double Mach reflection, and where the limiter acts. A Mach 10 shock runs along a wall.
Top: density with the fourth-order Spectral Difference scheme, 800×200 elements. Bottom: the control volumes
that fell back to second order (red, drawn enlarged). They trace the shocks and stay under half a per cent of
the cells; everywhere else the scheme remains fourth order. From the tests of
Paper I.The same problem at orders 2, 4 and 8. A close-up of the Mach stem and the wall jet,
with the same number of degrees of freedom in the three runs (3200×800). The shear layer stays smooth at
second order and rolls up at fourth and eighth.Mach 3 wind tunnel with a step. Density with the same scheme, 600×200 elements: the bow shock,
its reflections off the walls, and the shear layer that rolls up along the top.
Planets, discs and dynamical friction
A planet crossing a dust ring. Dust surface density around a planet of four Earth masses
on an eccentric orbit, in the frame that follows the planet. At each periastron it dives into the ring,
accretes, and pulls out a trail of dust. FARGO3D with three nested mesh levels, from
Velasco-Romero et al. (2024).The same run in three dimensions. A volume rendering of the dust density, with the vertical
direction stretched five times: the dust layer is only about a hundredth of the orbital radius thick. Each
passage of the planet lifts a thin shell of dust several scale heights out of the midplane, and the
shell then drifts along the ring.The same ring, a planet twice as massive. With eight Earth masses the planet disturbs the
ring much more: it leaves dust-poor lanes behind it, and the mark of each passage is still visible when it
returns.Gas flowing past a massive, luminous body. A passive tracer at three luminosities, increasing
from left to right. FARGO3D with nested meshes, from the work on
dynamical friction with radiative feedback.
Self-gravity with multigrid, in AthenaK
Refinement must not perturb the orbit. Gravitational potential of a binary, with mesh blocks
that refine around each mass and follow it. Left: mass-conserving prolongation at coarse–fine boundaries;
the masses stay on the analytic orbit (dashed). Right: plain interpolation; the orbit drifts.
How the solver works →
Collapse and fragmentation of a rotating cloud. The Boss–Bodenheimer test: a rotating
isothermal cloud with a small two-armed perturbation collapses into a bar, and the bar fragments. Face-on
column density over 2.5 free-fall times; the white dots are sink particles, which form in the densest
gas, accrete and merge. AthenaK with multigrid self-gravity.Adaptive refinement in action. The same run with its mesh drawn. Every square is a block
of 16³ cells; a block splits in two along each direction wherever the gas would otherwise not resolve
its Jeans length, down to five levels. The fine blocks follow the bar, then each fragment along its
orbit, and merge back into coarse ones behind them.
Turbulent fragmentation under self-gravity. Column density of a turbulent,
self-gravitating cloud at 2048³ cells, seen along two axes. Filaments that exceed their local Jeans mass
collapse; the multigrid solver supplies the potential at every step.Around a fragmenting cloud. Volume rendering of the gas density in a turbulent, magnetised,
self-gravitating box at 1024³ cells, when the first cores have collapsed: filaments in purple and orange,
the densest cores in green and white.
Black-hole accretion, in AthenaK
An accretion flow and its jets. Volume rendering of a general-relativistic MHD simulation,
within 64 gravitational radii of the black hole at t = 8000 M: gas density in orange, and in blue the
funnel where the magnetic field dominates over the gas. Eight nested mesh levels of 512³ cells each.
Gallery
FARGO3D with nested meshes
A planet of eight Earth masses crossing a dust ring: FARGO3D with three nested mesh levels (lines every eight cells)
Dynamical friction on a luminous body: FARGO3D with nested meshes
Nested meshes around a pebble-accreting planet
Spectral difference: spd and spd_K
Kelvin–Helmholtz instability: Spectral Difference, 4th order, 3200×3200 degrees of freedom
Zooming into a billow, down to the control volumes inside each element
Viscous Kelvin–Helmholtz instability with a density jump, Re = 105: Spectral Difference, 4th order, 2048×4096 degrees of freedom, with spd_K
Double Mach reflection of a Mach 10 shock: Spectral Difference, 4th order, 6400×1600 degrees of freedom
Turbulent convection at low Mach number: Spectral Difference, 4th order, 512×1024 degrees of freedom
Rayleigh–Taylor instability: Godunov 2nd order at 512, 1024, 2048 and 4096 cells
AthenaK
Viscous Kelvin–Helmholtz instability with a density jump, Re = 105: AthenaK, 8192×16384 cells
GRMHD accretion onto a black hole: density in the meridional plane, ±64 M, at t = 8000 M. AthenaK, eight nested levels of 5123 cells
The same flow in the equatorial plane, ±64 M: spiral streams and low-density cavities
The inner ±16 M of the same flow, down to the black hole
Gravo-magneto-turbulent fragmentation with sink particles: column density. AthenaK with multigrid self-gravity, 10243 cells
A density slice through the same run
Adaptive refinement onto a collapsing core: a density slice of a self-gravitating turbulent box (left) and the dashed region enlarged (right). AthenaK, 10243 base mesh, blocks of 643 cells, three refinement levels in this plane
Accretion onto a magnetised star with an aligned dipole: density and field lines in the meridional plane. AthenaK, eight refinement levels
Close-up of the magnetosphere: closed dipole loops, the disc and the open polar field
The same run in the equatorial plane: the cavity carved by the magnetosphere
Software
spdSpectral Difference method with a posteriori limiting in Python (NumPy/CuPy, MPI). The reference code of the paper series. Main developer.
spd_KThe same method in C++ with Kokkos, for CPUs and GPUs. Main developer.
AthenaKPerformance-portable AMR code for astrophysical (GR)MHD. Contributor: multigrid self-gravity, communication and performance on GPU systems.