Plugins

OpenCOR is a plugin-based application. This means that if no plugins are selected, then OpenCOR can do next to nothing.

As can be seen by opening the Plugins dialog box (by selecting the Tools ‣ Plugins menu) and by unselecting Show only selectable plugins (if necessary), OpenCOR supports different types of plugins:

Plugins window

You can select which plugins you want to use. However, plugins which are needed by other plugins (e.g. the Core plugin is needed by the CellMLModelRepositoryWindow plugin) cannot be directly selected. Instead, they will be automatically selected if and only if they are needed by at least one other plugin.

Most of the selectable plugins come with some kind of a GUI, which is of one of two types:

API

(Non-selectable) API plugins are used to provide access to various APIs:

Data Store

Data Store plugins are used to store and manipulate simulation data:

  • CSVDataStore: a CSV specific data store plugin.

There is also one non-selectable Data Store plugin:

  • CoreDataStore: the core data store plugin.

Editing

Editing plugins are used to edit files:

There are also some non-selectable Editing plugins:

  • CoreCellMLEditing: the core CellML editing plugin.
  • CoreEditing: the core editing plugin.

Miscellaneous

Miscellaneous plugins are used for various purposes:

There are also some non-selectable Miscellaneous plugins:

  • Compiler: a plugin to support code compilation.
  • Core: the core plugin.

Organisation

Organisation plugins are used to organise files:

Simulation

Simulation plugins are used to simulate files:

Solver

Solver plugins are used to provide access to various solvers:

  • CVODESolver: a plugin that uses CVODE to solve ODEs.
  • ForwardEulerSolver: a plugin that implements the Forward Euler method to solve ODEs.
  • FourthOrderRungeKuttaSolver: a plugin that implements the fourth-order Runge-Kutta method to solve ODEs.
  • HeunSolver: a plugin that implements the Heun method to solve ODEs.
  • IDASolver: a plugin that uses IDA to solve DAEs.
  • KINSOLSolver: a plugin that uses KINSOL to solve non-linear algebraic systems.
  • SecondOrderRungeKuttaSolver: a plugin that implements the second-order Runge-Kutta method to solve ODEs.

There is also a non-selectable Solver plugin:

  • CoreSolver: the core solver plugin.

Support

(Non-selectable) support plugins are used to provide support for various third-party libraries and APIs:

  • CellMLSupport: a plugin to support CellML.
  • QScintillaSupport: a plugin to support QScintilla.

Third-party

(Non-selectable) third-party plugins are used to provide access to various third-party libraries:

  • LLVM: a plugin to access LLVM (as well as Clang).
  • QScintilla: a plugin to access QScintilla.
  • Qwt: a plugin to access Qwt.
  • SUNDIALS: a plugin to access CVODE, IDA and KINSOL solvers from the SUNDIALS library.

Widget

(Non-selectable) widget plugins are used to provide access to various ad hoc widgets:

  • Editor: a plugin to edit and display text.
  • EditorList: a plugin to handle issues in a text editor.
  • Viewer: a plugin to visualise mathematical equations.