Skip to content

[Epic] Workflow 2.0 #1652

@jws-1

Description

@jws-1

Focus

Implement an "overview" that displays all major elements of the simulation, as well as a summary of each, in some diagrammatic way. Initially, this could be a simple hierarchy of "blocks". The idea is that this can replace the current usage of tabs, by being able to view and edit a specific element (e.g. a species) by double-clicking on it. Alongside this, we can move away from using Layers and instead define Tasks, which each execute a Procedure (which could include RunModule/RunModuleList nodes, as well as running other Tasks). With a Master Task that is executed in-place of the current simulation loop - this task could expose certain information, such as Configurations, to its child tasks through a context, rather than giving every task access to the entirety of CoreData. These Tasks would also be displayed in the Overview, along with the modules that they run. The GUI side of things should be done using QML.

Tasks

Basic Overview

Implement an Overview tab with the necessary QML "Dissolve" model, and which offers basic navigation capabilities to existing tabbed data.

Dialog-ise Tabs

Convert the MainTab derived classes to instead derive from QDialog, which is then popped-up when the corresponding item in the overview is clicked. Feasibility of this will be proven by first dialogising the Species tab.

  • Convert SpeciesTab to enable display in a dialog as well as a tab
  • Convert ConfigurationTab
  • Convert ForcefieldTab

Layer Display

Although we want to move away from Layers, it would be a useful exercise to include them, along with their Modules, in the Overview - this code would likely be reusable when it comes to Tasks. Since users typically want to quickly flick between the information of multiple modules, it would be more suitable to provide a tab-like view. When a Module is double-clicked in the Overview, we could show it in a separate tab. Single-clicking / selecting a Module could just display its full options in a side-pane to allow setup, but not necessarily show any output data.

  • Display existing ModuleLayers in the QML overview (Overview Tab - Layers #1659)
  • Allow summary information for each module to be displayed on its QML entity
  • Allow modules to be "popped out" to separate tabs for easier interrogation

Task Implementation

Introduce the new Task-based workflow.

  • Task and TaskContext classes.
  • Swap simulation loop for single master Task defined in Dissolve.
  • Display defined Tasks in the Overview.

Metadata

Metadata

Assignees

Labels

EpicAn epic containing one or more steps / related issuesPriority: MediumIndicates an Epic with medium priority

Type

No type

Projects

Status

Epics

Relationships

None yet

Development

No branches or pull requests

Issue actions