stilt.execution.worker.run_receptor#

stilt.execution.worker.run_receptor(project, receptor_id, *, compute_root, execution=None, skip_existing=True, batched=True)[source]#

Run every simulation of one receptor, and return what did not complete.

Each realization of an ensemble variant is a simulation of its own. Variants with the same transport settings share one set of particles (per realization), so they run as a group: the transport model runs once for the group when the particles are missing (or always, without skip_existing), and each variant’s footprint is made from those particles in memory. A footprint is made again whenever its particles were, so it always matches them. A failure is recorded with the simulation (stilt.Simulation.failure) and does not stop the others; a failed transport model run fails every variant of its group. A KeyboardInterrupt, such as a preempted job, stops the receptor and is raised again.

Parameters:
  • project (Project) – Project the receptor belongs to.

  • receptor_id (str) – Receptor to run.

  • compute_root (Path) – Directory the workdirs are made in, a new one for each run, as resolve_compute_root() returns it.

  • execution (ExecutionConfig | None) – Execution settings, for timeout and keep_workdir. Defaults to the project’s.

  • skip_existing (bool) – Keep particles and footprints that already exist.

  • batched (bool) – Also run the variants of a batched transport model, one receptor per call. run_receptors() runs those for all its receptors at once first, and passes False.

Returns:

One line per failure, empty when every simulation is complete. The failures are also recorded in the output directory, which is where stilt.Project.status() reads them.

Return type:

list[str]