Moving-Mesh Hydrodynamics

JURHIATA

A finite-volume moving-mesh code for compressible hydrodynamics, designed as the numerical and scientific core of a next-generation astrophysical simulation program.

Code Summary

JURHIATA is a C++ moving-mesh astrophysical code built around a Voronoi finite-volume formulation. The current baseline already combines second-order HD numerics, parallel CPU execution, and benchmark validation, while the next development phase targets GPU acceleration and expanded astrophysical physics modules.

Mesh

Voronoi moving mesh with conservative finite-volume updates.

Reconstruction

MUSCL-Hancock predictor-corrector for second-order accuracy.

Flux Solver

HLLC Riemann solver for robust shock-capturing in production HD runs.

Parallel Baseline

Hybrid OpenMP + MPI implementation completed on CPU.

Validation

Sod and Sedov benchmarks validated with proposal-grade figures.

Current Focus

GPU acceleration in progress as the next implementation stage.

Why JURHIATA?

Moving-mesh methods occupy a particularly useful middle ground in computational astrophysics: they retain the conservative shock-capturing strengths of Godunov grid codes while reducing the advection errors that appear when large bulk flows cross a static mesh.

Versus Fixed Grids

The mesh follows the flow, which helps preserve sharp structures and reduces the numerical diffusion that can appear when gas moves rapidly across stationary cells.

Versus Traditional SPH

The finite-volume formulation makes shocks, contact discontinuities, and fluid mixing easier to capture accurately than in classic particle-only approaches.

For Astrophysical Flows

This is especially attractive for multiphase ISM dynamics, blast waves, disk flows, and future MHD simulations where both adaptivity and robust conservation matter.

Hydrodynamics Equations (Euler System)

JURHIATA currently solves the compressible Euler equations in conservative form:

∂ρ/∂t + ∇·(ρv) = 0
∂(ρv)/∂t + ∇·(ρv⊗v + pI) = 0
∂E/∂t + ∇·[(E + p)v] = 0
E = p/(γ - 1) + 0.5 ρ |v|2

MUSCL-Hancock Workflow

  1. Build Voronoi geometry (volumes, areas, normals, centroids).
  2. Compute gradients and apply slope limiting for monotonicity.
  3. Reconstruct left/right interface states and predict half-step values.
  4. Solve Riemann problems at moving faces and compute fluxes.
  5. Update conserved variables and enforce positivity floors.
  6. Move mesh generators and rebuild tessellation for the next timestep.

Hydrodynamic Riemann Solvers

Solver Primary Use Wave Model Notes
Exact (Euler) Reference and validation runs Iterative exact 1D Riemann solution Used for hydro flux verification and regression checks.
HLLC Default hydrodynamic production solver Three-wave model (SL, S*, SR) Good balance of robustness and accuracy for strong shocks.

Moving Mesh with Voro++

JURHIATA computes Voronoi geometry (cell volumes, face areas, normals, centroids) with Voro++. Mesh generators move with the local flow in an ALE-style formulation to reduce advection error while preserving a conservative finite-volume update.

Validation: Sod and Sedov

The current HD baseline is anchored to two standard benchmark problems. Together they test shock propagation, contact discontinuities, spherical blast dynamics, and the moving-mesh update under strong gradients.

JURHIATA Sod validation panel
Sod Shock Tube: density, velocity, and pressure profiles plus density slice from the proposal-quality panel.
Shock structure recovered Contact captured Proposal benchmark
JURHIATA Sedov validation panel
Sedov-Taylor Blast: radial profile and density slice panel used for proposal validation evidence.
Radial agreement 100k particles Blast-wave symmetry

Development Roadmap

JURHIATA is organized as a staged development program: first performance acceleration, then expanded astrophysical physics, and finally large production simulations for Milky-Way-like systems.

Stage 1

GPU Acceleration

Port the hydrodynamic core to GPUs, benchmark kernel performance, and validate the HD baseline under a hybrid MPI+GPU execution model.

Stage 2

Physics Modules

Add self-gravity, cooling and heating, star formation, and stellar feedback so the code can evolve a realistic multiphase interstellar medium.

Stage 3

MW-like Production Runs

Execute high-resolution Milky-Way-like simulations, including large particle counts, adaptive refinement, and reproducible science-ready campaigns.

Validation Movie

This animation complements the static Sedov panel by showing the time evolution of the blast-wave morphology in the proposal validation sequence.

Animated Sedov density slices from the 100k-particle validation run
Sedov 100k run: density-slice evolution from the 24-snapshot sequence used to document the expanding blast-wave morphology.
24 frames 4 fps 100k particles

Meaning of JURHIATA

Jurhiata means “Sun” in P'urhepecha, the language spoken in the P'urhepecha Highlands, in the heart of the state of Michoacan, Mexico.

Selected References

These links connect the page to the main numerical references and software ecosystem behind moving-mesh HD methods.