Our first implementation of Scripting was to allow users to enter equations (as keywords) to create static properties. However, it soon developed into a much more complex and exciting feature. First, we added the ability to perform table look-ups and call the Initializer (Equilibrator) from within the script. Then we added the capability to execute a Script in the Schedule section, at the start or end of a given report step or time-step. Scripts may also be called repeatedly at every report step or time-step, opening up new opportunities for custom reporting or property calculations.
An example of this is to input a water saturation and to scale the water-oil capillary pressure curves such that this water saturation is honored in the equilibrated initial solution – i.e. the SWATINIT functionality. In 6X, this can be implemented via Scripting:
- As the Scripting capability has been developed on our massively parallel software architecture, it has negligible influence on performance – even for very complex scripts.
- This functionality allows our partners to vastly improve their workflow (and therefore retain their IP) for initializing models.