Empowering the OLI User with the New Calculator Functionality in V12

Sabrina Sequeira

Application Engineer

In a digital world where software sits at the cornerstone of daily work, it is important that users feel empowered in their tools. This is particularly true in the case of OLI Flowsheet: ESP process simulation software, where users hail from a wide range of industries and rely on our chemistry predictions for unique applications. To maximize its utility, OLI has developed a new functionality, the Calculator Functionality, in Version 12 of the software; this module allows users to define their own properties of interest using expressions directly in the OLI environment. From economics to process-specific parameters, the Calculator Functionality imparts users with the agency to capture the insights that are most meaningful to them.

Unlocking New Levels in OLI Flowsheet: ESP

OLI’s flagship process simulator, Flowsheet: ESP, contains a host of built-in parameters that underlie every simulation. Previously, if users sought to analyze additional variables that were not native to the OLI workspace, they would need to conduct post-processing in an external tool. With the new Calculator Functionality, users can now define and expose their own parameters directly in Flowsheet. This feature can be applied in two ways, outlined below.

Global User-Defined Properties:

A User-Defined Property can be saved as a Global Variable within the file. In the Custom Property and Variables window, users can define expressions based on existing global OLI outputs, coupled with mathematical operations.

Let’s use a Zero Liquid Discharge (ZLD) water treatment plant as a case study. Many times, users opt to calculate Total Dissolved Solids (TDS) in a stream based on electrical conductivity, multiplied by a factor of 0.65. To do this, we can add a User-Defined Property, which will exist globally in the file. Figure 1 displays an example crystallization process, which takes in water that has been filtered through a RO system for further purification by way of solid precipitation. The TDS_Custom property has been added as a global User-Defined Property. Below are the ways in which this property can be accessed and leveraged for further analysis:

  • The calculated value for TDS_Custom can be observed in stream Callouts in Figure 1.
  • It is also listed in the Reports for all streams in the file.
  • It can be employed in creating target specifications for controllers.
  • The Global Variable can be used to define the objective function of Optimizer runs.

Calculator Block:

In addition to this global User-Defined Property, the Calculator Functionality also features a new unit block in the Object Library, the Calculator Block. This unit block includes the same Custom Property and Variables interface; as in the case of the global User-Defined Property, any mathematical operation can be performed in the Subexpression entry. For the Property-type entry, the Calculator Block indexes into specific streams; as a result, the software creates a local variable that is only accessible within the Block. The differences between the Property Selection window for the global User-Defined Property and the Calculator Block are outlined in Figure 2.

Let’s revisit the ZLD water treatment case study; upstream of the crystallizer process, an initial process stream entered a lime softening system. In modeling this process, an engineer may want to understand and quantify the degree of calcium carbonate saturation in a stream (1). This is because at excessively low saturation levels (LSI <= -0.31), the system is at risk of corrosion; at high saturation levels (LSI >= 0.31), calcium carbonate will precipitate out as damaging scale (1). In an aim to achieve a delicate balance between these opposing reactions, engineers can calculate the Langelier Saturation Index (LSI) based on typical water analysis measurements (1).

Figure 3 showcases how to add a series of Subexpressions that feed into the LSI calculation. By design, the Calculator Block’s properties will not be accessible in a Report nor in the Optimizer, as they serve as local block variables.

Additional Block Capabilities

The Calculator Block outputs can be evaluated as dependent variables in a Sensitivity Analysis; Figure 4 illustrates how LSI changes as the Calcium Controller Target Value for aqueous Ca(+2) concentration increases. With this capability, OLI can further support the user in making process decisions based on unique parameter studies.

Additionally, the output value from a Calculator Block can be propagated elsewhere in the file using a Feed-forward or Feedback Controller. In the example in Figure 5, the Calculator Block sums all the Heat Duties from the Flowsheet and saves this as a local variable, HeatTotal. Next, the Forwarding Controller overwrites the parameter it had previously read in from S-7, and replaces it with HeatTotal. Lastly, it sends this HeatTotal value to the Heat Source mixer to be used in that unit.

Simplifying the Workflow in Process API Analyses

The landscape of possibilities grows as users leverage the Calculator Functionality in Process API. After uploading a Flowsheet simulation to the OLI Cloud, the Process API can access all variables and unit blocks in the file, including any global User-Defined Properties and Calculator Block outputs. This eases the programming burden for mathematical operations such as unit conversions, as these arithmetic calculations will be executed natively in the engine.

The Calculator Functionality also supports the creation of sensitivity analyses, similar to the ones developed in a recent blog on cooling tower economics. Users can imagine a host of expressions for conducting a preliminary cost analysis; for example, they might consider the price per unit volume associated with water or chemical feedstock. This type of calculation was executed in the cited blog. However, the study was performed in V11.5, and therefore required programmatic post-processing of the API results to arrive at system costs; with the Calculator Functionality, cost could already exist as a variable in the API run. This lowers the barrier to creating sensitivity analysis plots, and keeps user-defined variables in the same OLI Engine-generated JSON file as all other native properties.


The V12 Calculator Functionality is designed to empower the user to create OLI simulations that bring the most value to them. In an ongoing aim to support the user at every stage and at any edge case, OLI is confident that this new tool will offer a transformative infrastructure for your simulations.


  1. Orenda Technologies. Understanding LSI: The Langelier Saturation Index. Blog – stories, research and info about water treatment | Orenda. Nov 16, 2016. (accessed 2024-04-19).