-
Notifications
You must be signed in to change notification settings - Fork 129
Requirements
Kyle Gerard Felker edited this page Jun 9, 2018
·
16 revisions
- This is a Git repository, and therefore Git is required to clone a local version. The GitHub UI also offers the option to "Download ZIP" for the latest version of the repository on the main page, and packaged
.zip
and.tar.gz
version snapshots are regularly made available under Releases. - Athena++ is written in C++ and requires a C++ compiler such as
g++
,clang++
, oricc
. - The code is configured with a Python script; therefore Python is required to effectively use the code. The configure script and auxiliary visualization and testing scripts support Python 2.7+ and Python 3.4+.
Note: The latest Intel C++ compiler is recommended for use on Intel processors because it results in significantly better performance through the use of OpenMP 4.0 SIMD vectorization extensions. The IBM XLC and Cray CC compiler are also supported.
- An OpenMP enabled compiler (e.g.
gcc4.2
or above) is required to use shared-memory parallelism. - An MPI-2 (Message Passing Interface version 2) library is required to use distributed memory parallelism.
- For hybrid parallelization using both MPI and OpenMP, a thread-safe MPI library supporting
MPI_THREAD_MULTIPLE
is needed. Sometimes this feature can be enabled through an environmental variable. - HDF5 outputs (which are essential for AMR) require an HDF library.
- The library must be configured for Parallel HDF5 (PHD5) if the solver uses MPI. See HDF5 Format for details.
- FFTW library is required to use FFT for the self-gravity solver and turbulence driving for serial and parallel simulations.
- Note, Athena++ is packaged with Plimpton's library for parallel FFT when running the solver with MPI, but it is configured to use FFTW's serial FFT for the underlying operations.
Getting Started
User Guide
- Configuring
- Compiling
- The Input File
- Problem Generators
- Boundary Conditions
- Coordinate Systems and Meshes
- Running the Code
- Outputs
- Using MPI and OpenMP
- Static Mesh Refinement
- Adaptive Mesh Refinement
- Load Balancing
- Special Relativity
- General Relativity
- Passive Scalars
- Shearing Box
- Diffusion Processes
- General Equation of State
- FFT
- Multigrid
- High-Order Methods
- Super-Time-Stepping
- Orbital Advection
- Rotating System
- Reading Data from External Files
- Non-relativistic Radiation Transport
- Cosmic Ray Transport
- Units and Constants
Programmer Guide