Releases: AFD-Illinois/kharma
KHARMA 2025.10
Robustness and bug fixes. KHARMA should now gracefully handle a wide range of unphysical evolutions of the conserved variables (inevitable in the jets of accretion simulations). Every attempt is made to preserve the momenta, and they can optionally be preserved in all cases with the option floors/use_rho_to_slow. Documentation and paper on the details forthcoming. These improvements should reduce the need for reconnection and cancellation at polar boundaries, but those remain available if you face issues or for better accuracy in simulations which are obviously interacting badly with the polar boundary.
The new recovery code works by far the best with floors/frame = normal, i.e. floors applied in the normal observer frame. If you're specifying frame = drift or something else and seeing instability, try using NOF. I'd consider this something of a regression, except that you can also reduce the floors by a few orders of magnitude when you make the switch, so the drag and other side effects associated with normal observer frame floors should be minimal. If you can't recover acceptable behavior with the normal observer frame, let's discuss how to integrate your scheme of choice into the existing recovery code in a stable way.
True transmitting polar boundary conditions (i.e. via "excision" during the flux calculations, allowing fluxes through the polar faces) and internal static mesh refinement levels are generally working quite well; I know of one production use of each. They are easy to enable to experiment but your mileage may vary, I'm happy to work on them as usage grows.
Resizing simulations should be considered very experimental. It works in tests but seemingly nowhere else. I'll be fixing it in the dev branch ASAP and backporting the fix if possible.
KHARMA 2024.9
This release adds "excised" transmitting boundary conditions allowing fluxes across the pole, and makes EMHD problems much faster on AMD GPUs. It also updates and cleans up all of the included parameter files, updates the tests, and fixes a few obscure bugs.
There have also been a bunch of updates to the wiki, which should now be more useful for users and developers alike!
Full Changelog: v2024.5.1...v2024.9
KHARMA 2024.5.1
This release is all the bugfixes since the May release, without the features.
- Most notable is that "transmitting" boundary conditions work without mitigations. They are not default because of the lingering requirement that one one meshblock be used in phi/X3, but they are recommended.
- Also important is a fix to generating initial conditions with face-centered B fields.
- Reductions and history files have been fixed as well, but history files are still pretty sparse by default. To re-enable all history outputs set
parthenon/outputX/variables=all_reductions, see the PR. - Some minor fixes to restarting simulations.
- Limiters reflecting physical limits on the sound speed and overall signal speed were added.
2024.5
A few stability features.
- Forced reconnection at the pole for transmitting boundary conditions
- Some more flexible boundary conditions generally
- Ideal GRMHD guesses in EGRMHD
- More flexible floor prescriptions and FOFC application
- Eliminated some compile warnings
KHARMA 2024.4
Lots of features which were waiting for the last release (e-, multizone, reconstructions, CT schemes, etc), plus a ton of stability features to try to make the large-scale INCITE runs reliable with fewer of the traditional GRMHD crutches.
- First-order flux corrections (FOFC)
- Kastaun robust primitive variable recovery
- Multizone improvements
- Implicit/EMHD bugfixes
- electron temperature tracking fixes and tests
- Upwinded B fluxes
- New reconstruction schemes
- Split/simplified floor injection
- Reconstruction fallback
- "Transmitting" polar boundary conditions: correct ghosts and EMFs on polar edges, but no excision
KHARMA 2023.12
Highlights:
- SMR/AMR with new split face-centered B fields. New initialization for magnetic fields.
- Basic support for "multi-zone" chained overlapping runs (see
devfor more recent progress there, though) - EMHD with pivoted QR decomposition for stability
- HIP support
- Reorganized package structure with callbacks, simplified drivers (and new, simpler driver for testing)
- Most features are now split into packages, reducing weight of
GRMHDpackage and non-package components - Much faster and more extensible machinery for reductions, incl. counting failure/floor flags, etc.
- New package for handling boundaries allowing user boundary choices
- Simplify problems, e.g. single
Bondiproblem - Simplified range management with
KDomain, eliminate some of the more confusing lambda conventions for loops - Move to nearly main-line Parthenon, simplify other dependencies
KHARMA 2022.12
As used for up-scaled "focused" runs of the ngGRMHD library.
Support for interpolation and magnetic field cleanup, better tests & CI features. Significant code cleanup and several new convenience features when compiling. Faster file I/O and MPI Reductions thanks to Parthenon improvements.
KHARMA 2022.3
KHARMA as used to begin "base" production runs of ngGRMHD INCITE project.
Fast, reliable, flexible & feature-complete core GRMHD evolution, plus core implementations of semi-implicit stepping and electron thermodynamics.