SkillAgentSearch skills...

Mera.jl

Analysis Tool for Astrophysical Simulation Data in the Julia Language

Install / Use

/learn @ManuelBehrendt/Mera.jl

README

<img src="assets/repository_logo_small.jpg" alt="Mera.jl" width="200">

MERA.jl

High-Performance RAMSES Data Analysis in Pure Julia

📚 Complete Documentation <-

Version Documentation DOI codecov

Note: Coverage badge reflects development branch testing coverage

MERA is a Julia package for analyzing RAMSES astrophysical simulation data. Built entirely in Julia, it provides efficient numerical performance through JIT compilation while maintaining high-level language accessibility. MERA handles multi-resolution AMR grids and particle datasets with a unified API designed for computational research workflows.

Why MERA?

  • Julia-Native Performance: JIT compilation with comprehensive benchmarking framework for validated speed
  • Complete RAMSES Workflow: Seamless pipeline from raw AMR output to publication-ready analysis
  • Multi-Threaded I/O: Performance-tested parallel operations with system-specific optimization guides
  • Extensive Physics Variables: 70+ hydro and 30+ particle derived quantities with Unicode equation support

Additional benefits:
• Interactive Development: Write analysis code in Jupyter notebooks, then scale to production scripts without rewriting
• Memory-Conscious Design: Load only the data you need with spatial and refinement level filtering
• Research Reproducibility: Project.toml/Manifest.jl ensure identical computational environments across systems
• Multi-Threading Out-of-the-Box: gethydro() and projection() automatically use all available cores
• Compressed Archive Format: MERA files dramatically reduce storage needs and provide significantly faster reading compared to original RAMSES files, especially beneficial for large simulations
• Progress Tracking: Built-in progress bars for long-running operations on large datasets

<img src="docs/src/assets/representative_picture_60.png" alt="MERA.jl RAMSES Analysis Workflow" width="600">

Computational astrophysicists analyzing RAMSES AMR simulation data with MERA.jl's unified Julia workflow

Quick Start

Installation

using Pkg
Pkg.add("Mera")

Typical Analysis Workflow

using Mera

# Load simulation metadata
info = getinfo(output=100, path="/path/to/ramses/output")

# Extract hydrodynamic data with spatial filtering (multi-threaded)
hydro = gethydro(info, lmax=10, 
                xrange=[-10., 10.], yrange=[-10., 10.], zrange=[-5., 5.],
                center=[24., 24., 24.], range_unit=:kpc)

# Create high-resolution density projection (multi-threaded)
proj = projection(hydro, :rho, 
                 direction=:z, 
                 pxsize=[10., :pc], 
                 unit=:Msun_pc2)

# Generate publication-ready visualization using Makie
using CairoMakie
heatmap(log10.(proj.maps[:rho]), colormap=:hot, 
        colorrange=(2, 6),  # log₁₀ of [1e2, 1e6] M☉/pc²
        axis=(xlabel="x [kpc]", ylabel="y [kpc]", title="Surface Density Σ"))

Core Capabilities

High-Performance Data Processing
Compressed MERA-files with LZ4/Zlib/Bzip2 compression enable rapid I/O operations. Built on IndexedTables.jl for memory-efficient handling of 100+ GB AMR datasets.

Complete Analysis Toolkit
Native support for projections, phase diagrams, statistical analysis, and VTK export for 3D visualization. All functions designed for both interactive exploration and batch processing.

RAMSES-Optimized Reader
Direct binary reading of RAMSES outputs with automatic unit conversion, ghost cell handling, and multi-level AMR support. Compatible with RAMSES versions from stable-17.09 through stable-19.10, plus RAMSES 2025.05 (beta support).

Julia Ecosystem Integration
Seamless interoperability with the Julia ecosystem enables advanced analyses beyond MERA's core functionality. Data structures integrate naturally with statistical, machine learning, and visualization packages for extended computational workflows.

Documentation & Examples

📚 Complete Documentation - API reference, tutorials, and advanced examples

📖 Jupyter Notebooks - 15+ step-by-step analysis tutorials incorporated into the documentation

📋 Benchmark Suite - Performance testing and optimization guides

Requirements

  • Julia 1.10+ (1.11+ recommended)
  • Compatible with RAMSES outputs from stable-17.09 through stable-19.10, and RAMSES 2025.05
  • Linux and macOS (Windows not tested)

RAMSES Version Compatibility Matrix

| RAMSES Version | Compatibility Status | Notes | |----------------|---------------------|-------| | stable-17.09 | ✅ Fully Supported | Validated | | stable-18.xx | ✅ Fully Supported | Validated | | stable-19.10 | ✅ Fully Supported | Current stable | | 2025.05 | 🧪 Beta Support | Core functionality validated, new features in testing |

Stay Updated

Star this repository to show your support and stay informed about updates

📧 Get release notifications:

  • GitHub: Click "Watch" → "Custom" → check "Releases"
  • NewReleases.io: Subscribe at newreleases.io for automated email alerts (free)

Citation

If MERA contributes to your research, please cite:

DOI

Community & Support

Contributing

MERA's modular architecture makes it easy to add support for new simulation codes, analysis methods, or output formats. See our documentation for developer guides.


Ready to accelerate your RAMSES analysis?Get Started with MERA

Related Skills

View on GitHub
GitHub Stars14
CategoryDevelopment
Updated6mo ago
Forks5

Languages

Julia

Security Score

87/100

Audited on Sep 12, 2025

No findings