Simulator Functions

Introduction || Standardized Simulator (gest-api) || Legacy Simulator Function

Simulator and Generator functions have relatively similar interfaces.

Writing a Simulator

Note

The gest-api simulator interface is the recommended approach for new libEnsemble projects. The “Legacy Simulator Function” interface is supported for backward compatibility but may be deprecated in a future release.

Tutorial sections

  1. Introduction (this page)

  2. Standardized Simulator (gest-api)

  3. Legacy Simulator Function

Executor

libEnsemble’s Executors are commonly used within simulator functions to launch and monitor applications. An excellent overview is already available here.

See the Ensemble with an MPI Application tutorial for an additional example to try out.

Persistent Simulators

Simulator functions can also be written in a persistent fashion. See the here for a general API overview of writing persistent generators, since the interface is largely identical. The only differences are to pass EVAL_SIM_TAG when instantiating a PersistentSupport class instance and to return FINISHED_PERSISTENT_SIM_TAG when the simulator function returns.

Note

An example routine using a persistent simulator can be found in test_persistent_sim_uniform_sampling.