ASCEND capabilities: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 8: | Line 8: | ||
* Procedural initialisation of models and solver parameters using [[METHOD]]s | * Procedural initialisation of models and solver parameters using [[METHOD]]s | ||
* [[WHEN]] syntax for [[conditional modelling]] also known as 'variable-structure modelling'. | * [[WHEN]] syntax for [[conditional modelling]] also known as 'variable-structure modelling'. | ||
* [[DATASET]] allows loading of CSV/TSV tabular data. Also [[Data reader]] which is used for interpolation/time-series datasets (for [[DAE]] problems, say). | |||
* Differential as well as algebraic equations can be expressed | * Differential as well as algebraic equations can be expressed | ||
* Constants are declared separately from variables | * Constants are declared separately from variables | ||
| Line 17: | Line 18: | ||
* Detection of singular and non-square equation systems; user is advised on what modifications would help to make system square. | * Detection of singular and non-square equation systems; user is advised on what modifications would help to make system square. | ||
* Steady-state [[QRSlv]] solver with block decomposition | * Steady-state [[QRSlv]] non-linear algebraic (NLA) solver with block decomposition. | ||
* | * Non-linear programming (NLP)/optimisation solvers [[IPOPT]] (open source) and [[CONOPT]] (commercial). | ||
* ODE and DAE | * Mixed-integer programming solver [[HiGHS]]. | ||
* ODE and DAE solvers for [[dynamic modelling]]: [[IDA]], [[RADAU5]], [[LSODE]] | |||
* Some preliminary support for dynamic switching models with boundaries, see [[integration of conditional models]]. | * Some preliminary support for dynamic switching models with boundaries, see [[integration of conditional models]]. | ||
* Solver parameters can be set from within the model code (see [[SOLVER]] and [[OPTION]] statements) | * Solver parameters can be set from within the model code (see [[SOLVER]] and [[OPTION]] statements). Model language allows solving of whole models or just a sub-model. | ||
* New solvers can easily be added, implemented as [[external libraries]] that access our Solver API. | * New solvers can easily be added, implemented as [[external libraries]] that access our Solver API. | ||
| Line 32: | Line 34: | ||
* View [[incidence matrix]] showing block-decomposed structure of steady-state systems | * View [[incidence matrix]] showing block-decomposed structure of steady-state systems | ||
* Diagnose blocks in the model which have been giving numerical problems | * Diagnose blocks in the model which have been giving numerical problems | ||
* Observer/study feature: sweep variables and solve each time, to generate tabular/plot outputs from a flowsheet. | |||
* View [[incidence graph]] (aka dependency graph) for solution process | * View [[incidence graph]] (aka dependency graph) for solution process | ||
* Plot the time-varying values from the solution of dynamic problems | * Plot the time-varying values from the solution of dynamic problems | ||
Latest revision as of 11:02, 4 March 2026
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. This page emphasises the newer PyGTK-based GUI for ASCEND. An overview of the features of the older Tcl/Tk GUI is can be obtained from the TclTk screenshots.
Language features
- Equation-based language, see Equation-based Process Modeling for an overview.
- Full support for units of measurement; user never needs to worry about conversion factors.
- 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'.
- DATASET allows loading of CSV/TSV tabular data. Also Data reader which is used for interpolation/time-series datasets (for DAE problems, say).
- 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; user is advised on what modifications would help to make system square.
- Steady-state QRSlv non-linear algebraic (NLA) solver with block decomposition.
- Non-linear programming (NLP)/optimisation solvers IPOPT (open source) and CONOPT (commercial).
- Mixed-integer programming solver HiGHS.
- ODE and DAE solvers for dynamic modelling: IDA, RADAU5, LSODE
- Some preliminary support for dynamic switching models with boundaries, see integration of conditional models.
- Solver parameters can be set from within the model code (see SOLVER and OPTION statements). Model language allows solving of whole models or just a sub-model.
- New solvers can easily be added, implemented as external libraries that access our Solver API.
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
- Observer/study feature: sweep variables and solve each time, to generate tabular/plot outputs from a flowsheet.
- View incidence graph (aka 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
Thermodynamics and Engineering features
- models/thermodynamics.a4l code for basic-level accuracy of pure species as well as mixtures
- FPROPS code for accurate calculation of pure species properties
- linkage to freesteam library for calculation of steam properties by official IAPWS-IF97 correlations.
- A range of models for [[Energy system modelling with ASCEND|energy system modelling], including Brayton cycle, Rankine cycle and several solar thermal energy component models.
- Models of mixers, separators and reactors for chemical process modelling (eg models/flash.a4l)
- A growing model library with a wide range of examples and reusable models.