ASCEND is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
,
mathematical modelling chemical process modelling system developed at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
since late 1978. ASCEND is an acronym which stands for Advanced System for Computations in Engineering Design. Its main uses have been in the field of
chemical process modelling
Chemical process modeling is a computer modeling technique used in chemical engineering process design. It typically involves using purpose-built software to define a system of interconnected components, which are then solved so that the steady-st ...
although its capabilities are general.
ASCEND includes nonlinear algebraic
solver
A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculates t ...
s, differential/algebraic equation solvers, nonlinear
optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
and modelling of multi-region 'conditional models'. Its matrix operations are supported by an efficient
sparse matrix
In numerical analysis and scientific computing, a sparse matrix or sparse array is a matrix in which most of the elements are zero. There is no strict definition regarding the proportion of zero-value elements for a matrix to qualify as sparse b ...
solver called ''mtx''.
ASCEND differs from earlier modelling systems because it separates the solving strategy from model building. So domain experts (people writing the models) and computational engineers (people writing the solver code) can work separately in developing ASCEND. Together with a number of other early modelling tools, its architecture helped to inspire newer languages such as
Modelica
Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-o ...
. It was recognised for its flexible use of variables and parameters, which it always treats as solvable, if desired
The software remains as an active open-source software project, and has been part of the Google Summer of Code programme in 2009, 2010, 2011, 2012, 2013 (under the Python Software Foundation) and has been accepted for the 2015 programme as well.
See also
*
Art Westerberg
*
AMPL
AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (i.e., large-scale optimization and scheduling-type problems).
It was developed b ...
*
APMonitor
Advanced process monitor (APMonitor) is a modeling language for differential algebraic ( DAE) equations. It is a free web-service or local server for solving representations of physical systems in the form of implicit DAE models. APMonitor is ...
*
EMSO
*
JModelica.org
*
Modelica
Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-o ...
*
List of chemical process simulators
References
External links
*
Simulation programming languages
Mathematical optimization software
Free simulation software
Free software programmed in Tcl
Declarative programming languages
Object-oriented programming
Free software programmed in Python
Software that uses Tk (software)
{{free-software-stub