gPROMS v3.1: Execution and solution features
Faster, easier and more robust
As well as enhanced flowsheeting, display and modelling features, gPROMS v3.1 embodies a number of significant enhancement on the solution front – including unified solver and kernel architecture, the ability to solve high-index problems and improvements to handling of certain equation formulations.
This page outlines some of the key features. For more information see the release notes or request an on-site update for your company.
Features at-a-glance
- Automatic index reduction to handle high-index problems.
- Execution diagnostic enhancements: improvements to execution output, querying of variables and units, etc.
- Unified solver architecture for faster execution and more consistent behaviour across different activities (simulation, optimisation, parameter estimation and experiment design).
- Numerous enhancements such as conservative formulation of partial derivatives for greater model accuracy and handling of continual switching in discontinuities.
Details
Click on the images below to enlarge
Automatic index reduction for high-index problems – analysis and notification
Execution output – three different views – with easy querying of variable and unit information
Automatic index reduction
The newly-introduced automatic index reduction affects models of so-called high index. High-index problems typically have fewer degrees of freedom with respect to specifying initial conditions than 'normal' DAE problems and can not be solved directly.
Up to version 3.0 gPROMS would report a high-index problem and stop execution. The high index could then be manually removed from the model.
The new index reduction feature will now automatically address and resolve the index problem.
gPROMS's automatic index reduction works in two stages:
- the model is analysed and the user is presented with a diagnosis showing which initial conditions are inconsistent and can be removed.
- Once the user has removed the inconsistent initial conditions and a consistent initial state can be constructed, the problem is transformed into an index-1 problem by differentiating a sub-set of equations and introducing additional variables.
All the changes are reported in the diagnostic execution output window.
Combined execution output view
The execution output window is now a combined view of
- the execution output of gPROMS's numerical solvers
- topologies (with inline results)
- stream tables and model reports (if they exist for the top-level flowsheet).
This combined view has been introduced to give quick access to all key results by selecting different tabs of the same window.
Easy querying of variables and units
It is now possible to use the variable name rather than the variable numbers for queries, by entering the fully-qualified path – e.g. 'Flowsheet.heater.temperature'.
By pressing 'CTRL+SPACE' when entering variable names, gPROMS will either list the available variables (or units) or complete the path name if only one choice is available.
Similar assisted pathname completion applies when querying entire units.
Enhanced execution output context menu
The context menu in the execution output has also been enhanced.
If a variable name is displayed in the execution output the context menu now offers the additional option to query the variable or a unit selected by clicking on the variable or unit name.
Unified solver architecture
gPROMS v3.1 introduces a single set of solvers for all activities: simulation, optimisation, parameter estimation and optimal design of experiments.
The immediate benefit of this change are consistent behaviour and diagnostics throughout, plus consistent application of the various other enhancements listed below across all gPROMS activities.
The new solver architecture is based on the same (new) nonlinear block decomposition solver BDNLSOL and the nonlinear (sub-)solver SPARSE. Although the solver NLSOL is no longer available, backward compatibility is ensured by:
- automatic conversion of all NLSOL solution parameter settings to the corresponding settings of BDNLSOL
- mimicking the behaviour of NLSOL.
This can be controlled by solution parameters which are turned on by default.
Conservative discretisations of PDEs
In the discretisation approach prior to gPROMS v3.1, complex terms were automatically expanded before a discretisations was performed, as follows:

This approach had the disadvantage of not being a non-conservative formulation which may have led to errors in conservation equations for total mass, energy, momentum etc.
From v3.1 onwards, gPROMS applies discretisations on the entire term which leads to a conservative formulation without the necessity to increase memory requirements through the introduction of intermediate variables:

Changes to indexing of continuous domains
Under certain circumstances a continuous index could be used to index a discrete array. Consider the following example:
FOR x := 0 TO test_max DO
test(x) = x ; # (OK)
test1(x) = test(index(x)); # (INCORRECT)
END
Here 'x' is a continuous index when used in 'test(x)' which is the correct usage. 'Index', however, is a parameter array and therefore a discrete domain. From v3.1 onwards this is not permitted.
New convergence criterion for Optimisation, Parameter Estimation and Optimal Design of Experiments
The non-linear optimisation solver SRQPD used by Optimisation, Parameter Estimation and Optimal Design of Experiments has been enhanced with a new convergence criterion.
The criterion used to date (which is still available and the default) is based on an estimation of the improvement whereas the new criterion is based on a combination of an optimality tolerance and a tolerance for the improvement between iterations.
Depending on the optimisation problem, the new criterion may lead to better results.
The corresponding solution parameter of SRQPD are:
"ConvergenceCriterion" := ImprovementEstimateBased; "ConvergenceCriterion" := OptimalityBased; (new)
For the new criterion a new parameter for specifying the improvement tolerance has been introduced
"NoImprovementTolerance" := 1e-012;
Handling of continuous switches in discontinuities
A new solution parameter for the Sparse solver has been introduced to limit "chattering" in conditional equations (If/Then/Else or Case statements). This controls the maximum number of switches:
DASolver := "DASOLV" [
"InitialisationNLSolver" := "BDNLSOL" [
"BlockSolver" := "SPARSE" [
"MaxStructureSwitches" := 100;
]
],
"ReinitialisationNLSolver" := "BDNLSOL" [
"BlockSolver" := "SPARSE" [
"MaxStructureSwitches" := 100
]
]
]
Request a WebEx or on-site update
What users have said
"Being able to watch results as the simulation progresses is a real productivity enhancer"
"My reactor model converges without any initial guesses"
"Ordered sets make my life so easy"




