Data Structures

This section outlines the data structures used by libEnsemble. We first discuss the dictionaries that are input to libEnsemble to declare the simulation, generation, and allocation specifications, as well as specify exit criteria, persistent information, and other libEnsemble options.

We then discuss internal libEnsemble, including the history array, worker array, and the work dictionary produced by the allocation function.


Since version 0.7.0, libEnsemble performs an initial check that all 'in' fields in sim_specs, gen_specs, and alloc_specs correspond to a field in the initial history array, H0 or at least one 'out' field in the aforementioned data structures. This guarantees that the required inputs are available.