Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
8b42d55
version bump
haykh Dec 16, 2025
98669a2
dependency version bumps
haykh Dec 19, 2025
9e32980
WIP concepts + requires (CPUTEST)
haykh Dec 19, 2025
8de9280
compatibility bug with kokkos 5
haykh Dec 20, 2025
b90cf9d
metadomain + domain concepts
haykh Dec 20, 2025
f9d0e80
engine+metric concepts (CPUTEST)
haykh Dec 20, 2025
c088ae0
amdgpu_targets & rocm libs in nix shell
haykh Dec 22, 2025
1472d12
pgen concepts CPUTEST
haykh Jan 5, 2026
649b703
typo in mag pgen CPUTEST
haykh Jan 5, 2026
9ba6865
final concepts CPUTEST
haykh Jan 5, 2026
dfa7307
tweak gh action to run when pr ready
haykh Jan 5, 2026
ef5be2f
Merge pull request #161 from entity-toolkit/dev/concepts
haykh Jan 5, 2026
d91090f
cooling -> radiative drag + param overhaul
haykh Jan 6, 2026
6d9eb8b
parameters reader refactor (CPUTEST)
haykh Jan 8, 2026
e18b72f
refactored params even further (CPUTEST)
haykh Jan 8, 2026
1802bae
fixed cmake for params (CPUTEST)
haykh Jan 9, 2026
0567440
added header comments
haykh Jan 9, 2026
9b519bb
further simplified params reading for grid (CPUTEST)
haykh Jan 9, 2026
46dc068
algorithms parameter reader (CPUTEST)
haykh Jan 9, 2026
c1a6a27
minor bug in algorithm param (CPUTEST)
haykh Jan 9, 2026
29f1595
prtl pusher is now an bit-int (CPUTEST)
haykh Jan 9, 2026
68a6a11
minor str issue for clang
haykh Jan 12, 2026
bf7ff96
pusher kernel sr constructor simplified (CPUTEST)
haykh Jan 12, 2026
a3354d2
small-angle approximation for polar area in GR, replicates SR
alisagk Jan 14, 2026
99c21ee
added definition of small_angle to ks metric
alisagk Jan 14, 2026
346bf80
Merge pull request #167 from entity-toolkit/dev/polar
alisagk Jan 14, 2026
727c023
radiation drag & emission policy separated
haykh Jan 19, 2026
cf7f9ed
CPUTEST
haykh Jan 19, 2026
784dd5b
dependencies script (no cluster presets yet)
haykh Jan 20, 2026
f4740be
concepts revised
haykh Jan 22, 2026
a1ab3cb
compatibility partially fixed (WIP)
haykh Jan 25, 2026
2e140cc
Gate engine instantiations by PGen compatibility
haykh Jan 25, 2026
362a44a
Limit engine instantiations to pgen specializations
haykh Jan 25, 2026
135b8bf
Inline engine template definitions
haykh Jan 25, 2026
58aa480
fixed pgen compatibility issue
haykh Jan 25, 2026
4da54f2
Merge pull request #4 from haykh/codex/restrict-engine-metric-combina…
haykh Jan 25, 2026
4f98353
fixed namespacing in pgens (CPUTEST)
haykh Jan 25, 2026
a72903a
Merge pull request #171 from haykh/dev/emission
haykh Jan 25, 2026
94b1a1d
engine traits collected into one place
haykh Jan 25, 2026
8be07f8
bcs and extent now part of the Grid not Mesh class
haykh Jan 25, 2026
a3915ab
added test for pgen traits (CPUTEST)
haykh Jan 25, 2026
fe6b255
moved reporting helper functions to a separate util
haykh Jan 26, 2026
7331af8
engine printer modularized
haykh Jan 26, 2026
a0e4015
int -> uint in number of domains + deprecated separate_files = false
haykh Jan 26, 2026
2a7e706
Merge branch 'master' into 1.4.0rc
haykh Jan 26, 2026
519a2eb
merged 1.3.2 back to 1.4.0rc
haykh Jan 26, 2026
7feaf5f
merged 1.3.2 -> 1.4.0rc ->
haykh Jan 26, 2026
56e3eff
writer test fixed + inline -> Inline in S10 and S11 esirkepov
haykh Jan 27, 2026
83c26ce
emails in README
haykh Jan 27, 2026
eabefa8
Merge pull request #165 from entity-toolkit/dev/emission
haykh Jan 27, 2026
e1774af
empty commit
haykh Jan 27, 2026
0de143a
fixed issue of writing checkpoint with non-zero n_pld_r
Jan 28, 2026
5564508
srpic engine modularized
haykh Jan 29, 2026
2d9a5ae
Merge pull request #175 from xwgong01/fix/ckpt_write
haykh Jan 30, 2026
4e61680
minor renaming
haykh Jan 30, 2026
f420ca3
nix upd + O3 flag added + gui option rm
haykh Jan 30, 2026
3281a55
tests now can be compiled with pgen
haykh Jan 30, 2026
4418b55
Merge branch '1.4.0rc' of github.com:entity-toolkit/entity into dev/e…
haykh Jan 30, 2026
3cf77b6
prtldim trait for metrics
haykh Jan 31, 2026
c295fb8
support for 2D arrays in setup input
haykh Jan 31, 2026
f13a68d
GR with no init_flds in pgen support
haykh Jan 31, 2026
73e4640
rm unnecessary add_subdirectory in benchmark cmake
haykh Jan 31, 2026
c351db2
fixed fields now accepts time
haykh Feb 5, 2026
4687028
CPUTEST
haykh Feb 5, 2026
08d51f6
rm unnecessary printf
haykh Feb 5, 2026
835a7b5
compton emission kernel
haykh Feb 5, 2026
014f888
Merge remote-tracking branch 'origin' into 1.4.0rc
haykh Feb 9, 2026
e068569
empty commit
haykh Jan 27, 2026
a2ea14a
srpic engine modularized
haykh Jan 29, 2026
56cf9a6
minor renaming
haykh Jan 30, 2026
4c2dcab
nix upd + O3 flag added + gui option rm
haykh Jan 30, 2026
eb5ec66
tests now can be compiled with pgen
haykh Jan 30, 2026
6a123e2
prtldim trait for metrics
haykh Jan 31, 2026
e207373
support for 2D arrays in setup input
haykh Jan 31, 2026
2775a88
GR with no init_flds in pgen support
haykh Jan 31, 2026
754873f
rm unnecessary add_subdirectory in benchmark cmake
haykh Jan 31, 2026
4e1fa89
compton emission kernel
haykh Feb 5, 2026
0d43dd8
Merge branch 'dev/emission' of github.com:entity-toolkit/entity into …
haykh Feb 9, 2026
9fb060e
fixed fields now accepts time
haykh Feb 5, 2026
93f4002
CPUTEST
haykh Feb 5, 2026
9430ce5
rm unnecessary printf
haykh Feb 5, 2026
1d34ab9
Merge branch 'dev/fixfields' of github.com:entity-toolkit/entity into…
haykh Feb 9, 2026
8b0cc5c
compton emission routine
haykh Feb 11, 2026
acd6504
Merge branch 'dev/emission' into dev/fixfields
haykh Feb 11, 2026
bda9732
compton emission tested
haykh Feb 12, 2026
06fd6c4
synchrotron drag + fix mass dependence
haykh Feb 13, 2026
53fe419
Merge branch 'dev/fixfields' of github.com:entity-toolkit/entity into…
haykh Feb 13, 2026
9ed0c8c
rm strongfieldqed emission type for now
haykh Feb 17, 2026
016b309
Merge pull request #174 from entity-toolkit/dev/emission
haykh Feb 17, 2026
fc13991
rm plog from submodules -> move to explicit include (same for toml11)
haykh Feb 17, 2026
87cfb91
switched to "no grad" condition for Dr at the axis
alisagk Feb 25, 2026
72ca76f
Merge pull request #182 from entity-toolkit/dev/axis_BC_GR
alisagk Feb 25, 2026
f64a8ee
stdc++fs only links with non-appleclang compilers CPUTEST
haykh Feb 25, 2026
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
6 changes: 6 additions & 0 deletions .github/workflows/cpuarch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: CPU Compilation/Unit Tests

on:
push:
pull_request:
types: [ready_for_review]

jobs:
check-commit:
Expand All @@ -14,6 +16,10 @@ jobs:
- name: Check commit message
id: check_message
run: |
if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.action }}" == "ready_for_review" ]]; then
echo "run_tests=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if git log -1 --pretty=%B | grep -q "CPUTEST"; then
echo "run_tests=true" >> "$GITHUB_OUTPUT"
else
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "extern/plog"]
path = extern/plog
url = https://github.com/SergiusTheBest/plog.git
[submodule "extern/adios2"]
path = extern/adios2
url = https://github.com/ornladios/ADIOS2.git
Expand Down
44 changes: 24 additions & 20 deletions 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.3.3
VERSION 1.4.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 Down Expand Up @@ -47,9 +47,6 @@ set(pgen
${default_pgen}
CACHE STRING "Problem generator")

set(gui
${default_gui}
CACHE BOOL "Use GUI [nttiny]")
set(output
${default_output}
CACHE BOOL "Enable output")
Expand All @@ -62,15 +59,15 @@ set(gpu_aware_mpi
CACHE BOOL "Enable GPU-aware MPI")

# -------------------------- Compilation settings -------------------------- #
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if(${DEBUG} STREQUAL "OFF")
set(CMAKE_BUILD_TYPE
Release
CACHE STRING "CMake build type")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG -O3")
else()
set(CMAKE_BUILD_TYPE
Debug
Expand Down Expand Up @@ -109,9 +106,8 @@ set(BUILD_TESTING
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependencies.cmake)

find_or_fetch_dependency(Kokkos FALSE QUIET)
find_or_fetch_dependency(plog TRUE QUIET)
set(DEPENDENCIES Kokkos::kokkos)
include_directories(${plog_SRC}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

# -------------------------------- Main code ------------------------------- #
set_precision(${precision})
Expand Down Expand Up @@ -162,29 +158,37 @@ if(${output})
find_or_fetch_dependency(adios2 FALSE QUIET)
add_compile_options("-D OUTPUT_ENABLED")
if(${mpi})
set(DEPENDENCIES ${DEPENDENCIES} adios2::cxx11_mpi)
set(DEPENDENCIES ${DEPENDENCIES} adios2::cxx_mpi)
else()
set(DEPENDENCIES ${DEPENDENCIES} adios2::cxx11)
set(DEPENDENCIES ${DEPENDENCIES} adios2::cxx)
endif()
endif()

link_libraries(${DEPENDENCIES})

set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/)
add_subdirectory(${SRC_DIR}/global ${CMAKE_CURRENT_BINARY_DIR}/global)
add_subdirectory(${SRC_DIR}/metrics ${CMAKE_CURRENT_BINARY_DIR}/metrics)
add_subdirectory(${SRC_DIR}/kernels ${CMAKE_CURRENT_BINARY_DIR}/kernels)
add_subdirectory(${SRC_DIR}/archetypes ${CMAKE_CURRENT_BINARY_DIR}/archetypes)
add_subdirectory(${SRC_DIR}/framework ${CMAKE_CURRENT_BINARY_DIR}/framework)
add_subdirectory(${SRC_DIR}/output ${CMAKE_CURRENT_BINARY_DIR}/output)

# ------------------------------- Main source ------------------------------ #
if(NOT ${pgen} STREQUAL ${default_pgen})
set_problem_generator(${pgen})
add_subdirectory(${SRC_DIR}/engines ${CMAKE_CURRENT_BINARY_DIR}/engines)
add_subdirectory(${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src)
endif()

if(TESTS)
# ---------------------------------- Tests --------------------------------- #
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/tests.cmake)
elseif(BENCHMARK)
endif()

if(BENCHMARK)
# ------------------------------ Benchmark --------------------------------- #
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/benchmark.cmake)
else()
# ----------------------------------- GUI ---------------------------------- #
if(${gui})
find_or_fetch_dependency(nttiny FALSE QUIET)
endif()

# ------------------------------- Main source ------------------------------ #
set_problem_generator(${pgen})
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src src)
endif()

include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/report.cmake)
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ Maintainers indicated with an arrow.
* :tipping_hand_person: Alexander Chernoglazov {[@SChernoglazov](https://github.com/SChernoglazov)}
* :tea: Benjamin Crinquand {[@bcrinquand](https://github.com/bcrinquand)}
* :bubble_tea: Alisa Galishnikova {[@alisagk](https://github.com/alisagk)}
* :steam_locomotive: Evgeny Gorbunov {[@Alcauchy](https://github.com/Alcauchy)} [-> [haykh.astro [at] gmail](mailto:haykh.astro@gmail.com)]
* :coffee: Hayk Hakobyan {[@haykh](https://github.com/haykh)} [-> [genegorbs [at] gmail](mailto:genegorbs@gmail.com)]
* :steam_locomotive: Evgeny Gorbunov {[@Alcauchy](https://github.com/Alcauchy)} [-> [genegorbs [at] gmail](mailto:genegorbs@gmail.com)]
* :coffee: Hayk Hakobyan {[@haykh](https://github.com/haykh)} [-> [haykh.astro [at] gmail](mailto:haykh.astro@gmail.com)]
* :potato: Jens Mahlmann {[@jmahlmann](https://github.com/jmahlmann)}
* :dolphin: Sasha Philippov {[@sashaph](https://github.com/sashaph)}
* :radio: Siddhant Solanki {[@sidruns30](https://github.com/sidruns30)}
Expand Down
16 changes: 4 additions & 12 deletions cmake/benchmark.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,6 @@

set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)

add_subdirectory(${SRC_DIR}/global ${CMAKE_CURRENT_BINARY_DIR}/global)
add_subdirectory(${SRC_DIR}/metrics ${CMAKE_CURRENT_BINARY_DIR}/metrics)
add_subdirectory(${SRC_DIR}/kernels ${CMAKE_CURRENT_BINARY_DIR}/kernels)
add_subdirectory(${SRC_DIR}/archetypes ${CMAKE_CURRENT_BINARY_DIR}/archetypes)
add_subdirectory(${SRC_DIR}/framework ${CMAKE_CURRENT_BINARY_DIR}/framework)

if(${output})
add_subdirectory(${SRC_DIR}/output ${CMAKE_CURRENT_BINARY_DIR}/output)
add_subdirectory(${SRC_DIR}/checkpoint ${CMAKE_CURRENT_BINARY_DIR}/checkpoint)
endif()

set(exec benchmark.xc)
set(src ${CMAKE_CURRENT_SOURCE_DIR}/benchmark/benchmark.cpp)

Expand All @@ -23,4 +12,7 @@ if(${output})
list(APPEND libs ntt_output)
endif()
add_dependencies(${exec} ${libs})
target_link_libraries(${exec} PRIVATE ${libs} stdc++fs)
if (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
list(APPEND libs stdc++fs)
endif()
target_link_libraries(${exec} PRIVATE ${libs})
32 changes: 20 additions & 12 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,24 @@
set(Kokkos_REPOSITORY
https://github.com/kokkos/kokkos.git
CACHE STRING "Kokkos repository")
set(plog_REPOSITORY
https://github.com/SergiusTheBest/plog.git
CACHE STRING "plog repository")
set(Kokkos_TAG
5.0.1
CACHE STRING "Kokkos tag")
set(adios2_REPOSITORY
https://github.com/ornladios/ADIOS2.git
CACHE STRING "ADIOS2 repository")
set(adios2_TAG
v2.11.0
CACHE STRING "ADIOS2 tag")

set(CONNECTION_CHECKED
FALSE
CACHE BOOL "Whether internet connection has been checked")

function(check_internet_connection)
if(CONNECTION_CHECKED)
return()
endif()
if(OFFLINE STREQUAL "ON")
set(FETCHCONTENT_FULLY_DISCONNECTED
ON
Expand All @@ -35,6 +45,9 @@ function(check_internet_connection)
message(STATUS "${Green}Internet connection established.${ColorReset}")
endif()
endif()
set(CONNECTION_CHECKED
TRUE
CACHE BOOL "Whether internet connection has been checked")
endfunction()

function(find_or_fetch_dependency package_name header_only mode)
Expand All @@ -43,6 +56,8 @@ function(find_or_fetch_dependency package_name header_only mode)
endif()

if(NOT ${package_name}_FOUND)
check_internet_connection()

if(${package_name} STREQUAL "Kokkos")
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/kokkosConfig.cmake)
elseif(${package_name} STREQUAL "adios2")
Expand All @@ -54,16 +69,11 @@ function(find_or_fetch_dependency package_name header_only mode)
message(STATUS "${Blue}${package_name} not found. "
"Fetching from ${${package_name}_REPOSITORY}${ColorReset}")
include(FetchContent)
if(${package_name} STREQUAL "Kokkos")
if(${package_name} STREQUAL "Kokkos" OR ${package_name} STREQUAL "adios2")
FetchContent_Declare(
${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY}
GIT_TAG 4.7.01)
elseif(${package_name} STREQUAL "adios2")
FetchContent_Declare(
${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY}
GIT_TAG v2.10.2)
GIT_TAG ${${package_name}_TAG})
else()
FetchContent_Declare(${package_name}
GIT_REPOSITORY ${${package_name}_REPOSITORY})
Expand Down Expand Up @@ -171,5 +181,3 @@ function(find_or_fetch_dependency package_name header_only mode)
${${package_name}_BUILD_DIR}
PARENT_SCOPE)
endfunction()

check_internet_connection()
35 changes: 30 additions & 5 deletions cmake/report.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ if(${PGEN_FOUND})
"${Blue}"
PGEN_REPORT
0)
elseif(${TESTS})
endif()

if(${TESTS})
set(TEST_NAMES "")
foreach(test_dir IN LISTS TEST_DIRECTORIES)
get_property(
Expand All @@ -18,14 +20,38 @@ elseif(${TESTS})
list(APPEND TEST_NAMES ${LOCAL_TEST_NAMES})
endforeach()
printchoices(
"Test cases"
"Tests"
"TESTS"
"${ON_OFF_VALUES}"
"ON"
"OFF"
"${Green}"
TESTS_REPORT_1
46)
printchoices(
""
""
"${TEST_NAMES}"
""
"${ColorReset}"
""
TESTS_REPORT
TESTS_REPORT_2
0)
# remove only first line of TESTS_REPORT_2
string(REPLACE "\n" ";" TESTS_REPORT_2_LIST "${TESTS_REPORT_2}")
list(REMOVE_AT TESTS_REPORT_2_LIST 0)
string(REPLACE ";" "\n" TESTS_REPORT_2 "${TESTS_REPORT_2_LIST}")
set(TESTS_REPORT "${TESTS_REPORT_1}\n${TESTS_REPORT_2}")
else()
printchoices(
"Tests"
"TESTS"
"${ON_OFF_VALUES}"
"OFF"
"OFF"
"${Green}"
TESTS_REPORT
46)
endif()

printchoices(
Expand Down Expand Up @@ -120,9 +146,8 @@ string(APPEND REPORT_TEXT ${DASHED_LINE_SYMBOL} "\n" "Configurations" "\n")

if(${PGEN_FOUND})
string(APPEND REPORT_TEXT " " ${PGEN_REPORT} "\n")
elseif(${TESTS})
string(APPEND REPORT_TEXT " " ${TESTS_REPORT} "\n")
endif()
string(APPEND REPORT_TEXT " " ${TESTS_REPORT} "\n")

string(
APPEND
Expand Down
7 changes: 0 additions & 7 deletions cmake/tests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@ enable_testing()

set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)

add_subdirectory(${SRC_DIR}/global ${CMAKE_CURRENT_BINARY_DIR}/global)
add_subdirectory(${SRC_DIR}/metrics ${CMAKE_CURRENT_BINARY_DIR}/metrics)
add_subdirectory(${SRC_DIR}/kernels ${CMAKE_CURRENT_BINARY_DIR}/kernels)
add_subdirectory(${SRC_DIR}/archetypes ${CMAKE_CURRENT_BINARY_DIR}/archetypes)
add_subdirectory(${SRC_DIR}/framework ${CMAKE_CURRENT_BINARY_DIR}/framework)
add_subdirectory(${SRC_DIR}/output ${CMAKE_CURRENT_BINARY_DIR}/output)

set(TEST_DIRECTORIES "")

if(NOT ${mpi})
Expand Down
Loading