# NRPy

A Python and SymPy-based symbolic code-generation toolkit for numerical relativity and relativistic astrophysics that turns symbolic physics equations into standalone C/CUDA applications, Einstein Toolkit thorns, Charm++ projects and JAX/Python workflows.

NRPy generates simulation code from symbolic equation modules rather than hand-written numerical code. Its public form centers on providing the core infrastructure for single-patch BlackHoles@Home numerical relativity simulations, across Cartesian, curvilinear and singular coordinate systems.

The codebase separates symbolic physics and shared support code, under `nrpy/equations` and `nrpy/helpers`, from backend-specific code generators under `nrpy/infrastructures`, with runnable project generators collected in `nrpy/examples`. It installs from PyPI for end users who just want to generate projects, or from a source checkout for contributors.

Different generated workflows need different external tools: standalone BHaH examples need only a C compiler and `make`, some also need GSL, Einstein Toolkit and Carpet/CarpetX generators need an existing Einstein Toolkit environment to build the generated thorns, and superB examples need a Charm++ toolchain.

Website: https://github.com/nrpy/nrpy
