Control block#
The control block contains information about the general code setup. See EPOC++ input deck for more information on the input deck.
Basics#
The block sets up the basic code properties for the domain, the end time of the code, the load balancer and the types of initial conditions to use.
The control block of a valid input deck for EPOC++ reads as follows:
begin:control
# Global number of gridpoints
nx = 512 # in x
ny = 512 # in y
# Global number of particles
nparticles = 10 * nx * ny
# Final time of simulation
t_end = 1.0e-12
# nsteps = -1
# Size of domain
x_min = -0.1e-6
x_max = 400.0e-6
y_min = -400.0e-6
y_max = 400.0e-6
# restart_snapshot = data00012.epc
# stdout_frequency = 10
end:control
As illustrated in the above code block, the “#
” symbol is
treated as a comment character and the code ignores everything on a line
following this character.
The allowed entries are as follows:
nx, ny, nz
- Number of grid points in the x,y,z direction. This parameter is mandatory.nparticles
- The global number of pseudoparticles in the simulation. This parameter does not need to be given if a specific number of particles is supplied for each particle species by using the “nparticles” directive in each species block. If both are given then the value in the control block will be ignored.nsteps
- The number of iterations of the core solver before the code terminates. Negative numbers instruct the code to only terminate at t_end. If nsteps is not specified then t_end must be given.t_end
- The final simulation time in simulation seconds before the code terminates. If t_end is not specified then nsteps must be given. If they are both specified then the first time restriction to be satisfied takes precedence.{x,y,z}_min
- Minimum grid position of the domain in metres. These are required parameters. Can be negative.{x,y,z}_max
- Maximum grid position of the domain in metres. These are required parameters. Must be greater than “{x,y,z}_min”.restart_snapshot
- The filename of a previously written restart dump to restart the code from. If not specified then the initial conditions from the input deck are used.stdout_frequency
- If specified then the code will print a one line status message to stdout after every given number or timesteps. The default is to print nothing to screen (i.e. stdout_frequency = 0).nproc{x,y,z}
- Number of processes in the x,y,z directions. By default, EPOC++ will try to pick the best method of splitting the domain amongst the available processors but occasionally the user may wish to override this choice.verbose
- Increase verbosity of simulation output.allow_missing_restart
- Logical flag to allow code to run when a restart dump is absent. When “restart_snapshot” is specified then the simulation first checks that the specified restart dump is valid. If the restart dump exists and is valid then it is used to provide initial conditions for the simulation. However, if the restart dump does not exist or is not usable for some reason then by default the simulation will abort. If “allow_missing_restart” is set to “T” then the simulation will not abort but will continue to run and use the initial conditions contained in the input deck to initialise the simulation. The default value is “F”.