The simulation environment Diana (Dynamic simulation and numerical analysis tool) performs the numerical analysis of problems such as the ones usually found in process engineering.
One of the main aspects of Diana is that it relies on the CAPE-OPEN Numerical interfaces. The models handled by the solvers within the numerical kernel of Diana, or plugged in Diana, are object-oriented models based on the CAPE-OPEN Equation Set Object (ESO) concept.
Models are usually created with the modelling tool ProMoT and are implemented in C++. Still they can be manipulated interactively as a simple Python instance. The numerical kernel of Diana is written in C++ in order to ensure fast and efficient numerical solutions. Model equations also have to be implemented in C++ as an Equation Set Object (ESO) using CAPE-OPEN numerical interfaces.
Diana contains different implementations of numerical methods well suited for process engineering (linear, non-linear, differential algebraic equation solvers are provided). Sparse matrix implementations of basic algorithms, such as linear algebra routines, are provided. Different nonlinear algebraic and differential-algebraic solvers are implemented, based on existing third party open-source code and can be applied depending on the special properties of the model.
Diana also allows the use of continuation methods to determine steady states and singular points of a dynamic model.
Publications on using Diana and its CAPE-OPEN numerical features
Khlopov, D., Mangold, M., 2017. Automatic model reduction of differential algebraic systems by proper orthogonal decomposition. Computers and Chemical Engineering 97, 104–113.