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

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.

Previous