Controlling Convergence

If the system solution fails even though the structure of the system is valid, there may be several reasons:

  • The solution process exceeds the maximum number of iteration steps.

  • The required accuracy cannot be reached.

  • Bad starting values do not allow convergence.

  • The solution process got stuck at some limits.

  • The process model is invalid.

Maximum Number of Iteration Steps

If the calculation failed because of exceeding the maximum number of iteration steps, you can try to change this predefined maximum number. Normally convergence is reached within a few steps. Also consider the other points described in this section as they might be the reason for the poor convergence behavior.

To change the maximum number of iteration steps:
  1. Select Calculation  Iteration Parameters. IPSE opens the window shown in Figure 1.

  2. Change the maximum number of steps.

Calculation Accuracy

You can change the calculation accuracy via the total error thresholds x-tolerance and y-tolerance. For details about these thresholds refer to this section.

To change the calculation accuracy:
  1. Select Calculation  Iteration Parameters. IPSE opens the window shown in Figure 1.

  2. Change the tolerance values.

image
Figure 1. Dialog for modifying solver parameters

Damping

Occasionally results obtained from the solver may oscillate around a solution without converging. Eventually, it also may diverge. In such cases it can be helpful to use damping.

To use damping:
  1. Select Calculation  Iteration Parameters. IPSE opens the window shown in Figure 1.

  2. In the Damping section enable the Use Damping option.

  3. Adjust the values for the decrease factor and for the minimum damping factor if required.

Starting Values

If no starting values are defined, IPSE uses 1.0 as a default estimate for all variables. In most cases, these starting values are sufficiently accurate. However, sometimes the system does not converge or runs into a singular region, if these default estimates are used.

For instance, if the actual result for an enthalpy is in the region of superheated steam, then the iteration must cross the wet steam region. In this case the iteration process can fail due to singularities in the wet steam region. To avoid this, you must provide a more suitable starting value.

You may change the estimates that are used as starting values in the data input window of the respective object.

To change the starting values:
  1. Choose the option estimate in the object data input window.

  2. Enter an appropriate estimated value for the selected variable.

  3. Repeat this procedure for all the variables that should have their starting values modified.

Instead of entering starting values manually, you can also use starting values from the default value data base. See section Using Default Values for more details.

Very frequently, results from earlier calculations are available. These results can be used as starting values for new calculations.

To use results from earlier calculations:
  1. Open the menu Calculation.

  2. Choose the command Import Estimates. This loads all converged variables from the most recent calculation of the current process model.

Limits

If no other limits are given, all variables are bound by \(\pm 10^{20}\). By loading default values (see the section Using Default Values), other limits might become valid. If a variable exceeds these limits during system solution, IPSE issues a warning and resets the variable to the binding limit. If a possible solution only exists outside the limits, system convergence is not possible. To allow convergence, you must change the variable limits or change the process model.

To change the limits:
  1. Click on the limit>> button right of the according variable in the object data input window (see Editing Object Data).

  2. Edit the minimum and maximum values for the variable in the dialog window that appears.

Invalid Models

Unsuitable prescriptions, which for example violate physical relationships that are established in the models, possibly create an invalid process model. It is very difficult to identify such errors without a sound understanding of the underlying models. Therefore, carefully set up the process model step by step. Better start with a simplified process model that does not contain all details and make this model run. Then you can extend the model and check the validity by running a calculation after each extension step. This approach makes it much easier to isolate where problems come from.