How to run a simulation in the foreground / background#

By default, executing a simulation as

from snek5000_canonical.solver import Simul

params = Simul.create_default_params()
sim = Simul(params)
sim.make.exec('run')

would launch the Snakemake rule run (default, if not specified) which launches a simulation in the background and returns control to the user. This is useful in monitoring the simulation. For example see the tutorial for snek5000-cbox.

However in HPC clusters you should launch your simulations in the foreground, thus preventing the job from exiting while the simulation is going on. You can also specify number of MPI processes using the nproc keyword argument. For example:

nb_nodes = 2
nb_procs_per_node = 32

sim.make.exec(
    'run_fg',
    nproc=nb_nodes * nb_procs_per_node
)