The controllers module provides different controller classes, applicable to different simulations.
A controller object’s job is to control simulations- At a high level a controller objects accepts a list of parameters and chromosomes and (usually) returns corresponding simulation data. This is implemented polymporphically in subclasses. Each controller class must therefore provide a run method, which is used by the evaluator to run a simulation.
A controller must be able to accept simulation parameters (chromosomes) from the evaluator.
The evaluator is therefore only concerned with assigining fitness to chromosomes.
On the whole this allows for deep modularization - as long as the user can provide a controller which will (for instance) reutrn sample and time arrays for arbitrary chromosome and parameter lists a range of evaluators would be able to utilise it.
Control simulations via command line arguments executed through the Python os module.
Run an nrnproject simulation based on optimizer parameters.