Monday, March 13, 2017

ASCEND

"ASCEND is a system for solving systems of equations, aimed at engineers and scientists. It allows you to build up complex models as as systems constructed from simpler sub-models. Using ASCEND it is simple to play around with your model, examine its behaviour, and work out how it can best be solved. You can easily change which variables are fixed and which are to be solved, and you can examine the way in which the model is being solved.

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.

http://ascend4.org/Main_Page

No comments:

Post a Comment