Published December 10, 2025 | Version v5.4.0
Software Open

Vlasiator

Description

This new Vlasiator release adds:

  • Full support for GPU computation on HPC environments to Vlasiator, targeting both Nvidia (CUDA) and AMD (HIP) platforms.
  • A subgrid-scale wave-particle scattering model (implemented as velocity space diffusion) has been added for magnetosheath waves.
  • Vorticity and temperature / pressure anisotropy can now be taken into account for mesh refinement criteria.
  • Improved the code's runtime resilience by including a mechanism to write frequent recovery files using a circular buffer scheme.
  • The code is now ported (or portable) to all EuroHPC machines, as of December 2025.
  • In addition, there are a large number of bugfixes to time-varying inflow, system boundary handling, ionosphere stability and overall quality of life.

More detailed list of what's Changed:

  • Added blocks gather code for FALLBACK vectors by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/444
  • Vec8Simple by @ykempf in https://github.com/fmihpc/vlasiator/pull/445
  • Some openacc experiments in the acceleration solver. by @ursg in https://github.com/fmihpc/vlasiator/pull/446
  • Support of MPI ranks sharing GPUs. by @ykempf in https://github.com/fmihpc/vlasiator/pull/447
  • Restructured OpenACC acceleration solver to parallelize over columns. by @ursg in https://github.com/fmihpc/vlasiator/pull/448
  • Cudasiator mutator, split plm/ppm/pqm etc back into .cuh files by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/595
  • Cudasiator realf vectorclass by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/597
  • Implementation of CUDA streams (one per thread) by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/616
  • Cudasiator by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/790
  • Vlasiator gpu by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/799
  • Added testpackage script for mahti_cuda by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/803
  • ARCH fixes to LUMI-G compilation, squelch some warnigns, added NOMAD … by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/805
  • Cudasiator pre-NOMAD-Hackathon fixes by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/806
  • Cudasiator preparation for the NOMAD hackathon by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/808
  • Fix project initialization fixing due to bogus free by @ursg in https://github.com/fmihpc/vlasiator/pull/809
  • Deactivated xnack on LUMI, added trial config for all datareducers by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/810
  • Add -march=znver3 to lumi gpu makefiles by @ursg in https://github.com/fmihpc/vlasiator/pull/811
  • Don't NACK in the lumi gpu testpackage script by @ursg in https://github.com/fmihpc/vlasiator/pull/813
  • Recapacitate splitVectors in acceleration if they are too small. by @ursg in https://github.com/fmihpc/vlasiator/pull/812
  • Added method for applying reservation and call it after LB. Also swit… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/814
  • Stop your damn timers! by @lkotipal in https://github.com/fmihpc/vlasiator/pull/815
  • Fix timer by @lkotipal in https://github.com/fmihpc/vlasiator/pull/816
  • Fix arch-interface issues in DRO and add HIP kernel launch error checking by @hokkanen in https://github.com/fmihpc/vlasiator/pull/817
  • Fix kernel launch issue and dynamic shared memory type size issue by @hokkanen in https://github.com/fmihpc/vlasiator/pull/819
  • Fix issue with restart_read testpackage test in GPU branch by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/835
  • Gpu fix restarts, update to dev by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/837
  • Prefer --offload-arch over the deprecated --amdgpu-target and fix commit parsing in Makefile. by @sfantao in https://github.com/fmihpc/vlasiator/pull/844
  • Use multiple handlers of device mesh wrapper to avoid relocatable code device builds by @sfantao in https://github.com/fmihpc/vlasiator/pull/868
  • Avoid rdc device code mk2 by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/872
  • Vlasiator gpu fix cpu compilation and running by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/922
  • Purge all remaining references to velocity mesh refinement by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/923
  • Vlasiator gpu bring up to date with dev by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/924
  • Vlasiator gpu fix timevarying by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/928
  • fix gpu translation DZ access from pencils by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/929
  • Vlasiator_gpu update on LUMI to 23.09 by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/936
  • Fix compute-time loop by @hokkanen in https://github.com/fmihpc/vlasiator/pull/938
  • Updated Mahti_cuda makefile to use gcc-10.4.0 and cuda-12.1.1 by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/937
  • Reverting submodule urls to https instead of ssh, for easier accessib… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/945
  • Gpu update - new block adjustment algorithm and plenty of other improvements by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/958
  • Gpu remove map add by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/962
  • Fix GPU branch crash on several MPI Tasks by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/965
  • Optimizations to translation memory ordering, and fix to broken ifdefs by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/972
  • Vlasiator gpu hashinator update by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/979
  • GPU: Update Hashinator interface to use templated prefetch deactivations by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/978
  • Removed block offset evaluation kernel in ACC; included functionality… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/980
  • Add OMP support for ARCH host backend by @hokkanen in https://github.com/fmihpc/vlasiator/pull/969
  • Vlasiator gpu branch, fix dynamic AMR operations by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/981
  • Purged config references to the GPUBLOCKS / CUDABLOCKS parameter and … by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/983
  • Gpu single trans kernel launch dev by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1021
  • Split cell transfer into a number of passes in load balance. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1017
  • Different trans thread guide by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1032
  • Update vlasiator to use updated fsgrid constructor by @cscjlan in https://github.com/fmihpc/vlasiator/pull/1019
  • Lumi 2403 makefile by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1031
  • GCC 13.2.0 carrington by @ykempf in https://github.com/fmihpc/vlasiator/pull/1035
  • Update DCCRG commit by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1037
  • Caching of DCCRG <-> FSgrid coupling by @veetihaaja in https://github.com/fmihpc/vlasiator/pull/1012
  • Better documentation for alpha1 constituent weighting by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1001
  • Fix check vlasiator cfg script by @ykempf in https://github.com/fmihpc/vlasiator/pull/1024
  • Add jemalloc purge calls to after shrink_to_fit and deallocation of r… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1027
  • Makefile (and small library build script fix) for Meluxina. by @ursg in https://github.com/fmihpc/vlasiator/pull/1041
  • Use curl instead of wget in build_libraries.sh by @ursg in https://github.com/fmihpc/vlasiator/pull/1047
  • Make chunk data script use 5 GB chunks, for Allas by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1046
  • Correct EGradPe/derivatives communications in subcycling by @ykempf in https://github.com/fmihpc/vlasiator/pull/1038
  • fsgrid RAII by @lkotipal in https://github.com/fmihpc/vlasiator/pull/918
  • No L2 NOT_SYSBOUNDARY EXB nudge by @ykempf in https://github.com/fmihpc/vlasiator/pull/1050
  • GradPe fix cleanup by @ykempf in https://github.com/fmihpc/vlasiator/pull/1051
  • Build testpackage data with new gcc version on carrington. by @ursg in https://github.com/fmihpc/vlasiator/pull/1054
  • Fixed typo in documentation. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1056
  • Reverse direction when stepping back to hit exact radius when tracing. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1057
  • New amr criteria by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1022
  • Multipop pressure anistropy by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1052
  • Ghost translation dev merge by @ursg in https://github.com/fmihpc/vlasiator/pull/1060
  • Ghost translation by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1006
  • Dccrg RAII by @lkotipal in https://github.com/fmihpc/vlasiator/pull/953
  • Multipop pressure anistropy by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1061
  • Update C++ standard from C++17 to C++20 in Makefile.lumi_gnu_2403 by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1063
  • Fix a broken error message in pencil construction. by @ursg in https://github.com/fmihpc/vlasiator/pull/1071
  • Slope limiter pass by reference by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1069
  • Limit tracing volume by @ykempf in https://github.com/fmihpc/vlasiator/pull/1055
  • Simple matplotlib plotter to help setting VDF parameters. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1073
  • Inspection script mechanism to use srun overlap. Works on LUMI at least. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1068
  • Node hours report by @ArnaudLalague in https://github.com/fmihpc/vlasiator/pull/1053
  • Use ARCH=arch in VLSV build by @ykempf in https://github.com/fmihpc/vlasiator/pull/1075
  • Activate report grid memory consumption by @ykempf in https://github.com/fmihpc/vlasiator/pull/1020
  • Vlasiator gpu by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1074
  • Warning to check dd_chunk.err in the file handling scripts. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1090
  • update DCCRG submodule by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1089
  • Fix order for running test printouts in CI by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1097
  • Add support for multiple boxes where refinement is allowed by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1095
  • Reduce some specific timers that cause a wide spread of phiprof files. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1098
  • Reorder memory report lines in logfile. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1094
  • GPU improved launch parameters, memory usage, etc. by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1100
  • Fix un/refinement not working if no boxes are defined by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1105
  • CI flag builds in dev by @ykempf in https://github.com/fmihpc/vlasiator/pull/1104
  • Periodically overwriting restarts by @ykempf in https://github.com/fmihpc/vlasiator/pull/1092
  • Citations file to repo by @ykempf in https://github.com/fmihpc/vlasiator/pull/1067
  • Hile makefiles by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1107
  • Improve documentation of EgradPe term in field solver code. by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1106
  • Revert addition of std::format from PR #1094 by @ursg in https://github.com/fmihpc/vlasiator/pull/1101
  • Add SIGTERM signal handler, for slurm preemption. by @ursg in https://github.com/fmihpc/vlasiator/pull/1059
  • Remove vec from fluxfunction and fix compilation by @ykempf in https://github.com/fmihpc/vlasiator/pull/1029
  • Fix refine/coarsen logging by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1036
  • Reorder acceleration preparations so that always-on-cpu tasks are sep… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1112
  • Typo fix by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1111
  • Further improvements to egradpe documentation based on user feedback. by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1114
  • Return to considering has_content blocks of spatial neighbours at all… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1115
  • Alternative Fieldsolver magnetic field boundary cell parallel approach by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1110
  • Sub-grid model for pitch-angle diffusion by @MaximeII in https://github.com/fmihpc/vlasiator/pull/846
  • Fix generate ref data on Carrington by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1117
  • SysBoundary communicate VDFs only in smaller neighborhood by @ykempf in https://github.com/fmihpc/vlasiator/pull/1049
  • Fix pop_1dmuspace output reducer which was corrupting some testpackag… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1119
  • prevent VBC shrink on AMD-G (still not working), switch lumi_hipcc to… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1118
  • Add CI action for generating reference testpackage data on Ukko DGX by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1120
  • Correct dependency name in generate reference data action by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1123
  • Fix gpu moments by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1124
  • Bin pencils by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1096
  • Rewritten Acceleration solver for GPUs by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1125
  • Vlasiator GPU to propagate WID3 at once in acceleration as well by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1129
  • GPU pitch angle diffusion by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1128
  • Dev alfven double normalization fix by @veetihaaja in https://github.com/fmihpc/vlasiator/pull/1136
  • Remove useless loop by @ykempf in https://github.com/fmihpc/vlasiator/pull/1138
  • Fix comment typos in parameters.cpp by @OssiLeopold in https://github.com/fmihpc/vlasiator/pull/1134
  • Gpu optimization by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1141
  • GPU bin pencils by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1143
  • Vlsvdiff WID fixes by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1151
  • Add Hile-G TP build CI job by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1132
  • Ci docker and artifact version updates by @ursg in https://github.com/fmihpc/vlasiator/pull/1165
  • At BSC, run risc-v CI on pioneer cluster instead of synth-hca by @ursg in https://github.com/fmihpc/vlasiator/pull/1168
  • Encapsulate analysator to venv and let analysator handle its dependencies. by @alhom in https://github.com/fmihpc/vlasiator/pull/1166
  • Fix multi-gpu buffer allocations issue by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1142
  • HILE-C CI scripts by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1156
  • Add Mahti gcc_build makefile to support library building scripts, tra… by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1145
  • Scaling results run on Mahti, with extracted data, plotting scripts and resulting plots. by @ykempf in https://github.com/fmihpc/vlasiator/pull/1131
  • Phiprof acc chunk fix by @markusbattarbee in https://github.com/fmihpc/vlasiator/pull/1159
  • Add width specifier to fscanf to fix stack-buffer-overflow by @kstppd in https://github.com/fmihpc/vlasiator/pull/1121
  • Fix incorrect vorticity (Fixes #1148) by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1149
  • Refine report improvements by @lkotipal in https://github.com/fmihpc/vlasiator/pull/1147
  • Added warning in inflow.cpp loadFile() by @lassejsc in https://github.com/fmihpc/vlasiator/pull/1195
  • Added a GPU memory manager by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1170
  • Add option to disable finite differencing at sysboundaries by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1190
  • Reapply initial state in boundary cells after setProjectBField by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1193
  • Do not reapply solved B components in boundary cells except at simulation start by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1194
  • Copy fsgrid moments to outflow after filtering them by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1202
  • Synchronize mpiGrid and FsGrid after inflow update by @JonasSuni in https://github.com/fmihpc/vlasiator/pull/1204
  • Improvements to GPU memory manager by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1199
  • Add a friendly banner at the top of Makefile, for no reason at all. by @ursg in https://github.com/fmihpc/vlasiator/pull/1198
  • Implement Vectorclass Supporting SVE Instructions by @lnghrdntcr in https://github.com/fmihpc/vlasiator/pull/1127
  • GitHub pages Doxygen generation by @alhom in https://github.com/fmihpc/vlasiator/pull/1205
  • Remove MacOS from CI builds, try building on github arm64 instead. by @ursg in https://github.com/fmihpc/vlasiator/pull/1206
  • Fixed a bug in GPU memory manager by @MikaelHuppunen in https://github.com/fmihpc/vlasiator/pull/1197

New Contributors

  • @sfantao made their first contribution in https://github.com/fmihpc/vlasiator/pull/844
  • @cscjlan made their first contribution in https://github.com/fmihpc/vlasiator/pull/1019
  • @MaximeII made their first contribution in https://github.com/fmihpc/vlasiator/pull/846
  • @MikaelHuppunen made their first contribution in https://github.com/fmihpc/vlasiator/pull/1128
  • @OssiLeopold made their first contribution in https://github.com/fmihpc/vlasiator/pull/1134
  • @lassejsc made their first contribution in https://github.com/fmihpc/vlasiator/pull/1195
  • @lnghrdntcr made their first contribution in https://github.com/fmihpc/vlasiator/pull/1127

Full Changelog: https://github.com/fmihpc/vlasiator/compare/v5.3.1...v5.4.0

Notes

If you use this software, please cite it as below.

Files

fmihpc/vlasiator-v5.4.0.zip

Files (14.5 MB)

Name Size Download all
md5:91b805f7eaad5e1ce44ad68f4c461c59
14.5 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/fmihpc/vlasiator/tree/v5.4.0 (URL)

Software