Create an algorithm index
Last update: 19.06.2026This article outlines the lifecycle of an algorithm from its creation to its final disposal.
Algorithm lifecycle
- Algorithm created
- IAlgorithmHost set (see SetHost(IAlgorithmHost))
- Options are set
- Objectives are set (see SetObjectives(List<Objective>))
- OptConstraints are set (see SetConstraints(List<OptConstraint>))
- DesignVariables are set (see SetDesignVariables(List<DesignVariable>))
- Options are read for changes made by algorithm (warning status message notifying the user of the change should be sent by the algorithm) so updated options can be displayed on the output form)
- Checkpoint restored if one is specified (see RestoreCheckPoint(String))
- Run called
- ResultsReport retrieved (see note below)
- DetailsReport retrieved (see note below)
- Algorithm disposed (see Dispose)
Note: Both ResultsReport and DetailsReport can be called during the run to update the output form, so these properties must be thread safe. The ResultsReport can but is not required to update during the run, but the DetailsReport is expected to update during the algorithm's run to allow the user to monitor progress.