Static Mesh Refinement

AthenaK supports both static and adaptive mesh refinement through the <mesh_refinement> block. This page covers the shared refinement controls and static mesh refinement (SMR); see Adaptive Mesh Refinement for adaptive refinement.

Shared controls in <mesh_refinement>

  • refinement: static or adaptive

  • num_levels: number of refinement levels above the root grid

  • max_nmb_per_rank: cap on the number of MeshBlocks per MPI rank

For adaptive runs, refinement_interval additionally controls the AMR regrid cadence in cycles (see Adaptive Mesh Refinement).

Configuring SMR

Static mesh refinement uses fixed geometric regions that stay refined for the entire run. To enable it, set:

<mesh_refinement>
refinement = static

Then add one or more <refined_regionN> blocks (numbered from 1) that specify the extent and level of each refined region:

<refined_region1>
level = 1
x1min = 1.2
x1max = 1.8
x2min = 0.7
x2max = 0.8
x3min = 0.7
x3max = 0.8

Representative input

  • inputs/tests/linear_wave_hydro_smr.athinput

Setup checklist

  • Ensure refined regions stay inside the root mesh bounds.

  • Keep region dimensions aligned with your mesh/MeshBlock decomposition.

  • Start with a single region and validate the output before stacking multiple regions.