ASCEND capabilities: Difference between revisions

From ASCEND
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 3: Line 3:
== Language features ==
== Language features ==


* Equation-based language
* Equation-based language, see ''[http://ascend.cheme.cmu.edu/ftp/pdfPapersRptsSlides/processModeling.pdf Equation-based Process Modeling]'' for an overview.
* Full support for [[units of measurement]]; user never needs to worry about conversion factors.
* Full support for [[units of measurement]]; user never needs to worry about conversion factors.
* Hierarchical [[MODEL]]s allowing modular system models built from reused components
* Hierarchical [[MODEL]]s allowing modular system models built from reused components
Line 16: Line 16:
== Solver features ==
== Solver features ==


* Detection of singular and non-square equation systems
* 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]] solver with block decomposition
* Optimisation solver [[IPOPT]] as well as linking to commercial [[CONOPT]] solver
* Optimisation solver [[IPOPT]] as well as linking to commercial [[CONOPT]] solver
* ODE and DAE solvers: [[IDA]], [[RADAU5]], [[LSODE]]
* ODE and DAE solver for [[dynamic modelling]]: [[IDA]], [[RADAU5]], [[LSODE]]
* Some preliminary support for dynamic switching models with boundaries
* 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)
* 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 30: Line 30:
* Interactive exploration of the numerical/convergence behaviour of the model
* Interactive exploration of the numerical/convergence behaviour of the model
* Capture the state of selected variables for export/plotting via [[Observer]] functionality
* Capture the state of selected variables for export/plotting via [[Observer]] functionality
* 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
* View 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
* Alpha-quality [[canvas-based modeller for ASCEND]] allows 'wiring up' of graphical 'blocks' to construct complex flowsheets
* Alpha-quality [[canvas-based modeller for ASCEND]] allows 'wiring up' of graphical 'blocks' to construct complex flowsheets
Line 40: Line 40:
* {{src|models/thermodynamics.a4l}} code for basic-level accuracy of pure species as well as mixtures
* {{src|models/thermodynamics.a4l}} code for basic-level accuracy of pure species as well as mixtures
* [[FPROPS]] code for accurate calculation of pure species properties
* [[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.
* 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 {{src|models/flash.a4l}})
* Models of mixers, separators and reactors for chemical process modelling (eg {{src|models/flash.a4l}})

Latest revision as of 05:09, 3 April 2013

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'.
  • 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 solver with block decomposition
  • Optimisation solver IPOPT as well as linking to commercial CONOPT solver
  • ODE and DAE solver 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)
  • 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
  • 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.