Class MultiRun

java.lang.Object
java.lang.Thread
microsim.engine.MultiRun
All Implemented Interfaces:
Runnable, EngineListener, ExperimentBuilder

public abstract class MultiRun extends Thread implements EngineListener, ExperimentBuilder
MultiRun is a template abstract class useful to guide the modeller to build an automatic simulation launcher, able to change interactively parameters on the basis of the last run.
  • Field Details

    • copyInputFolderStructure

      protected static boolean copyInputFolderStructure
      Sets whether to copy the input files into a new input folder within a new output folder for each simulation run
    • engine

      protected SimulationEngine engine
    • counter

      protected int counter
    • executionActive

      protected boolean executionActive
    • toBeContinued

      protected boolean toBeContinued
  • Constructor Details

    • MultiRun

      public MultiRun()
      Create a new multi run session.
  • Method Details

    • nextModel

      public abstract boolean nextModel()
      When a SIMULATION_END signal is sent to JAS by one of the running models, simulation is stopped and this method is called. If it returns true the multi run will continue with the next run, otherwise the program will exit.
      Returns:
      a value deciding if simulation is to be continued.
    • setupRunLabel

      public abstract String setupRunLabel()
    • run

      public void run()
      MultiRun is an independent thread. The run method controls the sequence of simulations.
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • go

      public void go()
      The go method starts the multi-run simulation.
    • onEngineEvent

      public void onEngineEvent(@NonNull @NonNull SystemEventType event)
      This method monitors theSystemEventType.End signal. When it is raised the MultiRun class stops current run and invokes the nextModel() method.
      Specified by:
      onEngineEvent in interface EngineListener
      Parameters:
      event - A SystemEventType event.
    • addParameterDomain

      public MultiRun addParameterDomain(@NonNull @NonNull ParameterDomain parameterDomain)
    • getMaxConfigurations

      public int getMaxConfigurations()
    • getConfiguration

      @NonNull public @NonNull Map<String,Object> getConfiguration(int counter)