| Abstract |
The demand from a geothermal modeler’s point of view has grown beyond the features provided by existing geothermal reservoir simulators. Existing packages are either built on code which is over 30 years old (e.g. TOUGH2) or is proprietary (e.g. TETRAD); in both cases adapting the code to include new features required for simulating a developed geothermal field is challenging. In particular, the representation of wells is crude, and surface networks and plant models do not exist or are so limited that they restrict the capability to predict output of geothermal power plants in long-term scenarios. OOMPFS is a new Object Oriented Multi Phase Flow Simulator designed specifically for geothermal reservoir simulations. Its internal computational core has been written in C++ and is loosely-based on the well-proven methodology of TOUGH2 for solving the non-linear problems encountered in geothermal simulations. However the object oriented, open structure has made it possible to rapidly add the functionality which was lacking in existing reservoir simulators. Using modern programming techniques and freely available software libraries make the code and simulations very flexible. A simple graphical user interface facilitates the creation of new simulations and eliminates a large source of user errors. For very complex special cases the C++ libraries can be used similarly to PyTOUGH. Model grids are established in 3D using the Visualization Toolkit (VTK) library and thus simplify many of the pre- and post-processing steps. Equation of State (EOS) classes include an unlimited number of tracers; custom classes with different thermodynamic properties can be easily implemented. Currently the most important EOS classes using air, CO2 and brine are included in the package. Wells are represented realistically, including coupling to wellbore simulators, surface networks and plant models. Custom smart plant models allow treatment of scenarios as realistically as desired by the user. Aside from standard reporting tools, the user can write custom reporters that can report any desired entity available through the simulation. Parameter estimation, sensitivity analysis and uncertainty propagation can be easily performed by using the iTOUGH2-PEST interface. |