Skip to content

1.4.0 Release Candidate#159

Draft
haykh wants to merge 329 commits into
masterfrom
1.4.0rc
Draft

1.4.0 Release Candidate#159
haykh wants to merge 329 commits into
masterfrom
1.4.0rc

Conversation

@haykh
Copy link
Copy Markdown
Collaborator

@haykh haykh commented Dec 16, 2025

TODO

New features

Breaking changes for the users

  • C++20 is the new standard, CMake 3.5+ is now required (per 98669a2)
  • Unnecessary inheritances of arch::ProblemGenerator are now removed
  • Unnecessary inheritances of arch::EnergyDistribution, arch::SpatialDistribution are removed

API changes for the users

  • [radiation] added to input substituting the previous [algorithms.synchrotron] etc.
  • [species.cooling] is now [species.radiative_drag].
  • traits::compatible_with in PGen is now ::traits::pgen::compatible_with, imported from a header #include "traits/pgen.h". All default pgens have been changed.
  • pgen::ext_force is substituted with pgen::ExternalFields to also support external field components ::ex1, ::ex2, ::ex3, ::bx1, ::bx2, ::bx3 (external em fields) on top of the already supported ::fx1, ::fx2, ::fx3 (external force). Example usage included in pgens/examples/external_fields.

Architectural changes for the devs

  • C++20 concept-s and requires-clauses replace the sfinae tests C++20 Concepts #161
  • plog and toml11 headers are now explicitly in the include directory and are fixed fc13991.
  • Parameter reading is fully modularized.
  • Cooling changed to RadiativeDrag; now accepts multiple entries.
  • PrtlPusher similarly changed to ParticlePusher; now accepts composition of different values.
  • Contstructor for kernel::[sr/gr]::Pusher_kernel are now cleaner accepting auxiliary classes: PusherParams, PusherArrays, and PusherBoundaries as well as Policies.
  • additional unit tests added for the problem generator traits.
  • srpic.hpp and grpic.hpp are now subdivided into different dedicated header files with explicit functions.
  • kernel::sr::Pusher_kernel now accepts a set of extra policies, which encode (a) whether to apply atmospheric boundary conditions, (b) custom particle update, (c) external fields/forces, (d) emission policies.
  • code styles are now enforced with clang-tidy, clang-format and cmake-format.
  • added mandatory pre-merge test scripts to be run before any merge takes place.

Bug fixes

Minor changes

  • bumped all dependency version (incl. Kokkos to 5.0.0, and ADIOS2 to 2.11.0)
  • support for 2D arrays in input file (per e207373)
  • -D TESTS=ON can now be used together with pgen to also compile all unit tests.
  • GRPIC now compiles when no init_flds is present in pgen (per f13a68d)
  • stdc++fs now only links with non-AppleClang compilers, since on Apple Clang it's linked by default, and will raise an error if linked explicitly.
  • clear_interval can now be controlled per each species.
  • stats output which is written into the .csv file now has a better print precision (per 5603df3).
  • Consistent Integer Sizes across different categories #201 npart_t and ncells_t are now tied to uint32_t. new counter (loop index) types introduced: cellidx_t and prtlidx_t
    new range types introduced: cell_range_t and prtl_slice_t; use of implicit size_t is minimized

@haykh
Copy link
Copy Markdown
Collaborator Author

haykh commented Feb 25, 2026

@alisagk could you add a comment in the main message on changes to GR axes bcs?

haykh and others added 30 commits April 27, 2026 11:24
Aphi computation compatible with GPU aware mpi off
Consistent Integer Sizes across different categories
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment