OpenCOR is a plugin-based application.
As can be seen by opening the Plugins dialog (either by selecting the Tools
| Plugins...
menu or by clicking here) and by unselecting Show only selectable plugins
(if necessary), OpenCOR comes with different types of plugins:
You can select which plugins you want to use. However, plugins that are needed by other plugins cannot be directly selected (e.g., the Core plugin is needed by the Help window plugin). 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:
View: such a plugin is used to interact with a file, be it to edit it, simulate it or analyse it (e.g., the CellML Annotation view and Simulation Experiment view plugins).
Window: such a plugin can be docked around the central area, undocked or hidden, as illustrated here (e.g., the PMR window and Help window plugins).
If no plugins are selected then OpenCOR is an empty shell.
Data store plugins are used to store and manipulate data:
BioSignalMLDataStore: a BioSignalML specific data store plugin.
CSVDataStore: a CSV specific data store plugin.
There is also one non-selectable data store plugin:
DataStore: a plugin that provides core data store facilities.
Editing plugins are used to edit files:
CellMLAnnotationView: a plugin to annotate CellML files.
CellMLTextView: a plugin to edit CellML files using the CellML Text format.
RawCellMLView: a plugin to edit CellML files using an XML editor.
RawSEDMLView: a plugin to edit SED-ML files using an XML editor.
RawTextView: a plugin to edit text-based files using a text editor.
There are also some non-selectable editing plugins:
CellMLEditingView: a plugin that provides core CellML editing view facilities.
EditingView: a plugin that provides core editing view facilities.
SEDMLEditingView: a plugin that provides core SED-ML editing view facilities.
Miscellaneous plugins are plugins that do not fit in any other category:
HelpWindow: a plugin to provide help.
PythonConsoleWindow: a plugin to interact with Python.
WebBrowserWindow: a plugin to browse the Web.
There are also some non-selectable Miscellaneous plugins:
Compiler: a plugin to support code compilation.
Core: the core plugin.
JupyterKernel: the Jupyter kernel plugin.
PythonShell: the Python shell plugin.
Organisation plugins are used to organise files:
FileBrowserWindow: a plugin to access local files.
FileOrganiserWindow: a plugin to virtually organise files.
PMRWorkspacesWindow: a plugin to manage a user’s PMR workspaces.
Simulation plugins are used to simulate files:
SimulationExperimentView: a plugin to edit and run a simulation experiment.
Solver plugins are used to access 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’s method to solve ODEs.
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.
Non-selectable support plugins are used to support various third-party libraries:
CellMLSupport: a plugin to support CellML.
COMBINESupport: a plugin to support COMBINE.
PMRSupport: a plugin to support PMR.
PythonQtSupport: a plugin to support PythonQt.
PythonSupport: a plugin to support Python.
QScintillaSupport: a plugin to support QScintilla.
SEDMLSupport: a plugin to support SED-ML.
SimulationSupport: a plugin to support simulations.
StandardSupport: a plugin to support various standards.
ZIPSupport: a plugin to support the ZIP format.
Non-selectable third-party plugins are used to access to various third-party libraries:
CellMLAPI: a plugin to access the CellML API.
libBioSignalML: a plugin to access BioSignalML.
libgit2: a plugin to access libgit2.
libNuML: a plugin to access libNuML.
libSBML: a plugin to access libSBML.
libSEDML: a plugin to access libSEDML.
LibXDiff: a plugin to access LibXDiff.
OAuth: a plugin to access OAuth for Qt.
OpenSSL: a plugin to access OpenSSL.
Python: a plugin to access Python.
PythonPackages: a plugin to access some Python packages.
PythonQt: a plugin to access PythonQt.
QScintilla: a plugin to access QScintilla.
Qwt: a plugin to access Qwt.
SUNDIALS: a plugin to access the ARKode, CVODES, IDAS, and KINSOL solvers from the SUNDIALS library.
zlib: a plugin to access zlib.
Tools plugins are used to access to various tools:
CellMLTools: a plugin to access various CellML-related tools.
Non-selectable widget plugins are used to access various ad hoc widgets:
EditorWidget: a plugin to edit and display text.
GraphPanelWidget: a plugin to plot graphs.
MathMLViewerWidget: a plugin to visualise MathML documents.
QScintillaWidget: a plugin to support QScintilla.
ToolBarWidget: a plugin to display a tool bar.
WebViewerWidget: a plugin to visualise Web documents.