Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
504cc72
Reintroduce: higher order Faraday kernel implemented by @vanthieg
LudwigBoess Apr 24, 2025
7d7ce88
Reintroduce: example settings for higher order field solver
LudwigBoess Apr 24, 2025
0fc9c49
improved field interpolation scheme implemented by @vanthieg
LudwigBoess Apr 24, 2025
8add347
Merge branch 'dev/pgens' into dev/fieldsolver_stencil
LudwigBoess Apr 25, 2025
3d9ac42
Esirkepov Eq. 24, 31, 38 (wip)
LudwigBoess May 3, 2025
c984fe0
added THIRD
LudwigBoess May 3, 2025
1be5185
bugfix
LudwigBoess May 3, 2025
180358e
formatting
LudwigBoess May 3, 2025
b81f433
redefine vectors to variables + explicit loop unrolling for 2D
LudwigBoess May 11, 2025
dfc7165
moved interpolation order from variable to compiler directive
LudwigBoess May 11, 2025
f1b8cd7
first attempt at 2D current deposit with Esirkepov
LudwigBoess May 13, 2025
cb56279
more local calculation of weight functions
LudwigBoess May 13, 2025
9f50dea
switch to row-major order
LudwigBoess May 13, 2025
6b32791
first attempt at current deposit jx1 in 3D
LudwigBoess May 13, 2025
9ab4c0f
Merge branch 'dev/fieldsolver_stencil' into dev/esirkepov
LudwigBoess May 14, 2025
bf788a9
more efficient memory access (this time for real)
LudwigBoess May 14, 2025
b6a2811
first attempt at y/z deposit in 3D
LudwigBoess May 14, 2025
bbd2b3c
memory reorder
LudwigBoess May 15, 2025
4f344eb
esirkepov WIP
haykh May 15, 2025
1e437ba
added missing recursive J update
LudwigBoess May 15, 2025
51a4f69
fix comment
LudwigBoess May 14, 2025
cae1eef
fix accidental deletion of commented lines
LudwigBoess May 16, 2025
b87500e
fix in y current deposit
LudwigBoess May 16, 2025
f56afef
bugfix in parameter access
LudwigBoess May 16, 2025
9f488a2
Merge branch '1.2.0rc' into dev/fieldsolver_stencil
LudwigBoess May 20, 2025
63dc8a9
updates to J update indexing
LudwigBoess May 21, 2025
822cb96
fixed shift calculation
LudwigBoess May 21, 2025
4ebb994
bugfixes
LudwigBoess May 21, 2025
246b3e9
simplification and bugfix in Wy
LudwigBoess May 22, 2025
2301179
bugfix in case comparison
LudwigBoess May 22, 2025
98822bf
Merge branch 'dev/fieldsolver_stencil' into dev/esirkepov
LudwigBoess May 22, 2025
eb8c58e
switch off formatting for large B updates
LudwigBoess May 22, 2025
03aebb5
optimizations and prep for 3rd order deposit
LudwigBoess May 22, 2025
bd2f333
update 3D 2nd order deposit
LudwigBoess May 23, 2025
7e52c03
removed redundant terms
LudwigBoess May 23, 2025
f168426
2nd order particle pusher
LudwigBoess May 23, 2025
6eabea9
bugfix in Jz
LudwigBoess May 24, 2025
6a9ff16
update to deposit test
LudwigBoess May 26, 2025
56763b8
kernel error
haykh May 26, 2025
9542af1
Merge branch 'dev/esirkepov' of github.com:entity-toolkit/entity into…
haykh May 26, 2025
84fcb6c
deposit test fixed
haykh May 26, 2025
9b8985d
fixes to pusher
LudwigBoess May 27, 2025
c6b9cc8
bugfixes
LudwigBoess May 27, 2025
1d4b074
bugfixes for variable names
LudwigBoess May 27, 2025
b551c10
bugfix
LudwigBoess Jun 7, 2025
a8aa8bb
bugfix
LudwigBoess Jun 9, 2025
db8ad4e
IC RR force added
Jul 2, 2025
77cdd68
fix 2nd order shape function in pusher
LudwigBoess Jul 14, 2025
8c60b01
fix second order weight functions in 1D and 3D
LudwigBoess Jul 17, 2025
2732659
introduced `THREE_FOURTHS` to shorten expression in pusher and deposi…
LudwigBoess Jul 17, 2025
6e72e04
version
haykh Jul 17, 2025
3f8b8d8
Merge branch '1.3.0rc' into dev/fieldsolver_stencil
LudwigBoess Jul 19, 2025
04e4566
switch off clang-format in B update - looks cleaner
LudwigBoess Jul 19, 2025
82ddfad
first step for esirkepov with arbitrary order (wip)
LudwigBoess Jul 28, 2025
4884d67
Merge pull request #103 from entity-toolkit/dev/fieldsolver_stencil
LudwigBoess Aug 2, 2025
90f5019
new esirkepov (WIP, not yet working properly)
haykh Aug 3, 2025
4ab9bf3
Merge remote-tracking branch 'origin/master' into 1.3.0rc
haykh Aug 4, 2025
5aa4814
shape func fix
haykh Aug 5, 2025
7099a88
generalized shape function to 5th order, cleanup and removal of stagg…
LudwigBoess Aug 6, 2025
9f6f318
improved comments and cleanup
LudwigBoess Aug 6, 2025
1221068
cleanup and updates to generalized version (wip)
LudwigBoess Aug 6, 2025
6185783
bugfix
LudwigBoess Aug 6, 2025
d55240d
fixed old zigzag
haykh Aug 6, 2025
0f145b4
merged with master
haykh Aug 6, 2025
18d29d2
merged with 1.3.0rc
haykh Aug 6, 2025
87a80c2
esirkepov ranges fixed
haykh Aug 7, 2025
877e9f5
generalized field interpolation to arbitrary order (wip)
LudwigBoess Aug 12, 2025
e1274d5
bugfixes for indexing
LudwigBoess Aug 13, 2025
eae6a13
add remaining shape_order cases
LudwigBoess Aug 14, 2025
acfd136
bugfix for 3D deposit
LudwigBoess Aug 14, 2025
bd905af
Merge branch 'master' into 1.3.0rc
LudwigBoess Aug 22, 2025
20ce482
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Aug 26, 2025
bd72a7e
bugfix in first order shape function
LudwigBoess Aug 29, 2025
6568008
cleanup
LudwigBoess Aug 29, 2025
ffde338
bugfix in static_cast
LudwigBoess Sep 9, 2025
dbb6b42
bugfix in 3rd order shape function
LudwigBoess Sep 10, 2025
ba44374
shape function up-to 8th order
LudwigBoess Sep 11, 2025
13a8522
bugfix, loop unroll pragma and error handling fix
LudwigBoess Sep 11, 2025
af001b7
remove print
LudwigBoess Sep 11, 2025
9b3bcd5
bugfixes
LudwigBoess Sep 11, 2025
7741cc5
9th order shape function
LudwigBoess Sep 11, 2025
e0d39ee
applied formatting, improved comments and error handling
LudwigBoess Sep 11, 2025
aa500e3
first attempt to give shape function order at compile time
LudwigBoess Sep 11, 2025
578cec2
cmake for shape funcs
haykh Sep 11, 2025
a4f75de
fix cmake options for deposit and shape order
LudwigBoess Sep 11, 2025
b2058d9
comm fields in shock setup
haykh Sep 11, 2025
a4a0044
metadomain correctly passed to shock pgen
haykh Sep 11, 2025
7c19202
bugfix in 3rd order shape function i_min for not staggered case
LudwigBoess Sep 12, 2025
7f2a30b
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Sep 13, 2025
58950c5
simplifications for 3rd order shape functions
LudwigBoess Sep 17, 2025
5025936
bugfix and optimisation for S3
LudwigBoess Sep 19, 2025
a36ab24
Merge branch 'master' into 1.3.0rc
LudwigBoess Sep 21, 2025
f2778f7
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Sep 21, 2025
554fcc2
bugfix in 4th order shape function
LudwigBoess Sep 22, 2025
8faa0ee
bugfix in 3D indexing
LudwigBoess Sep 22, 2025
0f2f0a8
Merge branch 'master' into 1.3.0rc
haykh Oct 6, 2025
081e76c
delta/beta added underscore to naming + tests
haykh Oct 6, 2025
675e178
disabled failing test for stats (intended) + faraday mink kernel defa…
haykh Oct 6, 2025
49da407
consistent single/double prec in qkerrschild
haykh Oct 6, 2025
6c216b1
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Oct 6, 2025
f4faa87
10th order shape function
LudwigBoess Oct 8, 2025
2a23da1
updated cmake options for 10th order
LudwigBoess Oct 9, 2025
0e93203
entity now goes to 11!
LudwigBoess Oct 9, 2025
65cbba6
revert to unoptimized version for S3 for further testing
LudwigBoess Oct 9, 2025
1971c1d
particle checkpoints refactored + added extra vars
haykh Oct 21, 2025
479c0cf
hdf5 off by default
haykh Oct 21, 2025
c70c353
checkpoint functionality for fields placed in fields struct
haykh Oct 21, 2025
99137f4
comm for particles placed in struct + pld comm
haykh Oct 21, 2025
53bff3c
generics for write ndfield
haykh Oct 21, 2025
ce4e96f
minor (rm ntt_checkpoint)
haykh Oct 21, 2025
4adee23
temporary bugfix
LudwigBoess Oct 22, 2025
3848cc3
Esirkepov 1D
LudwigBoess Oct 22, 2025
662b7f7
experimental removed (WIP)
haykh Oct 24, 2025
fa26b32
particle output moved to prtl class
haykh Oct 24, 2025
fce7983
writer for subview
haykh Oct 24, 2025
3a35b75
pld passed to prtl2phys kernel
haykh Oct 24, 2025
bb41984
minor formatting
haykh Oct 24, 2025
713fd6e
prtl tracking in output
haykh Oct 27, 2025
417f03c
reduced 1d from 2d deposit
haykh Oct 30, 2025
65450c3
11th order + printing fixed
haykh Nov 3, 2025
4b5044d
added option for initial B-field for Bell instability
LudwigBoess Nov 4, 2025
dbc039f
capture this explicitly
haykh Nov 7, 2025
2e367b0
tests adjusted
haykh Nov 8, 2025
ca093bc
bump dev/nix versions
haykh Nov 8, 2025
bb72a9a
Merge pull request #144 from entity-toolkit/dev/tracking
haykh Nov 8, 2025
2028daa
fix adios2 tag
haykh Nov 8, 2025
bb93d4c
archetypes simplified
haykh Nov 10, 2025
ece6aae
minor
haykh Nov 10, 2025
6ce24ec
extra files written to same directory
haykh Nov 10, 2025
f8181b0
nonuniform injector with tracking
haykh Nov 10, 2025
b4d39d0
minor bug in prtl var definitions
haykh Nov 11, 2025
e5c6543
pld output fixed
haykh Nov 24, 2025
aec8d05
species printer adjusted
haykh Nov 24, 2025
b8b03e7
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Nov 25, 2025
d0a343c
unnecessary probe_box in rec
haykh Nov 25, 2025
6b85b85
Merge pull request #149 from entity-toolkit/dev/archetypes
haykh Nov 25, 2025
ada9100
Merge pull request #121 from entity-toolkit/dev/IC
haykh Nov 25, 2025
ff5ec45
Merge branch '1.3.0rc' into dev/esirkepov
LudwigBoess Nov 26, 2025
34ddd52
add output of deposit scheme and order to info file
LudwigBoess Nov 26, 2025
6a07931
fix order of printing for more conistency
LudwigBoess Nov 30, 2025
73597bd
rm legacy code, Inline function now pass by values, bug with ZERO
haykh Dec 1, 2025
6ae22d3
Merge branch 'master' into 1.3.0rc
haykh Dec 1, 2025
cdad866
bug in nonuniforminject + fractional ppc bug
haykh Dec 2, 2025
0211a25
engine_registry (WIP)
haykh Dec 2, 2025
f81c640
Update particle_moments.hpp
xwgong01 Dec 2, 2025
5745727
Update particle_moments.hpp
xwgong01 Dec 2, 2025
a68192d
Merge pull request #152 from xwgong01/fix_diagnostic
haykh Dec 4, 2025
3185c61
merged with latest 1.3.0rc
haykh Dec 4, 2025
7b23e30
formatting
haykh Dec 4, 2025
1491ff9
rudimentary test for all deposit orders
haykh Dec 4, 2025
1f911e8
static_assert for shape order
haykh Dec 4, 2025
ef9b215
fieldsolver coeffs in input
haykh Dec 4, 2025
22549a2
removed redundant optimisation and added comments
LudwigBoess Dec 4, 2025
388d3c8
minor fix in comment
LudwigBoess Dec 4, 2025
7f67db0
recovered prior explicit specializer
haykh Dec 4, 2025
d9259d5
Merge branch '1.3.0rc' into dev/esirkepov
haykh Dec 4, 2025
198e05d
Merge pull request #109 from entity-toolkit/dev/esirkepov
haykh Dec 4, 2025
e263d74
Add specialization registry for engines and metrics
haykh Dec 4, 2025
dd75a04
Use enum-based specialization registry
haykh Dec 4, 2025
1853f77
Fix specialization template alias usage
haykh Dec 4, 2025
b382a88
Fix Metadomain output instantiation
haykh Dec 4, 2025
328efcb
Add missing always_false trait
haykh Dec 4, 2025
38c1b41
Merge pull request #1 from haykh/codex/propose-robust-clean-method-fo…
haykh Dec 4, 2025
bc5b1e3
actions
haykh Dec 4, 2025
d122d42
ompi apt install in actions
haykh Dec 4, 2025
57c9d83
actions
haykh Dec 4, 2025
af1a845
CPUTEST
haykh Dec 4, 2025
de1cc0e
pgen builder CPUTEST
haykh Dec 4, 2025
e3d86c3
action names
haykh Dec 4, 2025
f2d17d4
action names
haykh Dec 4, 2025
b442f45
Merge pull request #2 from haykh/dev/actions
haykh Dec 4, 2025
7cf9a3a
Merge pull request #154 from haykh/master
haykh Dec 4, 2025
4d73ea8
Merge branch 'master' into dev/streaming
LudwigBoess Dec 8, 2025
48db1bd
Merge branch '1.3.0rc' into dev/streaming
LudwigBoess Dec 8, 2025
1364c50
changed Bfield init to behave as in shock setup
LudwigBoess Dec 8, 2025
9f28f51
update to Bell setup
LudwigBoess Dec 8, 2025
1e0aa6d
Merge pull request #146 from entity-toolkit/dev/streaming
LudwigBoess Dec 8, 2025
1ab5549
set Guo+14 as default shock setup parameters
LudwigBoess Dec 8, 2025
168b706
citation + news in readme
haykh Dec 9, 2025
3a2134a
Update README.md
haykh Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions .github/workflows/cpuarch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: CPU Compilation/Unit Tests

on:
push:

jobs:
check-commit:
runs-on: ubuntu-24.04
outputs:
run_tests: ${{ steps.check_message.outputs.run_tests }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check commit message
id: check_message
run: |
if git log -1 --pretty=%B | grep -q "CPUTEST"; then
echo "run_tests=true" >> "$GITHUB_OUTPUT"
else
echo "run_tests=false" >> "$GITHUB_OUTPUT"
fi
tests:
needs: check-commit
if: needs.check-commit.outputs.run_tests == 'true'
name: UNIT_TESTS (precision=${{ matrix.precision }}, mpi=${{ matrix.mpi }}, output=${{ matrix.output }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
precision: [single, double]
mpi: [ON, OFF]
output: [ON, OFF]
exclude:
- precision: single
mpi: ON
output: ON
- precision: double
mpi: ON
output: ON
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install GCC 14 and build tools
run: |
sudo apt-get update
sudo apt-get install -y gcc-14 g++-14 gfortran-14 build-essential wget libevent-dev libhwloc-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 50
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-14 50
gcc --version
g++ --version
- name: Install CMake (3.x)
run: |
sudo apt-get install -y cmake
cmake --version
- name: Install OpenMPI 5
run: |
sudo apt-get install -y libopenmpi-dev openmpi-bin
mpirun --version
- name: Configure
run: |
if [ "${{ matrix.mpi }}" = "ON" ]; then
export CC=mpicc
export CXX=mpicxx
else
export CC=gcc-14
export CXX=g++-14
fi
cmake -B build -D TESTS=ON -D precision=${{ matrix.precision }} -D mpi=${{ matrix.mpi }} -D output=${{ matrix.output }}
- name: Compile
run: cmake --build build -j "$(nproc)"
- name: Run tests
run: ctest --test-dir build --output-on-failure
pgens:
needs: check-commit
if: needs.check-commit.outputs.run_tests == 'true'
name: PGENS (pgen=${{ matrix.pgen }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
pgen: [streaming, turbulence, reconnection, shock, magnetosphere, accretion, wald]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install GCC 14 and build tools
run: |
sudo apt-get update
sudo apt-get install -y gcc-14 g++-14 gfortran-14 build-essential wget libevent-dev libhwloc-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 50
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-14 50
gcc --version
g++ --version
- name: Install CMake (3.x)
run: |
sudo apt-get install -y cmake
cmake --version
- name: Configure
run: |
cmake -B build -D pgen=${{ matrix.pgen }} -D output=OFF
- name: Compile
run: cmake --build build -j "$(nproc)"
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: Unit tests
name: Multi-Arch Local Tests

on:
push:

jobs:
check-commit:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
outputs:
run_tests: ${{ steps.check_message.outputs.run_tests }}
steps:
Expand All @@ -14,7 +14,7 @@ jobs:
- name: Check commit message
id: check_message
run: |
if git log -1 --pretty=%B | grep -q "RUNTEST"; then
if git log -1 --pretty=%B | grep -q "MARCHTEST"; then
echo "run_tests=true" >> "$GITHUB_OUTPUT"
else
echo "run_tests=false" >> "$GITHUB_OUTPUT"
Expand Down
43 changes: 43 additions & 0 deletions CITATION
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
As stated in the Code of Conduct document, we have no requirements for any explicit recognition or attribution when using Entity. However, we would greatly appreciate it if you could cite our work in any publications that have benefited from using Entity.

Use the following BibTeX entry to cite the main paper describing the code:

```latex
@ARTICLE{Entity_2025,
author = {{Hakobyan}, Hayk and {B{\"o}ss}, Ludwig M. and {Cai}, Yangyang and {Chernoglazov}, Alexander and {Galishnikova}, Alisa and {Gorbunov}, Evgeny A. and {Mahlmann}, Jens F. and {Philippov}, Alexander and {Solanki}, Siddhant and {Vanthieghem}, Arno and {Zhou}, Muni},
title = "{Entity -- Hardware-agnostic Particle-in-Cell Code for Plasma Astrophysics. I: Curvilinear Special Relativistic Module}",
journal = {arXiv e-prints},
keywords = {High Energy Astrophysical Phenomena, Plasma Physics},
year = 2025,
month = nov,
eid = {arXiv:2511.17710},
pages = {arXiv:2511.17710},
doi = {10.48550/arXiv.2511.17710},
archivePrefix = {arXiv},
eprint = {2511.17710},
primaryClass = {astro-ph.HE},
adsurl = {https://ui.adsabs.harvard.edu/abs/2025arXiv251117710H},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
```

For the general relativistic module, please cite the following paper:

```latex
@ARTICLE{EntityGR_2025,
author = {{Galishnikova}, Alisa and {Hakobyan}, Hayk and {Philippov}, Alexander and {Crinquand}, Benjamin},
title = "{$\mathtt{Entity}$ -- Hardware-agnostic Particle-in-Cell Code for Plasma Astrophysics. II: General Relativistic Module}",
journal = {arXiv e-prints},
keywords = {High Energy Astrophysical Phenomena},
year = 2025,
month = nov,
eid = {arXiv:2511.17701},
pages = {arXiv:2511.17701},
doi = {10.48550/arXiv.2511.17701},
archivePrefix = {arXiv},
eprint = {2511.17701},
primaryClass = {astro-ph.HE},
adsurl = {https://ui.adsabs.harvard.edu/abs/2025arXiv251117701G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
```
26 changes: 25 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set(PROJECT_NAME entity)

project(
${PROJECT_NAME}
VERSION 1.2.5
VERSION 1.3.0
LANGUAGES CXX C)
add_compile_options("-D ENTITY_VERSION=\"${PROJECT_VERSION}\"")
set(hash_cmd "git diff --quiet src/ && echo $(git rev-parse HEAD) ")
Expand All @@ -34,6 +34,15 @@ set(DEBUG
set(precision
${default_precision}
CACHE STRING "Precision")

set(deposit
${default_deposit}
CACHE STRING "Deposit")

set(shape_order
${default_shape_order}
CACHE STRING "Shape function")

set(pgen
${default_pgen}
CACHE STRING "Problem generator")
Expand Down Expand Up @@ -75,6 +84,20 @@ set(precisions
"single" "double"
CACHE STRING "Precisions")

set(deposits
"zigzag" "esirkepov"
CACHE STRING "Deposits")

if(${deposit} STREQUAL "zigzag")
set(shape_order
${default_shape_order}
CACHE STRING "Shape functions")
endif()

set(shape_orders
"1;2;3;4;5;6;7;8;9;10;11"
CACHE STRING "Shape orders")

include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.cmake)

# ------------------------- Third-Party Tests ------------------------------ #
Expand All @@ -92,6 +115,7 @@ include_directories(${plog_SRC}/include)

# -------------------------------- Main code ------------------------------- #
set_precision(${precision})
set_shape_order(${shape_order})
if("${Kokkos_DEVICES}" MATCHES "CUDA")
add_compile_options("-D CUDA_ENABLED")
set(DEVICE_ENABLED ON)
Expand Down
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ Our [detailed documentation](https://entity-toolkit.github.io/) includes everyth

[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

## News

- [Dec 2025]: **high-order** shape functions [PR #109](https://github.com/entity-toolkit/entity/pull/109) and advanced field stencils [PR #103](https://github.com/entity-toolkit/entity/pull/103) are now supported.
- [Dec 2025]: **particle tracking** is now fully supported via [PR #144](https://github.com/entity-toolkit/entity/pull/144).
- [Nov 2025]: our **method papers** are online: [Special relativistic module](https://ui.adsabs.harvard.edu/abs/2025arXiv251117710H/abstract), [GR module](https://ui.adsabs.harvard.edu/abs/2025arXiv251117701G/abstract)!

## Citation

Please, see the `CITATION` document for the relevant BibTeX entries if you would like to cite one of the method papers for the code.

## Join the community

Everyone is welcome to join our small yet steadily growing community of code users and developers; regardless of how much you are planning to contribute -- we always welcome fresh ideas and feedback. We hold weekly Slack calls on Mondays at 12pm NY time, and have a dedicated Slack channel where you can be easily added by emailing one of the maintainers (indicated with an asterisk in the list below). Anyone is welcome to join both our **Slack workspace** and the weekly meetings -- please feel free to request access by emailing.
Expand Down Expand Up @@ -43,3 +53,4 @@ Maintainers indicated with an arrow.
- All `bug/` and `dev/` branches must have an open pull-request describing in detail its purpose.
- Before merging to the master branch, all the branches must first be merged to the latest release-candidate branch, which ends with `rc`, via a pull request. This can either be a major release: `1.X.0rc`, or a patch release `1.X.Yrc`.
- Stale branches will be archived with a tag starting with `archive/` (can still be accessed via the "Tags" tab) and removed.

2 changes: 1 addition & 1 deletion cmake/adios2Config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ set(ADIOS2_USE_Fortran

# Format/compression support
set(ADIOS2_USE_HDF5
ON
OFF
CACHE BOOL "Use HDF5 for ADIOS2")

set(ADIOS2_USE_MPI
Expand Down
2 changes: 1 addition & 1 deletion cmake/benchmark.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ add_executable(${exec} ${src})

set(libs ntt_global ntt_metrics ntt_kernels ntt_archetypes ntt_framework)
if(${output})
list(APPEND libs ntt_output ntt_checkpoint)
list(APPEND libs ntt_output)
endif()
add_dependencies(${exec} ${libs})
target_link_libraries(${exec} PRIVATE ${libs} stdc++fs)
10 changes: 10 additions & 0 deletions cmake/config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,16 @@ function(set_precision precision_name)
endif()
endfunction()

# ------------------------------- Shape function --------------------------- #
function(set_shape_order shape_order)
if(${deposit} STREQUAL "esirkepov")
if(${shape_order} GREATER 11)
message(FATAL_ERROR "Shape order must be between 1 and 11.")
endif()
add_compile_options("-DSHAPE_ORDER=${shape_order}")
endif()
endfunction()

# ---------------------------- Problem generator --------------------------- #
function(set_problem_generator pgen_name)
if(pgen_name STREQUAL ".")
Expand Down
6 changes: 6 additions & 0 deletions cmake/defaults.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ set(default_engine
set(default_precision
"single"
CACHE INTERNAL "Default precision")
set(default_deposit
"zigzag"
CACHE INTERNAL "Default deposit")
set(default_shape_order
1
CACHE INTERNAL "Default shape function order")
set(default_pgen
"."
CACHE INTERNAL "Default problem generator")
Expand Down
7 changes: 6 additions & 1 deletion cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,12 @@ function(find_or_fetch_dependency package_name header_only mode)
FetchContent_Declare(
${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY}
GIT_TAG 4.6.01)
GIT_TAG 4.7.01)
elseif(${package_name} STREQUAL "adios2")
FetchContent_Declare(
${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY}
GIT_TAG v2.10.2)
else()
FetchContent_Declare(${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY})
Expand Down
24 changes: 24 additions & 0 deletions cmake/report.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,24 @@ printchoices(
"${Blue}"
PRECISION_REPORT
46)
printchoices(
"Deposit"
"deposit"
"${deposits}"
${deposit}
${default_deposit}
"${Blue}"
DEPOSIT_REPORT
46)
printchoices(
"Shape order"
"shape_order"
"${shape_orders}"
${shape_order}
${default_shape_order}
"${Blue}"
SHAPEFUNCTION_REPORT
46)
printchoices(
"Output"
"output"
Expand Down Expand Up @@ -113,6 +131,12 @@ string(
${PRECISION_REPORT}
"\n"
" "
${DEPOSIT_REPORT}
"\n"
" "
${SHAPEFUNCTION_REPORT}
"\n"
" "
${OUTPUT_REPORT}
"\n")

Expand Down
31 changes: 17 additions & 14 deletions cmake/styling.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -140,27 +140,30 @@ function(
else()
padto("${rstring}" " " ${Padding} rstring)

set(new_choices ${Choices})
foreach(ch IN LISTS new_choices)
string(REPLACE ${ch} "${Dim}${ch}${ColorReset}" new_choices
"${new_choices}")
endforeach()
set(Choices ${new_choices})
if(${Value} STREQUAL "ON")
set(col ${Green})
elseif(${Value} STREQUAL "OFF")
set(col ${Red})
else()
set(col ${Color})
endif()
if(NOT "${Value}" STREQUAL "")
string(REPLACE ${Value} "${col}${Value}${ColorReset}" Choices
"${Choices}")
endif()
if(NOT "${Default}" STREQUAL "")
string(REPLACE ${Default} "${Underline}${Default}${ColorReset}" Choices
"${Choices}")
endif()
set(new_choices "")
foreach(ch IN LISTS Choices)
set(elem "${ch}")
if((NOT "${Value}" STREQUAL "") AND (${ch} STREQUAL ${Value}))
set(elem "${col}${ch}${ColorReset}")
else()
set(elem "${Dim}${ch}${ColorReset}")
endif()
if((NOT "${Default}" STREQUAL "") AND (${ch} STREQUAL ${Default}))
set(elem "${Underline}${elem}${ColorReset}")
endif()
string(APPEND new_choices "${elem};")
endforeach()
string(LENGTH "${new_choices}" nlen)
math(EXPR nlen "${nlen} - 1")
string(SUBSTRING "${new_choices}" 0 ${nlen} new_choices)
set(Choices ${new_choices})
string(REPLACE ";" "/" Choices "${Choices}")
string(APPEND rstring "${Choices}")
endif()
Expand Down
Loading