https://github.com/afd-illinois/kharma

Kokkos-based High-Accuracy Relativistic Magnetohydrodynamics with AMR

https://github.com/afd-illinois/kharma

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.9%) to scientific vocabulary

Keywords

cuda gpu grmhd hip kokkos mhd openmp sycl
Last synced: 6 months ago · JSON representation

Repository

Kokkos-based High-Accuracy Relativistic Magnetohydrodynamics with AMR

Basic Info
  • Host: GitHub
  • Owner: AFD-Illinois
  • License: bsd-3-clause
  • Language: C++
  • Default Branch: stable
  • Homepage:
  • Size: 6.18 MB
Statistics
  • Stars: 41
  • Watchers: 12
  • Forks: 18
  • Open Issues: 13
  • Releases: 7
Topics
cuda gpu grmhd hip kokkos mhd openmp sycl
Created almost 6 years ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

KHARMA

KHARMA is an implementation of the HARM scheme for gerneral relativistic magnetohydrodynamics (GRMHD) in C++. It is based on the Parthenon AMR framework, using Kokkos for parallelism and GPU support. It is composed of modular "packages," which in theory make it easy to add or swap components representing different algorithmic components or physics processes.

KHARMA is capable of closely matching other HARM implementations, e.g. iharm3d. However, it also updates the scheme to support static and adaptive mesh refinement, new methods for primitive variable recovery, new boundary conditions, and new stability features for running difficult simulations at high resolutions reliably.

There is a bunch of documentation on the wiki. If you have a basic question, it might be answered there! There is also a Slack workspace for users of KHARMA and the associated imaging and analysis codes -- message or email @bprather on GitHub for the link.

Prerequisites

KHARMA requires that the system have a C++17-compliant compiler, MPI, and parallel HDF5. All other dependencies are included as submodules, and can be checked out with git by running bash $ git submodule update --init --recursive

When updating the KHARMA source code, you may also have to update the submodules with bash $ git submodule update --recursive Old submodules are a common cause of compile errors!

Compiling

On directly supported systems, or systems with standard install locations, you may be able to run: bash ./make.sh clean [cuda hip sycl] after a successful configuration (after you see -- Generating done (X.Ys)), subsequent invocations can omit clean. If this command fails on supported machines (those with a file in machines/), please open an issue. Broken builds aren't uncommon, as HPC machines change software all the time.

If (when) you run into any trouble, take a look at the wiki page describing the build system.

Running

Run a particular problem with e.g. bash $ ./run.sh -i pars/tests/orszag_tang.par note that all options are runtime. The single KHARMA binary can run any of the parameter files in pars/, and indeed this is checked as a part of the regression tests. Note you can still disable some sub-systems manually at compile time, and of course in that case the accompanying problems will crash.

As a broad and capable code, KHARMA has quite a lot of options. Most are documented here, with specific problem setups described here.

Using run.sh is not necessary, feel free to use kharma.host or kharma.cuda directly. The script is provided mostly to load any modules or environment variables a machine needs (again, soruced from the file in machines/), regardless of whether you're running interactively or as part of a batch script.

Further information can be found on the wiki page.

Hacking

KHARMA has some documentation for developers on the wiki. The docs cover some quirks of coding in C++, in particular with Kokkos/GPU programming, and in particular with Parthenon.

Licenses

KHARMA is made available under the BSD 3-clause license included in each file and in the file LICENSE at the root of this repository.

This repository also carries a substantial portion of the Kokkos Kernels, in the directory external/kokkos-kernels, which is provided under the license included in that directory.

Submodules of this repository are subject to their own licenses.

Owner

  • Name: AFD Group at UIUC
  • Login: AFD-Illinois
  • Kind: organization
  • Email: gammie@illinois.edu

Don't use a sledgehammer to crack a nut.

GitHub Events

Total
  • Issues event: 8
  • Watch event: 10
  • Delete event: 2
  • Issue comment event: 6
  • Push event: 54
  • Gollum event: 8
  • Pull request event: 12
  • Fork event: 2
  • Create event: 13
Last Year
  • Issues event: 8
  • Watch event: 10
  • Delete event: 2
  • Issue comment event: 6
  • Push event: 54
  • Gollum event: 8
  • Pull request event: 12
  • Fork event: 2
  • Create event: 13

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 49
  • Average time to close issues: 5 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 1.36
  • Average comments per pull request: 0.63
  • Merged pull requests: 35
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 8
  • Average time to close issues: 3 months
  • Average time to close pull requests: 11 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.25
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • bprather (11)
  • vedantdhruv96 (1)
  • gumoraes999999 (1)
  • zzlphysics (1)
  • gnwong (1)
Pull Request Authors
  • bprather (57)
  • vedantdhruv96 (5)
  • hyerincho (4)
  • zzlphysics (1)
Top Labels
Issue Labels
good first issue (1) bug (1)
Pull Request Labels

Dependencies

.github/workflows/gitlab.yml actions
  • SvanBoxel/gitlab-mirror-and-ci-action master composite
  • actions/checkout v1 composite
Dockerfile docker
  • nvcr.io/nvidia/nvhpc 22.9-devel-cuda_multi-rockylinux8 build