Previous versions
Changes between version 3.1 and 4.0
Changes to the Makefile
Some changes have been made to the Makefile. These are documented here. The following compile-time defines have been added to the Makefile:
- NO_IO
- PARTICLE_ID
- PARTICLE_ID4
- COLLISIONS_TEST
- PHOTONS
- TRIDENT_PHOTONS
- PREFETCH
The following compile-time defines have been removed from the Makefile:
- COLLISIONS
- SPLIT_PARTICLES_AFTER_PUSH
- PARTICLE_IONISE
Major features and new blocks added to the input deck
- CPML boundary conditions
- Thermal boundary conditions
- Collisions
- QED
- Subsets
- Ionisation
- Single-precision output
- Multiple output blocks
- Particle migration
Additional output block parameters
The following parameters have also been added to the “output” block (see here):
- dump_first
- dump_last
- force_first_to_be_restartable
- ejected_particles
- absorption
- id
- name
- restartable
Other additions to the input deck
Finally, the input deck now has a method for writing continuation lines. If the deck contains a “" character then the rest of the line is ignored and the next line becomes a continuation of the current one.
Changes between version 4.0 and 4.3
Changes to the Makefile
Some changes have been made to the Makefile. These are documented here . The following compile-time define has been added to the Makefile:
- MPI_DEBUG
The following compile-time define has been removed from the Makefile:
- FIELD_DEBUG
Additions to the input deck
The following parameters have been added to the “control” block of the input deck:
- nproc{x,y,z}
- smooth_currents
- field_ionisation
- use_exact_restart
- allow_cpu_reduce
- check_stop_file_frequency
- stop_at_walltime
- stop_at_walltime_file
- simplify_deck
- print_constants
- The “restart_snapshot” parameter now accepts filenames
The following parameters have been added to the “output” block of the input deck:
- disabled
- time_start
- time_stop
- nstep_start
- nstep_stop
- dump_at_times
- dump_at_nsteps
- dump_cycle
- dump_cycle_first_index
- filesystem
- file_prefix
- rolling_restart
- particle_energy
- relativistic_mass
- gamma
- total_energy_sum
- optical_depth
- qed_energy
- trident_optical_depth
- The default value of “dump_first” is now “T”
The following parameter has been added to the “collisions” block of the input deck:
- collisional_ionisation
The following parameter has been added to the “qed” block of the input deck:
- use_radiation_reaction
The following parameter has been added to the “species” block of the input deck:
- immobile
The following parameters were changed in the “laser” block of the input deck:
- The “phase” parameter can now be time varying
- The “profile” parameter can now be time varying
The following parameters have been added to the list of pre-defined constants.
- nproc_{x,y,z}
- nsteps
- t_end
- cc
There has also been a new “output_global” block added to the input deck.
Changes in behaviour which are not due to changes in the input deck
- The species “drift” property is now applied to particles whilst the moving window model is active. In previous versions of the code, this property was ignored once the moving window began.
- Ionisation species now inherit their “dumpmask”. See here for details.
- Default values for ignorable directions were added. This change allows submitting 3D or 2D input decks to a 1D version of and 3D input decks to a 2D version of . Any references to y/z will be set equal to zero unless overridden by a deck constant. Other y/z values also assume sensible defaults, eg. 1 grid cell, 1 metre thick, etc.
- Automatic byte swapping is carried out by the SDF library. The library now checks the endianness of the SDF file and byte-swaps the data if required.
- “qed” blocks may now be present even if the code was not compiled using the “-DPHOTONS” flag. The code will only halt if “use_qed=T” inside the “qed” block.
- The code now checks for the Data directory in a file named “USE_DATA_DIRECTORY” before prompting at the command-line. This allows the code to be run without waiting for input at the command-line.
- The field and particle grids are now automatically written to SDF output files if they are needed.
- The Data directory may now contain a ‘
/
’ character.
Changes between version 4.3 and 4.8
Changes to the Makefile
Some changes have been made to the Makefile. These are documented here. The following compile-time define has been added to the Makefile:
- PER_SPECIES_WEIGHT
- NO_TRACER_PARTICLES
- NO_PARTICLE_PROBES
- PARSER_CHECKING
The following compile-time define has been removed from the Makefile:
- PER_PARTICLE_WEIGHT
- TRACER_PARTICLES
- PARTICLE_PROBES
Additions to the input deck
The following parameters have been added to the “control” block of the input deck:
- allow_missing_restart
- print_eta_string
- n_zeros
The following parameters have been added to the “output” block of the input deck):
- weight (synonym for particle_weight)
The following parameters have been added to the “output_global” block of the input deck:
- dump_first_after_restart
The following parameters have been added to the “subset” block of the input deck:
- skip, skip_
x,y,z
Changes between version 4.8 and 4.9
New capabilities
Version 4.9 adds significant new capabilities as follows:
- delta-f version: particle distributions can be expressed as $f_0 + f_1$ where $f_0$ is a specified background plasma and all simulation particles are used to describe the $f_1$ component, documented in .
- selectable field solvers: 3 new solvers have been added for fields, fully documented in .
Changes to the Makefile
Some changes have been made to the Makefile. These are documented in . The following compile-time define has been added to the Makefile:
- DELTAF_METHOD
- DELTAF_DEBUG
- USE_ISATTY
Additions to the input deck
The following alterations were made to the input deck:
- ioniz* (with a “z”) aliases have been added for ionis* keywords.
- y and z parameters can now appear in the input deck in EPOCH 1D and 2D.
A new deck block has been added. The particles_from_file block allows loading of custom particle data from raw binary data files. See for details. This block accepts the following parameters:
- species
- {xyz}_data
- w_data
- {xyz}_data
- id{4,8}_data
- offset
The following parameters have been added to the “control” block of the input deck (see ):
- maxwell_solver
- use_current_correction
The following parameters have been added to the “species” block of the input deck (see ):
- maxwell_solver
- number_density_back
- drift_{x,y,z}_back
- temp_{x,y,z}_back
- temp_{x,y,z}_back_ev
- temp_back
- temp_back_ev
The following parameters have been added to the “dist_fn' block of the input deck (see ):
- dir may now take the value mod_p
- restrict_mod_p
Changes not resulting from changes to the deck
- Lasers can be specified with time-varying frequency profile.
- The existing subset blocks can now be applied to field and derived grid variables. If spatial restrictions are used, subsections will be output, along with a corresponding grid. Note that these are not compatible with the “skip” parameter to subset blocks.
- The dist_fn block “range” keyword is now respected for spatial directions, allowing a spatial subset of the distribution function to be output directly.
- Some corrections were applied to calculation of thermal boundary conditions for particles.
- The load balancer may now be disabled by setting a 0 or negative threshold.
Changes between version 4.9 and 4.10
New capabilities
Version 4.10 adds the following new capabilities:
- Time varying particle injectors. See here
- Per-species particle boundaries. You can now specify bc_x_min and bc_x_max to a species block. This overrides the global boundaries for that species. See here
- Added “particles_per_cell” output diagnostic. See here
Changes between version 4.10 and 4.11
New capabilities
Version 4.11 adds the following new capabilities:
- Added time dependent moving window. No new input deck parameters have been added, but it is now possible to specify “window_v_x” to be a function that varies in time. See here
- If “print_constants=T” in the control block (see here) deck constants are now output to a separate file named “const.status”. This allows for easier post-processing.
- Added COMPILER=auto option to automatically detect compiler. See here
The following correction has been made:
- Fractional numbers of particles-per-cell now function as expected when used in conjunction with the moving window.
Changes between version 4.11 and 4.12
New capabilities
Version 4.12 adds the following new capabilities:
- Added “average_weight” output diagnostic. See here
- Removed the “PARTICLE_COUNT_UPDATE” Makefile flag and replaced it with a “use_particle_count_update” parameter in the control block. See here
- Added “use_flux_maxwellian” option to the “injector” block. See here
- Added “lehe_{x,y,z}” flags to the “maxwell_solver” option in the control block. See here
- Added “use_accurate_n_zeros” control block parameter. See here
- Added “custom” flag to the “maxwell_solver” option in the control block. See here and here
- Added the “WORK_DONE_INTEGRATED” Makefile flag and corresponding dumpmask directives “work_{x,y,z}” and “work_{x,y,z}_total”. These add a diagnostic for the work done on a particle by the electric field. See here and here.
Changes between version 4.12 and 4.14
New capabilities
Version 4.14 adds the following new capabilities:
- Added the “reset_walltime” flag to the control block. See here
- Changed the default value of “print_eta_string” to “T” in the control block.
- Added the ability to request an output dump at run time. See here
- Added the “window_stop_time” parameter to the window block. See here
- Added the “atan2” function to the maths parser. See here
- Added “dlb_maximum_interval” parameter to the control block. See here
- Added “dlb_force_interval” parameter to the control block. See here
- Added “balance_first” parameter to the control block. See here
- Added y and z versions of the “bc_x_min_after_move” and “bc_x_max_after_move” parameters to the window block. See here
- Added a “dump_at_walltimes” parameter to the output block. See here
- Added “walltime_start” and “walltime_stop” parameters to the output block and output_global block. See here and here
- Added “walltime_interval” parameter to the output block. See here
- Added the Higuera-Cary particle push. This can be enabled using the “HC_PUSH” Makefile flag. See here.
Changes between version 4.14 and 4.15
- Added averaging of “poynt_flux” and “ekflux” variables.
- The initial problem setup can now be load-balanced before any
particles are loaded. This enables some heavily imbalanced setups to
be run that were not previously possible.
- Added the “use_pre_balance” flag to the control block. See here
- Allow the load balancer to adjust the processor topology
- Added the “use_optimal_layout” flag to the control block. See here
- Added control block option “use_more_setup_memory” for controlling the way that species are setup. See here
- Added strided multipass digital current filtering (See
here).
This adds the following flags to the control block.
- smooth_iterations
- smooth_compensation
- smooth_strides
- Added persistent subsets. See
here. This adds the following
flags to the subset block
- persist_start_time
- persist_start_step
- Added loading of relativistic particle species using the
Maxwell-Jüttner distribution. See
here.
This adds the following flags to the species block
- use_maxwell_juttner
- fractional_tail_cutoff
- Added loading of particle species using an arbitrary distribution
function for sampling the momentum components. See
here.
This adds the following flags to the species block
- dist_fn
- dist_fn_p{x,y,z}_range
- Added “temperature_{x,y,z}” derived output variables to the output block. See here
Changes between version 4.15 and 4.16
- Added “number_density” aliases for “density” in the species and
- injector blocks (see here and
- here).
These aliases include:
- number_density for density
- promote_number_density for promote_density
- demote_number_density for demote_density
- number_density_min for density_min
- number_density_max for density_max
- number_density_back for density_back
Replaced “USE_ISATTY” Makefile flag with “NO_USE_ISATTY”. See here.
Added “NO_MPI3” Makefile flag. See here.
Added a “zero_current” alias for “tracer” in the species blocks. See here. The use of “tracer” has now been deprecated and will be removed in version 5.0. At that time, the compiler flag will also be renamed.