ASCEND capabilities

From ASCEND
Revision as of 01:31, 3 April 2013 by Jpye (talk | contribs)
Jump to navigation Jump to search

The following is a summary of current ASCEND capabilities. It is intended to be a complete list. If you want a more general/introductory overview, see the ASCEND overview. The main page for accessing greater detail on these topics is our documentation index.

Language features

  • Equation-based language
  • Hierarchical MODELs allowing modular system models built from reused components
  • Procedural initialisation of models and solver parameters using METHODs
  • WHEN syntax for conditional modelling also known as 'variable-structure modelling'.
  • Differential as well as algebraic equations can be expressed
  • Constants are declared separately from variables
  • Multi-modal models with SWITCH statement (switching based on values assigned to constants).
  • Externally-defined equations ('external relations') can be added to models via shared libries and the IMPORT statement
  • Can run arbitrary Python code in METHODs via ExtPy linkage, useful for custom plotting, reporting, and model initialisation.

Solver features

  • Detection of singular and non-square equation systems
  • Steady-state QRSlv solver with block decomposition
  • Optimisation solver IPOPT as well as linking to commercial CONOPT solver
  • ODE and DAE solvers: IDA, RADAU5, LSODE
  • Some preliminary support for dynamic switching models with boundaries
  • Solver parameters can be set from within the model code (see SOLVER and OPTION statements)

GUI features

  • View all aspects of a model in a hierarchical tree view
  • FIX and FREE variables interactively, set their values, and quickly re-solve the model.
  • Interactive exploration of the numerical/convergence behaviour of the model
  • Capture the state of selected variables for export/plotting via Observer functionality
  • View incidence matrix showing block-decomposed structure of steady-state systems
  • Diagnose blocks in the model which have been giving numerical problems
  • View dependency graph for solution process
  • Plot the time-varying values from the solution of dynamic problems
  • Alpha-quality canvas-based modeller for ASCEND allows 'wiring up' of graphical 'blocks' to construct complex flowsheets