Getting Started

Basic Usage

xamr provides an xarray-like interface for AMReX simulation data. The main entry point is the AMReXDataset class:

import xamr

# Load a single plotfile
ds = xamr.AMReXDataset("plt00000")

# Access field data
temperature = ds['temperature']
velocity_x = ds['x_velocity']

# Get basic information
print(ds.attrs)
print(temperature.shape)

Dataset Structure

An AMReX dataset contains:

  • Data variables: Physical fields like temperature, velocity, pressure

  • Coordinates: Spatial coordinates (x, y, z) and time (for time series)

  • Attributes: Metadata like domain dimensions, AMR levels, parameters

# List available fields
print(list(ds.data_vars.keys()))

# Check coordinate information
print(ds.coords)
print(ds.dims)

# Access dataset attributes
print(f"Max AMR level: {ds.attrs['max_level']}")
print(f"Domain dimensions: {ds.attrs['domain_dimensions']}")

Working with Fields

Fields are accessed as AMReXDataArray objects:

temp = ds['temperature']

# Get field statistics
print(f"Min: {temp.min()}")
print(f"Max: {temp.max()}")
print(f"Mean: {temp.mean()}")

# Get numpy array at coarsest level
temp_array = temp.values()

AMR Levels

xamr works primarily at the coarsest refinement level (level 0) for indexing, but you can access higher levels:

# Default: coarsest level (level 0)
temp_coarse = temp.values()

# Higher refinement level
temp_fine = temp.values(level=2)

# Check available levels
print(f"Available levels: {ds.levels}")