{"id":50564172,"url":"https://github.com/parthenon-hpc-lab/kharma","last_synced_at":"2026-06-04T13:01:39.666Z","repository":{"id":42548036,"uuid":"259330350","full_name":"parthenon-hpc-lab/kharma","owner":"parthenon-hpc-lab","description":"Kokkos-based High-Accuracy Relativistic Magnetohydrodynamics with AMR","archived":false,"fork":false,"pushed_at":"2026-06-03T20:54:08.000Z","size":7451,"stargazers_count":63,"open_issues_count":13,"forks_count":25,"subscribers_count":10,"default_branch":"stable","last_synced_at":"2026-06-03T22:18:57.391Z","etag":null,"topics":["cuda","gpu","grmhd","hip","kokkos","mhd","openmp","sycl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parthenon-hpc-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-04-27T13:29:29.000Z","updated_at":"2026-06-01T20:05:30.000Z","dependencies_parsed_at":"2023-10-20T16:12:49.585Z","dependency_job_id":"613898c6-7dd1-4f73-93c3-e97890611caa","html_url":"https://github.com/parthenon-hpc-lab/kharma","commit_stats":null,"previous_names":["parthenon-hpc-lab/kharma"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/parthenon-hpc-lab/kharma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parthenon-hpc-lab%2Fkharma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parthenon-hpc-lab%2Fkharma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parthenon-hpc-lab%2Fkharma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parthenon-hpc-lab%2Fkharma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parthenon-hpc-lab","download_url":"https://codeload.github.com/parthenon-hpc-lab/kharma/tar.gz/refs/heads/stable","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parthenon-hpc-lab%2Fkharma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33905359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuda","gpu","grmhd","hip","kokkos","mhd","openmp","sycl"],"created_at":"2026-06-04T13:01:38.818Z","updated_at":"2026-06-04T13:01:39.660Z","avatar_url":"https://github.com/parthenon-hpc-lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KHARMA\nKHARMA is an implementation of the HARM scheme for general 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.\n\nKHARMA is capable of closely matching other HARM implementations, e.g. [iharm3d](https://github.com/AFD-Illinois/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.\n\nThere is a bunch of documentation on the [wiki](https://github.com/parthenon-hpc-lab/kharma/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 @c-prather on GitHub for the link.\n\n## Getting KHARMA\nKHARMA requires that the system have:\n* a C++17-compliant compiler\n* HDF5 (optional)\n* MPI (optional)\n\nKHARMA can be cloned from this repository by running\n```bash\ngit clone --recursive https://github.com/parthenon-hpc-lab/kharma.git\n```\n\nThis will automatically pull all of KHARMA's internal dependenices, or \"submodules.\" Submodules can be updated by running\n```bash\ngit submodule update --recursive\n```\nOld submodules are a common cause of compile errors!\n\n## Compiling\nOn directly supported systems, or systems with standard install locations, you may be able to run:\n```bash\n./make.sh clean\n```\nor if you're compiling for Nvidia GPUs,\n```bash\n./make.sh clean cuda\n```\n(KHARMA can also be compiled for AMD and Intel GPUs, see the [wiki page](https://github.com/parthenon-hpc-lab/kharma/wiki/Building-KHARMA))\n\nIf you're on Mac, you will have to use `zsh` because the MacOS version of `bash` is too old:\n```bash\nzsh ./make.sh \u003carguments\u003e\n```\n\nIf your system does not have HDF5, KHARMA can attempt to compile it for you -- just add `hdf5` when you run `make.sh`.  If you want to omit MPI, you can add `nompi` (the resulting binary can still be run on multiple CPU cores!  Just not multiple GPUs, or multiple nodes of a cluster).\n\nAfter a successful configuration (after you see `-- Generating done (X.Ys)`), subsequent invocations can omit `clean`.  If `./make.sh` is not working on a supported machine (those with a file in `machines/`), please open an issue.  Broken builds aren't uncommon, as HPC machines change software all the time.\n\nIf you're having trouble or need more options, check out the [wiki page](https://github.com/parthenon-hpc-lab/kharma/wiki/Building-KHARMA) describing the build system.\n\n## Running\nRun a particular problem with e.g.\n```bash\n./run.sh -i pars/tests/orszag_tang.par\n```\nnote 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.\n\nAs a broad and capable code, KHARMA has quite a lot of configuration parameters.  Most are documented [here](https://github.com/parthenon-hpc-lab/kharma/wiki/Parameters), with specific problem setups described [here](https://github.com/parthenon-hpc-lab/kharma/wiki/Problems).\n\nIf you need more control of where and how KHARMA runs, you can use the binary, e.g. `kharma.host` or `kharma.cuda`, directly.  `run.sh` 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.\n\nFurther information can be found on the [wiki page](https://github.com/parthenon-hpc-lab/kharma/wiki/Running-KHARMA).\n\n## Hacking\nKHARMA has some documentation for developers on the [wiki](https://github.com/parthenon-hpc-lab/kharma/wiki).  The docs cover some quirks of coding in C++, in particular with Kokkos/GPU programming, and in particular with Parthenon.\n\n## Licenses\nKHARMA is made available under the BSD 3-clause license included in each file and in the file LICENSE at the root of this repository.\n\nThis repository also carries a substantial portion of the [Kokkos Kernels](https://github.com/kokkos/kokkos-kernels), in the directory `external/kokkos-kernels`, which is provided under the license included in that directory.\n\nSubmodules of this repository are subject to their own licenses -- universally BSD-style permissive terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparthenon-hpc-lab%2Fkharma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparthenon-hpc-lab%2Fkharma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparthenon-hpc-lab%2Fkharma/lists"}