AstroNbodySim.jl
AstroNbodySim.jl copied to clipboard
Unitful and differentiable gravitational N-body simulation code in Julia
AstroNbodySim.jl
This is an astrophysical simulation code library under GPL 3.0
Documentation
- Dev — documentation of the in-development version.
For beginners, it is highly recommended to read the documentation of PhysicalParticles.jl.
Installation
]add AstroNbodySim
or
]add https://github.com/JuliaAstroSim/AstroNbodySim.jl
You might need to install NVIDIA CUDA toolkit
Package Features
- Compute with units
- User-friendly
- Well documented
- Readable programming
- Vectorized array operations
- Dispatch on types for various simulation settings
- Float16, Float32, Float64, Int128, BigFloat, Measurement, etc.
- Cross-platform: Linux, Windows, MacOS. Easy to deploy
- Hybrid Parallelism: multi-threading, distributed parallelism, GPU acceleration
- Modularity and Versatility: 9 packages, designed for general purposes, highly extentable
- Realtime visualzation (interactive)
- Auto-test workflow
Features quick view
Realtime visualization of simulations on GPU

Galactic collision

Uncertainty propagation

Autodiff of background potential field

User-difined pipeline: Tidal disruption event (TDE)
Position slices:

Accretion history:

Lagrange radii and scale radius


Solar System

Supporting and Citing
This software was developed as part of academic research. If you would like to help support it, please star the repository. If you use this software as part of your research, teaching, or other activities, we would be grateful if you could cite the following:
%TODO WIP
FAQ
Package ecosystem
- Basic data structure: PhysicalParticles.jl
- File I/O: AstroIO.jl
- Initial Condition: AstroIC.jl
- Parallelism: ParallelOperations.jl
- Trees: PhysicalTrees.jl
- Meshes: PhysicalMeshes.jl
- Plotting: AstroPlot.jl
- Simulation: AstroNbodySim
- Benchmark: BenchmarkPlots
- Parameter space exploration: ParameterSpace