Generally, HEC-RAS 2D simulations which are numerically stable are hydraulically reproducible, meaning that the results may vary between identical runs on the same or different computers within a small range that is not significant for hydraulic studies (e.g. < 1-3 ft water surface elevation difference). However, 2D simulations which are not stable can produce very different results between simulations. Numerical reproducibility issues are mostly caused by the parallelization of computations due to the non-associative property of floating point calculations. For example the following floating point sums may not be exactly same: (a + b) + c ≠ a + (b + c). When certain calculations are parallelized the order of operations can no longer be guaranteed. In addition, HEC-RAS 2D utilizes mostly double precision floating numbers to reduce these errors. As mentioned above, stable simulations are generally reproducible for the purposes of practical engineering studies while unstable simulations may not be reproducible. HEC-RAS 6.7 has added new options to address the numerical reproducibility issues. If numerical reproducibility issues are encountered, it is recommended to first improve the model stability since this will also improve the numerical reproducibility. Only when the numerical stability has been addressed should users modify the numerical reproducibility options in HEC-RAS.
To set the numerical reproducibility settings in HEC-RAS:
Open the Unsteady Flow Analysis editor
Click on Options | Computation Options and Tolerances.
In the General of the HEC-RAS Unsteady Computation Options and Tolerances editor select one of the options from the drop down in the section titled Reproducibility Computation Option.
The three options are: 1. Hydraulics Accurate (fastest) 2. More Reproducible (medium) 3. Most Reproducible (slowest)
The first option (Hydraulics Accurate) is the default since it is the fastest and is usually sufficient for most hydraulic engineering projects. This option has the maximum degree of parallelization. The second option (More Reproducible), serializes (turns off parallelization) many calculations that involve global statistics and makes the matrix solver PARDISO serial. The third option (Most Reproducible) implements the changes of the second option plus serializes additional portions of the code and turns on the Intel oneAPI Math Kernel Library Conditional Numerical Reproducibility (see Intel Developer Guide - Obtaining Numerically Reproducible Results).