GS2 v8.1 is our first feature release using the new git + Bitbucket workflow, and it's a big one! It's over 280 pull requests - and over 2000 commits - ahead of the current bugfix release 8.0.6.
v8.1 offers many new features, enhancements and performance improvements, along with significant expansion of testing and documentation, and lots of bug fixes!
This release enables larger, faster, more robust simulations, without changing the familiar interface for users or developers. But since this is a feature release, we have allowed some changes that might require user changes to input or analysis scripts, or that may alter results slightly - so do check out of the breaking changes section below.
write_fluxes
and write_fluxes_by_mode
to true for nonlinear runs
(nonlin=true
) and to false for linear runs. This should hopefully lead to more
intuitive behaviour. If you have suggestions for extra smart defaults then please
report this in an issue.simple3D
, which has the form
D_hyper3D * (|kperp|/ max |kperp|)^P_hyper3D
that respects continuity along
the field line, and does not require MPI communication.nx
, ny
and
wavenumber resolution nakx
, naky
(provided the anti-aliasing
constraint is met), making it easier to select sweetspots (... but can
still define only one of these and let GS2 choose the other).npassing
in the le_grids_knobs
namelist.include_explicit_source_in_restart
in the init_g_knobs
namelist to false.seed
in the knobs
namelist. This makes it easier to exactly reproduce runs.nc_sync_freq
in
gs2_diagnostics_knobs
../gs2 --help
for more
details.ncdump
.field_option =
'local'
for nonlinear simulations as the initialisation can be a
factor of 20x faster than with field_option = 'implicit'
.<run_name>.used_inputs.in
, is written
early in the run. This stores the values of all input configuration
parameters used in the run. This allows users to check which
defaults have been applied etc.USE_NETCDF_COMPRESSION=on
to make. This can
reduce the size of restart files by a factor 2. This has been
enabled by a switch to the NETCDF4 file format. Existing analysis
tools should continue to work however this generally means one
should not access the netcdf files whilst the run is ongoing by
default. For example, running ncdump
on an in use file is likely
to return a HDF error. To avoid this and allow access during a run
one can set HDF5_USE_FILE_LOCKING=FALSE
in the environment
(e.g. export
this in bash)*.'hybrid_electron'
, has been introduced and
results in an electron type for which the passing particles are
adiabatic and the trapped are kinetic. This has been tested but is
currently considered experimental.We've made significant improvements to our documentation:
master
and next
.We've expanded our test suites and improved our building and continuous integration frameworks.
utils
and
Makefiles
are now stored during the build process, making it easier to
track down bugs.le_integrate
testsfields_local
benchmark8.1 is not really a performance release. We have two big performance improvements coming up in future releases - an improved field solve, and better data layout - but 8.1 still includes some smaller improvements:
dump_response = T
and read_response = T
. This will save the
response matrices from each timestep and reuse these when revisiting
a timestep size. You may wish to set response_dir
to a location to
store these files to avoid a large number of files in the main run
directory.Here are a selection of the more notable squashed bugs. We've:
ceq
and leq
geometriesbuild_gs2
scriptbouncefuzz
parameter. bouncefuzz
adds a small tolerance to
the inequality determining whether a pitch angle is forbidden, to account for
roundoff error in lambda
and B
. Reducing bouncefuzz
makes the calculation
more accurate, so any changes will actually be a bugfix. This was introduced
to prevent a numerical instability. nperiod > 1
.Here are a list of changes that might need users to alter their input/analysis scripts, or that might change results:
opt_redist_init
is no longer an option - we only support the optimal
version of the redistribution initialization routine. Users need to
remove opt_redist_init
from layout_knobs
namelist in input files.rplot
,
zplot
, rprime
and zprime
. This has the potential to break analysis
scripts. write_fluxes
and write_fluxes_by_mode
now
default to true
for nonlinear runs and false
for nonlinear runs.