ORB5  v4.9.4
Production versions

List of the different tagged versions of the code.

Note
This page was automatically generated by script generate_dox.py.

The following table lists all the tagged versions of the code with a brief description. More information can be obtain by typing:

git show vX.Y.Z

where vX.Y.Z is the tag name. Please, refer to Version-number philosophy Version-number philosophy for a short documentation of the versioning system used here.

Version Date Changes
v4.9.4 2025-02-13 [4.9.4] Add docs for PSZS. Fix include
v4.9.3 2025-02-07 [4.9.3] Fix bug that was introduced in previous fix (code would hang if nclones>1 and EM when writing checkpoint)
v4.9.2 2025-02-06 [4.9.2] Bugfixes for pullback (threads and GPU), fix Leonardo env
v4.9.1 2025-02-03 [4.9.1] Leonardo environment fix
[4.9.0] PSZS diagostics + further F0 options + symplectic energy diagnostics + new SI profiles option & new QN options
v4.9.0 broken version git subrepo pull (merge) library/futils
subrepo: subdir: library/futils merged: e9d9aeb5 upstream: origin: ssh://git@c4science.ch/diffusion/FUTILS/futils.git branch: master commit: 68c9e022 git-subrepo: version: 0.4.1 origin: https://github.com/ingydotnet/git-subrepo commit: a04d8c2
v4.8.0 2024-08-21 Add alternatives to the use of pptransp for creating the RHS
This version adds two alternatives to the pptransp algorithm: - The local DFT method, which computes partial and local DFTs before reduce/scatter them - New MPI derived types to perform parallel matrix transpose without the use of buffers.
v4.7.1 broken version H5checkpoint: Add 'dat_' prefix to h5 checkpoints filenames
v4.7.0 broken version Merge branch 'h5new_rb' (T4002)

| v4.6.3 | broken version | nl_addp2: Pressure terms (lowest order B_|| drift cancellation), (from BFM)
| | v4.6.2 | broken version | calculate brotB for CHEASE equilibrium (from BFM)
| | v4.6.1 | broken version | Rename input/ to inputs/ to avoid clash with autowritten input file
| | v4.5.1 | 2022-02-24 | Fix bug with the generation of the documentation
| | v4.5.0 | 2021-11-22 | v4.5.0: Allow linear collisional simulations
| | v4.4.1 | 2022-02-23 | Fix missing action when nfilt1 < 0
| | v4.4.0 | 2021-10-12 | v4.4.0: ECRH/ECCD source feature
| | v4.3.1 | 2021-04-27 | v4.3.1: Support for MPI F2008 bindings
| | v4.3.0 | 2020-11-06 | Num_f0: Add f0 features: numerical and extra
* slowing-down distribution * numerical distribution functions * various f0 diagnostics
Authored mainly by Thomas and Francesco | | v4.2.0 | 2020-09-30 | Improvement of the conserving Krook buffer + add the possibility to not kill w-weights for markers leaving the simulation domain on the outer edge. This option is needed to ensure global conservation of particles
| | v4.1.0 | 2020-09-15 | v4.1.0: pomp: Support mixing of OpenMP (host) and OpenACC (device), active for host QuadTree
| | v4.0.0 | 2020-09-01 | Tag v4.0.0 release
| | v3.6.0 | broken version | Merge flux3d: new 3d diagnostics:
* calculated from the following moments: ** radial heatflux, radial particle flux, radial parallel momentum flux ** density (no gyroaverage), v// moment, v//^2 moment, vperp^2 moment, ** radial f0 heat flux, radial f0 particle flux, radial f0 paralllel moment flux * deposited to grid, and output via 3D spline coefficients | | v3.5.0 | 2019-09-26 | Port hybrid model to GPU
| | v3.4.4 | 2019-09-11 | Fix phibar/=0 at the edge
| | v3.4.3 | 2019-08-20 | Complete bug fix abfe8c1
| | v3.4.2 | 2019-06-26 | Fix auxiliar equilibrium quantity resolution
| | v3.4.1 | 2019-06-12 | Fix bug in 3D phase space diagnostics not showing the correct diag name
| | v3.4.0 | 2019-06-03 | Implement buffer at the radial outer edge to damp df
This buffer is a naive Krook operator damping df without any conservation. It is similar to the one implemented in GENE [Goerler et al., J. Comput. Phys. (18), 230 (2011)].
This buffer only works when the fixed heat source is activated, i.e. when nsel_fixed_heat_source is set to True. The buffer rate is defined by buffer_rate and the buffer width is set by the parameter buffer_edge, which sets the left boundary of the buffer in s (the right boundary is always 1). | | v3.3.0 | 2019-06-03 | Introduce sampling diagnostics in phase space (psi, v^2)
The diagnostic frequency is set by nfreq_sampling and the bins in psi and v^2 are respectively set by nbin_sampling_psi and nbin_sampling_v2.
The diagnostics compute the binning of the following quatities in the (psi, v^2) plane: - Number of particles - Phase space volume of the bin - p and w weights - df and f0 - w^2 - w_min and w_max | | v3.2.1 | 2019-05-01 | Fix antenna field for n>0
| | v3.2.0 | 2019-04-17 | Add 3D guiding center sorting
| | v3.1.2 | 2019-03-15 | ***Brakes reproducibility* Fix inconsistency of field-aligned filter in between matrix and RHS**
| | v3.1.1 | 2019-03-04 | Update datn file after checkpoint/restart has been written
| | v3.1.0 | 2019-02-28 | Fix bug in phibar diagnostic for sfmin/=0
| | v3.0.1 | 2019-02-05 | Fix OpenMP bug in variance diagnostic
| | v3.0.0 | 2018-12-12 | **= Release notes for v3.0.0 These notes summarize the changes made in ORB5 v3.0.0.**
== New Features * OpenACC: ORB5 is now GPU enabled. The GPU version of the code is obtained by activating OpenACC compilation: > make OPENACC=TRUE Note: The OpenACC version only works with the PGI compiler (version <= 17.5 See discussion here) * Parallel I/O: In addition to the usual orb5_res.h5 output file, a new file orb5_res_parallel.h5 is written in parallel to diagnose partitioned variables such as 3D fields. Note: HDF5 library must be compiled with –enable-parallel flag. * Run info: Now the commit hash //as well as// the git diff and the module list are stored in the hdf5 file.
== Changes in the input variables Please, check your input files for the following changes: * New input variable nl_verbose to control the verbosity of the standard output (default is .false.). * nfreq_omega2d has been removed because it has no effect in the code * The routine used to set the background potential now uses the input variable sreverse_smooth instead of a hard coded value of 0.1. Note that the hard coded value is the same has sreverse_smooth default value. Be careful if you changed sreverse_value in your input file.
== New folder organization for the input files There are now three folders containing respectively the input files for the Jenkins tests, the publications, and the technical reports.
== New futils repository The futils repository has been changed to now use the official SPC git repository. The new futils version is now compatible with both hdf5 1.8 and 1.10. Please recompile your libraries using: > make cleandependencies && make dependencies
== Implementation changes * All necessary fields are stored in work_temp (no more field is evaluated on-the-fly in the push loop) * Field evaluation and gyro-averaging stages have been redesigned to reduce the memory footprint of the Larmor points data structure. * Many unused variables and functions have been removed * The error function in collision has been replaced by the Fortran intrinsic one
== Several minor bugfixes | | v2.x | broken version | Fixed bug in restart for fluid electrons
| | v2.9.4 | broken version | Fixed bug in restart for fluid electrons
| | v2.9.3 | 2018-11-28 | Fix bug with bin number computation in fixed heat source and Krook NC
The bin number was computed from 0 instead of 1 leading to a shift in the bin number and an accumulation in the first bin due to the min/max condition.
The bug was responsible for the density problem with the fixed heat source. | | v2.9.2 | 2018-08-02 | Fix error in the computation of the corrected canonical toroidal momentum
There was a superfluous m/q factor in the computation of the corrected canonical toroidal momentum. | | v2.9.1 | 2018-07-31 | Fix gyro_apar bug
| | v2.9.0 | 2018-07-10 | Fix MPI and OpenMP parallelization
- Some diagnostics have been fixed so that they don't depend anymore on MPI parallelization. - OpenMP directives have been debugged so that the output of all test cases is identical with or without OpenMP. - coll_ii_{1,4} initial perturbations have been fixed. | | v2.8.0 | 2018-06-20 | Unify sorting routines
| | v2.7.0 | 2018-06-08 | Read mystop file every 30 seconds at most frequent
| | v2.6.5 | 2018-06-07 | Fix bug in the source module for the 2-weights scheme
There was a mix up between f0, and zf0 which are respectively the value of the distribution at the particle position and the p weight. | | v2.6.4 | 2018-06-06 | Fix bugs in the upgraded hybrid model preventing it to run
Two bugs are actually solved in this commit: - There was an inconsistency in part_grid's interface preventing it to run correctly the passing charge deposition leading to the original hybrid model. - There was a switch between sorted and non sorted attributes in the passing charge deposition. | | v2.6.3 | 2018-06-06 | Fix bug in fixed heat source conservation routine
There was a typo preventing the matrices related to the conservation routine to be ppsummed. | | v2.6.2 | 2018-05-31 | Fix bug in edge loss diagnostics
The outer and inner edge diagnostics were inverted for symmetric equilibria. | | v2.6.1 | 2018-05-22 | Bug fix in particle initialization for nptot>2.1G
For large number of markers, a missing integer*8 was missing. | | v2.6.0 | 2018-05-01 | Introduce separate heating routine based on the existing fixed heat source
The improved fixed heat source has the following features: - It gets its radial profile from a file - A moment conservation similar to the Krook is implemented to ensure that no density, parallel momentum, or zonal structure are injected up to machine precision - A new input in the attributes namelist, heat_edge_lim, is introduced to stop the heating after a certain radial position. | | v2.5.2 | 2018-03-21 | Fix bug for PGI compiler in source_diagnostics
| | v2.5.1 | 2018-03-13 | Fix bug causing end of run by mystop hanging
Solves T1923 | | v2.5.0 | 2018-03-05 | Add Python tool to generate radial profiles for the heat source
| | v2.4.4 | 2018-03-05 | Fix bug preventing correct initialization of the source diagnostics
| | v2.4.3 | 2018-03-02 | Decrease consistency checks tolerance
- Unknown selectors are now preventing the simulation to run instead of using default value. - Physical input inconsistencies are also critical. The user is adviced to use the dry-run feature when designing a new input file. - (Numerical input inconsistencies can still be recovered.) | | v2.4.2 | 2018-03-02 | Fix bug for DEBUG=TRUE
| | v2.4.1 | 2018-03-02 | Fix bug in sources causing crashes with GNU compiler
| | v2.4.0 | 2018-03-01 | Add uniform set of diagnostics for the heat sources and Krook
| | v2.3.2 | 2018-01-12 | Repair dry-run feature
| | v2.3.1 | 2018-01-04 | Fix critical bug in s2rad_adhoc
(avoid division by 0) | | v2.3.0 | 2017-12-22 | Cleanup changes of basis
| | v2.2.4 | 2017-12-21 | Fix bug in new parmove
The MPI data type was wrong when moving logicals (pic3), producing bad results in particular around s_push. | | v2.2.3 | 2017-12-20 | Fix B-spline basis transformation with control variate enabled
v2.2.2's bug fix broke control variate, which is now repaired. | | v2.2.2 | 2017-12-11 | Fix bug with B-spline basis transformation for applying BC
This commit solves T1712. | | v2.2.1 | 2017-12-07 | Fix allocation check in parmove
| | v2.2.0 | 2017-12-07 | Modify marker initialization
- Each task is now initializing markers in all phi domain, and parmove takes care of sorting them across subdomains. It avoids every task computing all markers and retaining only local ones. - The initialization is now repeatable, even for uniform phi loading. - Hammersley bases are now permuted for each species, in order to avoid having two ions species using the same sequence. | | v2.1.5 | 2017-11-29 | Fix bug with MPI hangs when writing checkpoint files
This commit solves T1697. | | v2.1.4 | 2017-11-28 | Fix bug leading to MPI hangs when the run must finish
This commit solves T1692. | | v2.1.3 | 2017-11-22 | Fix bug with jdote diagnostics for linear runs
The linear ExB contribution is exploding after some time because it is not consistent for linear runs. Indeed, the perturbed E field which is neglected linearly is still accounted for in the diagnostics.
This commit solves T1673. | | v2.1.2 | 2017-11-22 | Fix bug in time output after a restart
The bug was causing the time output to be not consistent after a restart if the previous run was not terminated by the condition step > nrun.
This commit solves T1672. | | v2.1.1 | 2017-11-09 | Fix Makefile for profiling
| | v2.1.0 | 2017-11-08 | Unified Makefiles
Everyone can now use the file Makefile that is automatically including the platform-specific Makefile in src/mkincludes. See online documentation for more details. | | v2.0.1 | 2017-11-08 | Fix bug where phibar(s) has strange behaviour at some radial points
This commit solves T1639. | | v2.0.0 | 2017-11-03 | ORB5 v2.0.0 release
These notes summarize the changes made in ORB5 v2.0.0. NOTE: See RELEASE file for a more detailed description.
New features ============ - Automated tests with Jenkins - Dry runs - Derived types for input declaration - Reorganization of the hdf5 result file (/parameters only) - New namelists - Input converter - Documentation - Code cleanup
Code restructuration ==================== - Remove unused variables - Remove unused subroutines - Rename some variable to a more explicit name - Create namelists and change certain variable's namelist | | v1.5.2 | 2017-11-01 | Fix OpenMP bug in sources causing a crash in debug mode
Not only the code would crash in debug mode but it wasn't performing the OpenMP reduction correctly. | | v1.5.1 | 2017-10-27 | Fix bug in heating operator
The heating operator now heats every kinetic species. This commit and commit 2734532 solve a bug introduced in commit b8dcb5.
This commit solves T1619. | | v1.5.0 | 2017-09-27 | Add new EM solver
| | v1.4.2 | 2017-08-31 | Fix bug T1487 (Code crashing when using nsel_setrho_method = 2, 3, or 4)
To solve the bug, the set_default_sorting routine is now called before reading the namelist and some values needed for the sorting are now computed after the input check in the psort_init routine. | | v1.4.1 | 2017-08-23 | Fix diagnostics bug causing repeated values
This bug fix solves T1482. | | v1.4.0 | 2017-08-17 | Add color scheme, optimize threads reduction
| | v1.3.5 | 2017-08-09 | Fix bug with 2D diagnostic moment2d_avg
The code was crashing if the radial number of bins was higher than the poloidal number of bins. This was due to an error in the checking proccess to ensure that the particles are actually inside the diag. domain.
This commit fixes T1471. | | v1.3.4 | 2017-08-09 | Fix bug with 3D diagnostics making the code crash
Some of the 3D diagnostics were not propoerly allocated resulting in a crash when they were used.
The commit fixes T1455. | | v1.3.3 | 2017-08-02 | Fix bug: array was not properly initialized for multispecies
The nbsubgroup array was explicitly declare of size 2 which is not consistent with the multi species feature. The array is now declared as allocatable and allocated of size NSPECIES_MAX.
This commit fixes T1407. | | v1.3.2 | 2017-07-18 | Fix bug in store_commit_hash when not using bash for compilation
The makefile was originally designed using the bash shell. As a consequence, some of the functionalities were not ensured if another shell was used. To solved the problem the default shell has been defined as bash in the makefile.
Furthermore, a default value has been assigned to a variable in store_commit_hash subroutine to avoid crashes in debug mode if the commit hash wasn't defined.
This commit solves ticket T1430. | | v1.3.1 | 2017-07-15 | Add OpenMP and SoA structure
| | v1.3.0 | broken version | Remove OpenMP from compute_reduced_larmor_weights
| | v1.2.1 | 2017-07-10 | Fix bug when using the Larmor array
Now the Larmor attributes are computed at the right place making the diagnostics correct. Same results are found with and without Larmor array structure. | | v1.2.0 | 2017-05-18 | [NewHybridModel]: Introduce the new updated model
This merge introduces the new uptaded hybrid model based on Idomura, JCP 313 (2016). In this updated version, passing electrons are taken into account for the charge deposition but only for n=0, m=0. The other modes, n=0, m ~=0, are treated adiabatically. A future update will consist in taking the flux surface average instead of a Fourier filter to be more consistent with que quasi-neutrality equation.
The new hybrid model is selected using nsel_push_trap_only = 1. Note that this option will be renamed in a future clean-up.
This merge also removes unused parameters nsel_load_trap_only and nsel_push_trap_only = 3. | | v1.1.1 | 2017-04-11 | Fix bug where EM variables were not initialized to 0 in ES mode
| | v1.1.0 | 2017-04-05 | Add profiler module for profiling ORB5
This module is a simple interface to Score-P adding simple routines to time portions of the code. Basically, it allows to: - Start and stop timing recording with profiler_on and profiler_off methods, - Define a specific region of code to time with profiler_region_begin and profiler_region_end. See code documentation for more information about these methods. | | v1.0.1 | 2017-04-03 | Fix hdf5 bug for jdote_apa causing the code to hand
| | v1.0.0 | 2017-03-02 | First production version since merge that has functioning electromagnetic version and control variates noise reduction scheme.
| | v0.1.0 | 2016-11-04 | First release of ORB5 merged version
This version is still under development/testing and may not be suitable for production runs. For example (not exhaustive list): -Control variate buggy for the solver in Fourier -Electromagnetic physics only working with old solver -Symplectic solver not included |

Checking out a tagged version

If you already have the git repository on your machine, try:

git checkout vX.Y.Z

where vX.Y.Z is the tag name. If you don't have a git version yet, follow the instructions for setting one up in Setting up ORB5 repository documentation.

Version-number philosophy

The version numbers of ORB5 follow the standard described by Semver. It is composed of three digits preceded by the letter v:

vX.Y.Z

where, according to the standard:

  • X: version when you make incompatible API changes,
  • Y: version when you add functionality in a backwards-compatible manner, and
  • Z: version when you make backwards-compatible bug fixes.