Gs TL: the geostatistical template library in C++

  • Authors:
  • Nicolas Remy;Arben Shtuka;Bruno Levy;Jef Caers

  • Affiliations:
  • Department of Geological and Environmental Sciences, Stanford University, Braun Hall, Building 320, Stanford, CA;Ecole Superieure de Geologie, A.S.G.A.-Gocad Batiment G, BP 40- rue du Doyen Marcel Roubault, 54501 Vandoeuvre-les-Nancy, Cedex, France;Institut de Recherche en Informatique et en Autornatique, INRIA Lorraine/Loria, Technoptle de Nancy Brabois-Campus scientifique, 615, rue du Jardin Botanique, 54602 Villers-les-Nancy Cedex, France;Department of Petroleum Engineering, Stanford University, Stanford CA

  • Venue:
  • Computers & Geosciences
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

The development of geostatistics has been mostly accomplished by application-oriented engineers in the past 20 years. The focus on concrete applications gave birth to many algorithms and computer programs designed to address different issues, such as estimating or simulating a variable while possibly accounting for secondary information such as seismic data, or integrating geological and geometrical data. At the core of any geostatistical data integration methodology is a well-designed algorithm.Yet, despite their obvious differences, all these algorithms share many commonalities on which to build a geostatistics programming library, lest the resulting library is poorly reusable and difficult to expand.Building on this observation, we design a comprehensive, yet flexible and easily reusable library of geostatistics algorithms in C++.The recent advent of the generic programming paradigm allows us elegantly to express the commonalities of the geostatistical algorithms into computer code. Generic programming, also referred to as "programming with concepts", provides a high level of abstraction without loss of efficiency. This last point is a major gain over object-oriented programming which often trades efficiency for abstraction. It is not enough for a numerical library to be reusable, it also has to be fast.Because generic programming is "programming with concepts", the essential step in the library design is the careful identification and thorough definition of these concepts shared by most geostatistical algorithms. Building on these definitions, a generic and expandable code can be developed.To show the advantages of such a generic library, we use Gs TL to build two sequential simulation programs working on two different types of grids--a surface with faults and an unstructured grid without requiring any change to the Gs TL code.