Data associated with a geologic environment, which may be measured data, processed data, simulation results, etc., may be provided in a structured form. For example, data may be provided in a multi-dimensional array format (e.g., as stored in memory of a data storage device or system). Where such data is rendered to a display, the data may be at a resolution that corresponds to the resolution of the array format. For example, a two-dimensional array or a slice of a three-dimensional array may be rendered as a pixel image to a display, which may appear pixelated. Further, as an array may be quite large, processing of the data therein may take considerable time. For visualization of data, rendering directly from mathematical array structures to corresponding image pixels may be sub-optimal, for example, in terms of conveyance of information and timeliness (e.g., computational demands).
A method can include receiving an unstructured grid of a multi-dimensional region; partitioning at least a portion of the unstructured grid into subdomains based at least in part on a cell number criterion; generating a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; indexing cells in the subdomains based at least in part on the cell number criterion to define a data structure; and assigning respective property values to respective indexed cells for at least a portion of the data structure. A system can include a processor; memory operatively coupled to the processor; and modules that include processor-executable instructions stored in the memory to instruct the system where the instructions include instructions to receive an unstructured grid of a multi-dimensional region; partition at least a portion of the unstructured grid into subdomains based at least in part on a cell number criterion; generate a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; index cells in the subdomains based at least in part on the cell number criterion to define a data structure; and assign respective property values to respective indexed cells for at least a portion of the data structure. A computer-readable storage medium can include computer-executable instructions to instruct a computer where the instructions include instructions to: receive an unstructured grid of a multi-dimensional region; partition at least a portion of the unstructured grid into subdomains based at least in part on a cell number criterion; generate a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; index cells in the subdomains based at least in part on the cell number criterion to define a data structure; and assign respective property values to respective indexed cells for at least a portion of the data structure. Various other apparatuses, systems, methods, etc., are also disclosed.
This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.
Features and advantages of the described implementations can be more readily understood by reference to the following description taken in conjunction with the accompanying drawings.
This description is not to be taken in a limiting sense, but rather is made merely for the purpose of describing the general principles of the implementations. The scope of the described implementations should be ascertained with reference to the issued claims.
As an example, a subsurface environment may be understood via data acquisition and analysis. As an example, seismology may be used to acquire data.
In such an example, the data may be subject to interpretation. For example, consider seismic interpretation as a process that involves examining seismic data (e.g., with respect to location and time or depth) to identify one or more types of subsurface structures (e.g., facies, horizons, faults, geobodies, etc.). Seismic data may optionally be interpreted with other data such as, for example, well log data. As an example, a process may include receiving data and generating a model based at least in part on such data.
A process may include determining one or more seismic attributes. A seismic attribute may be considered, for example, a way to describe, quantify, etc., characteristic content of seismic data. As an example, a quantified characteristic may be computed, measured, etc., from seismic data. As an example, a framework may include modules (e.g., processor-executable instructions stored in memory) to determine one or more seismic attributes. Seismic attributes may optionally be classified, for example, as volume attributes or surface attributes or one-dimensional attributes.
A seismic interpretation may be performed using displayable information, for example, by rendering information to a display device, a projection device, a printing device, etc. As an example, one or more color schemes (e.g., optionally including black and white or greyscale) may be referenced for displayable information to enhance visual examination of the displayable information. Where the human eye will be used or is used for viewing displayable information, a display scheme may be selected to enhance interpretation.
As an example, a geologic formation may be examined using seismology. For example, one or more seismic data acquisition techniques may be applied to acquire seismic data, which may be analyzed to understand better a geologic formation. As an example, seismic data and other data may be used to form a model of a geologic formation.
As an example, a geologic formation may be or include a reservoir. A reservoir may be defined as a subsurface body of rock that includes sufficient porosity and permeability to store and transmit fluids. As an example, seismic data and other data may be used to form a model of geologic formation that includes at least a portion of a reservoir. Such a model may be a grid cell model with one or more corresponding data structures suitable for input to a simulator. As an example, a simulator may simulate physical phenomena that may occur in a reservoir and output results (e.g., as values).
As an example, seismic interpretation may be performed using seismic to simulation software such as the PETREL® seismic to simulation software framework (Schlumberger Limited, Houston, Tex.), which includes various features to perform attribute analyses (e.g., with respect to a 3D seismic cube, a 2D seismic line, etc.). While the PETREL® seismic to simulation software framework is mentioned, other types of software, frameworks, etc., may be employed. As an example, a model built using a framework may be utilized by a simulator, for example, consider a reservoir simulator such as the ECLIPSE® simulator (Schlumberger Limited, Houston, Tex.), the INTERSECT® simulator (Schlumberger Limited, Houston, Tex.), etc.
As an example, “pay” may be a reservoir or portion of a reservoir that includes economically producible hydrocarbons (e.g., pay sand, pay zone, etc.). The overall interval in which pay sections occur may be referred to as the gross pay; where, for example, smaller portions of the gross pay that meet local criteria for pay (e.g., such as minimum porosity, permeability and hydrocarbon saturation) are net pay. As an example, a reservoir simulator may assess a geologic environment that includes a reservoir or reservoirs as to its physical properties that may be used to estimate pay.
In the example of
In an example embodiment, the simulation component 120 may rely on entities 122. Entities 122 may include earth entities or geological objects such as wells, surfaces, bodies, reservoirs, etc. In the system 100, the entities 122 can include virtual representations of actual physical entities that are reconstructed for purposes of simulation. The entities 122 may include entities based on data acquired via sensing, observation, etc. (e.g., the seismic data 112 and other information 114). An entity may be characterized by one or more properties (e.g., a geometrical pillar grid entity of an earth model may be characterized by a porosity property). Such properties may represent one or more measurements (e.g., acquired data), calculations, etc.
In an example embodiment, the simulation component 120 may operate in conjunction with a software framework such as an object-based framework. In such a framework, entities may include entities based on pre-defined classes to facilitate modeling and simulation. A commercially available example of an object-based framework is the MICROSOFT® .NET™ framework (Redmond, Wash.), which provides a set of extensible object classes. In the .NET™ framework, an object class encapsulates a module of reusable code and associated data structures. Object classes can be used to instantiate object instances for use in by a program, script, etc. For example, borehole classes may define objects for representing boreholes based on well data.
In the example of
As an example, the simulation component 120 may include one or more features of a simulator such as the ECLIPSE® reservoir simulator, the INTERSECT® reservoir simulator, etc. As an example, a simulation component, a simulator, etc. may optionally include features to implement one or more meshless techniques (e.g., to solve one or more equations, etc.). As an example, a reservoir or reservoirs may be simulated with respect to one or more enhanced recovery techniques (e.g., consider a thermal process such as SAGD, etc.).
In an example embodiment, the management components 110 may include features of a commercially available framework such as the PETREL® seismic to simulation software framework. The PETREL® framework provides components that allow for optimization of exploration and development operations. The PETREL® framework includes seismic to simulation software components that can output information for use in increasing reservoir performance, for example, by improving asset team productivity. Through use of such a framework, various professionals (e.g., geophysicists, geologists, and reservoir engineers) can develop collaborative workflows and integrate operations to streamline processes. Such a framework may be considered an application and may be considered a data-driven application (e.g., where data is input for purposes of modeling, simulating, etc.).
In an example embodiment, various aspects of the management components 110 may include add-ons or plug-ins that operate according to specifications of a framework environment. For example, a commercially available framework environment marketed as the OCEAN® framework environment (Schlumberger Limited, Houston, Tex.) allows for integration of add-ons (or plug-ins) into a PETREL® framework workflow. The OCEAN® framework environment leverages .NET® tools (Microsoft Corporation, Redmond, Wash.) and offers stable, user-friendly interfaces for efficient development. In an example embodiment, various components may be implemented as add-ons (or plug-ins) that conform to and operate according to specifications of a framework environment (e.g., according to application programming interface (API) specifications, etc.).
As an example, a framework may include features for implementing one or more mesh generation techniques. For example, a framework may include an input component for receipt of information from interpretation of seismic data, one or more attributes based at least in part on seismic data, log data, image data, etc. Such a framework may include a mesh generation component that processes input information, optionally in conjunction with other information, to generate a mesh. As an example, a mesh may be a grid. Such constructs (e.g., meshes or grids) may be defined by nodes, cells, intervals, segments, etc. As mentioned, a so-called meshless approach may be implemented, for example, based on points such as in a point cloud, etc.
In the example of
As an example, the domain objects 182 can include entity objects, property objects and optionally other objects. Entity objects may be used to geometrically represent wells, surfaces, bodies, reservoirs, etc., while property objects may be used to provide property values as well as data versions and display parameters. For example, an entity object may represent a well where a property object provides log information as well as version information and display information (e.g., to display the well as part of a model).
In the example of
In the example of
As mentioned, the system 100 may be used to perform one or more workflows. A workflow may be a process that includes a number of worksteps. A workstep may operate on data, for example, to create new data, to update existing data, etc. As an example, a may operate on one or more inputs and create one or more results, for example, based on one or more algorithms. As an example, a system may include a workflow editor for creation, editing, executing, etc. of a workflow. In such an example, the workflow editor may provide for selection of one or more pre-defined worksteps, one or more customized worksteps, etc. As an example, a workflow may be a workflow implementable in the PETREL® software, for example, that operates on seismic data, seismic attribute(s), etc. As an example, a workflow may be a process implementable in the OCEAN® framework. As an example, a workflow may include one or more worksteps that access a module such as a plug-in (e.g., external executable code, etc.).
As an example, reservoir simulation, petroleum systems modeling, etc. may be applied to characterize various types of subsurface environments, including environments such as those of
In
To proceed to modeling of geological processes, data may be provided, for example, data such as geochemical data (e.g., temperature, kerogen type, organic richness, etc.), timing data (e.g., from paleontology, radiometric dating, magnetic reversals, rock and fluid properties, etc.) and boundary condition data (e.g., heat-flow history, surface temperature, paleowater depth, etc.).
In basin and petroleum systems modeling, quantities such as temperature, pressure and porosity distributions within the sediments may be modeled, for example, by solving partial differential equations (PDEs) using one or more numerical techniques. Modeling may also model geometry with respect to time, for example, to account for changes stemming from geological events (e.g., deposition of material, erosion of material, shifting of material, etc.).
A commercially available modeling framework marketed as the PETROMOD® framework (Schlumberger Limited, Houston, Tex.) includes features for input of various types of information (e.g., seismic, well, geological, etc.) to model evolution of a sedimentary basin. The PETROMOD® framework provides for petroleum systems modeling via input of various data such as seismic data, well data and other geological data, for example, to model evolution of a sedimentary basin. The PETROMOD® framework may predict if, and how, a reservoir has been charged with hydrocarbons, including, for example, the source and timing of hydrocarbon generation, migration routes, quantities, pore pressure and hydrocarbon type in the subsurface or at surface conditions. In combination with a framework such as the PETREL® framework, workflows may be constructed to provide basin-to-prospect scale exploration solutions. Data exchange between frameworks can facilitate construction of models, analysis of data (e.g., PETROMOD® framework data analyzed using PETREL® framework capabilities), and coupling of workflows.
As shown in
As an example, a borehole may be vertical, deviate and/or horizontal. As an example, a tool may be positioned to acquire information in a horizontal portion of a borehole. Analysis of such information may reveal vugs, dissolution planes (e.g., dissolution along bedding planes), stress-related features, dip events, etc. As an example, a tool may acquire information that may help to characterize a fractured reservoir, optionally where fractures may be natural and/or artificial (e.g., hydraulic fractures). Such information may assist with completions, stimulation treatment, etc. As an example, information acquired by a tool may be analyzed using a framework such as the TECHLOG® framework (Schlumberger Limited, Houston, Tex.).
As to the convention 240 for dip, as shown, the three dimensional orientation of a plane can be defined by its dip and strike. Dip is the angle of slope of a plane from a horizontal plane (e.g., an imaginary plane) measured in a vertical plane in a specific direction. Dip may be defined by magnitude (e.g., also known as angle or amount) and azimuth (e.g., also known as direction). As shown in the convention 240 of
Some additional terms related to dip and strike may apply to an analysis, for example, depending on circumstances, orientation of collected data, etc. One term is “true dip” (see, e.g., DipT in the convention 240 of
As shown in the convention 240 of
In terms of observing dip in wellbores, true dip is observed in wells drilled vertically. In wells drilled in any other orientation (or deviation), the dips observed are apparent dips (e.g., which are referred to by some as relative dips). In order to determine true dip values for planes observed in such boreholes, as an example, a vector computation (e.g., based on the borehole deviation) may be applied to one or more apparent dip values.
As mentioned, another term that finds use in sedimentological interpretations from borehole images is “relative dip” (e.g., DipR). A value of true dip measured from borehole images in rocks deposited in very calm environments may be subtracted (e.g., using vector-subtraction) from dips in a sand body. In such an example, the resulting dips are called relative dips and may find use in interpreting sand body orientation.
A convention such as the convention 240 may be used with respect to an analysis, an interpretation, an attribute, etc. (see, e.g., various blocks of the system 100 of
Seismic interpretation may aim to identify and/or classify one or more subsurface boundaries based at least in part on one or more dip parameters (e.g., angle or magnitude, azimuth, etc.). As an example, various types of features (e.g., sedimentary bedding, faults and fractures, cuestas, igneous dikes and sills, metamorphic foliation, etc.) may be described at least in part by angle, at least in part by azimuth, etc.
As an example, equations may be provided for petroleum expulsion and migration, which may be modeled and simulated, for example, with respect to a period of time. Petroleum migration from a source material (e.g., primary migration or expulsion) may include use of a saturation model where migration-saturation values control expulsion. Determinations as to secondary migration of petroleum (e.g., oil or gas), may include using hydrodynamic potential of fluid and accounting for driving forces that promote fluid flow. Such forces can include buoyancy gradient, pore pressure gradient, and capillary pressure gradient.
As shown in
As an example, the one or more modules 270 may include instructions (e.g., stored in memory) executable by one or more processors to instruct the system 250 to perform various actions. As an example, the system 250 may be configured such that the one or more modules 270 provide for establishing the framework 170 of
As an example, a method can include structuring data associated with an unstructured grid in a “regular” type of data structure (e.g., a regular array, etc.). A resulting data structure may make presentation of properties of an unstructured grid (e.g., for the purposes of 2D or 3D visualization, etc.) more efficient (e.g., less demand as to computational resources, time, etc.).
As an example, a method may include implementing a space-filling curve process, which may be a curve (e.g., optionally including linear segments) that can be in a multi-dimensional space (e.g., a two-dimension space, a three-dimensional space, etc.). As an example, a space-filling curve (e.g., or curves) may be constructed iteratively. As an example, a space-filling curve may be a sequence of piecewise linear continuous curves. As an example, a hierarchy may be represented by a space-filling curve at one scale and another space-filling curve at another scale. For example, a region with four subdomains may be represented by a Z-order curve that has a single “Z” shape and, where a cell number criterion is four, the subdomains may be represented by a Z-order curve with four connected “Z” shapes (e.g., that more closely approximate a space-filling limit that may be at an individual cell level).
As an example, a space-filling curve can be a continuous curve (e.g., in 2 or 3 (or higher) dimensions). A space-filling curve may be in Euclidean space (e.g., such as in a 2-dimensional plane (e.g., a planar curve) or as in 3-dimensional space (space curve)). As mentioned, a so-called Z-order curve is a type of space-filling curve. A method may implement a Z-order curve process and/or one or more other types of space-filling curve processes. As an example, a curve may be intersecting (e.g., at one or more points) or may not be intersecting. As an example, a curve may be a fractal curve (e.g., a self-similar fractal curve). As an example, a space-filling curve may be a Peano curve, a Gosper curve, a Moore curve, a Hilbert curve, etc.
In the method 300, the generated hierarchical representation can be indexed to form a data structure, which may be an array. Such a data structure may be used to store information associated with the unstructured grid in a manner that is more efficient than a data structure associated with the unstructured grid with, for example, cell IDs in its native state.
As an example, a hierarchical representation may be a tree with nodes and branches where nodes may be generated via recursive partitioning of an unstructured grid. The hierarchical representation may be indexed such that, for example, cells correspond to entries in an array. For example, for a two-dimensional array, individual cell indices for cells 0 to 15 may correspond to array indices I and J of a 4×4 array. In such an example, for four subdomains and four cells per subdomain, the structure of the array (e.g., a data structure) may follow a Z-order (e.g., as in a Z-order curve) or, for example, an approximate Z-order.
As an example, a data structure per the method 300 of
As an example, data associated with an unstructured grid may be represented in an array where the array may be used to extract select data in blocks, which may correspond to individual regions, subdomains and cells (e.g., levels of detail) of the unstructured grid. In such an example, the array may be a data structure defined per a method such as the method 300 of
The method 300 is shown in
As to the grid 430, the cells differ in shape and size, which may, for example, allow the cells to more closely approximate features that may exist in a geologic formation. For example, cells may spatially conform to a fracture, a fault, etc. In such an example, one may more readily visualize a feature or features merely by examining an unstructured grid, as a structured grid may be no more than a regular stack of cuboids. Further, where property values are rendered to a display, for example, on a cell-by-cell basis of an unstructured grid, physical phenomena may be more readily understood with respect to spatial locations of a feature or features.
As to representing the grid 430 in a mathematical form, it may not be readily amenable to a simple x, y and z (e.g., or I, J and K) approach where ordering can be preserved. For example, the grid 430 may be not be directly representable mathematically by a three-dimensional array where ordering of entries in the three-dimensional array corresponds directly to ordering of cells in the grid 430. For such a reason, structured grids such as the grid 410 may provide some “mathematical” benefits over an unstructured grid such as the grid 430.
As mentioned, a method such as, for example, the method 300 of
In the example scenarios 500, processes 515, 525 and 535 are shown that transform the data 505 to corresponding grids 510, 520 and 530, which may be defined at least in part via structure along the structure spectrum 501. In the example scenarios 500, each of the grids 510, 520 and 530 is shown along with corresponding three-dimensional indices I, J and K. As an example, the data 505 may be organized via three-dimensional mathematical indices such as, for example, x, y and z (e.g., of a three-dimensional array).
As to the process 515, entries of the data 505 may be readily mapped to cells of the grid 510. For example, mapping of x, y and z entries of the data 505 to cells of the grid 510 may be consider voxel size and cell size where voxels and cells are cuboids. As to the process 525, it may be more complex than the process 515 as the grid 520 is not as structured as the grid 510. In such an example, the process 525 can account for irregularities of the grid 520 in the I and J directions to assure that data are properly mapped. As to the process 535, it may be more complex than the process 525 as the grid 530 is not as structured as the grid 520. In such an example, the process 535 can account for irregularities of the grid 530 in the I, J and K directions to assure that data are properly mapped.
The example scenarios 500 of
As an example, a method such as, for example, the method 300 of
As explained with respect to
As an example, a method such as, for example, the method 300 of
As an example, a grid cell model can include grid cells where properties are defined with respect to a position or positions of a grid cell. For example, a property may be defined as being at a centroid of a grid cell. As an example, consider cell properties such as porosity (e.g., a PORO parameter), permeability in an x-direction (e.g., a PERMX parameter), permeability in a y-direction (e.g., a PERMY parameter), permeability in a z-direction (e.g., a PERMZ parameter) and net-to-gross ratio (e.g., NTG) being defined as averages for a cell at a center of a cell. In such an example, the directions x, y and z may correspond to directions of indices (e.g., I, J and K) of a grid that may model a geologic formation.
As to the initialization and calculation block 740, for an initial time (e.g., t0), saturation distribution within a grid model of a geologic formation and pressure distribution within the grid model of the geologic formation may be set to represent an equilibrium state (e.g., a static state or “no-flow” state), for example, with respect to gravity. As an example, to approximate the equilibrium state, calculations can be performed. As an example, such calculations may be performed by one or more modules. As an example, a reservoir simulator may include a module for initialization using data to compute capillary and fluid gradients, and hence fluid saturation densities in individual cells of a grid model that represents a geologic formation.
Initialization aims to define fluid saturations in individual cells such that a “system” being modeled is in an equilibrium state (e.g., where no external forces are applied, no fluid flow should take place in a reservoir, a condition that may not be obeyed in practice). As an example, consider oil-water contact and assume no transition zone, for example, where water saturation is unity below an oil-water contact and at connate water saturation above the contact. A cell (e.g., or grid cell) may represent a point or points in space for purposes of simulating a geologic formation. Where an individual cell represents a volume and where that individual cell includes, for example, a center point for definition of properties, within the volume of that individual cell, the properties may be constant (e.g., without variation within the volume). In such an example, that individual cell includes one value per property, for example, one value for water saturation. As an example, an initialization process can include selecting a value for individual properties of individual cells.
As an example, saturation distribution may be generated based on one or more types of information. For example, saturation distribution may be generated from seismic information and saturation versus depth measurements in one or more boreholes (e.g., test wells, wells, etc.).
As mentioned, a reservoir simulator may advance in time. As an example, a numeric solver may be implemented that can generate a solution for individual time increments (e.g., points in time). As an example, a solver may implement an implicit solution scheme and/or an explicit solution scheme, noting that an implicit solution scheme may allow for larger time increments than an explicit scheme. Times at which a solution is desired may be set forth in a “schedule”. For example, a schedule may include smaller time increments for an earlier period of time followed by larger time increments.
A solver may implement one or more techniques to help assure stability, convergence, accuracy, etc. For example, when advancing a solution in time, a solver may implement sub-increments of time, however, an increase in the number of increments can increase computation time. As an example, an adjustable increment size may be used, for example, based on information of one or more previous increments.
As an example, a numeric solver may implement one or more of a finite difference approach, a finite element approach, a finite volume approach, etc. As an example, the ECLIPSE® reservoir simulator can implement central differences for spatial approximation and forward differences in time. As an example, a matrix that represents grid cells and associated equations may be sparse, diagonally banded and blocked as well as include off-diagonal entries.
As an example, a solver may implement an implicit pressure, explicit saturation (IMPES) scheme. Such a scheme may be considered to be an intermediate form of explicit and implicit techniques. In an IMPES scheme, saturations are updated explicitly while pressure is solved implicitly.
As governing equations tend to be non-linear (e.g., compositional, black oil, etc.), a Newton-Raphson type of technique may be implemented, which includes determining derivatives, iterations, etc. For example, a solution may be found by iterating according to the Newton-Raphson scheme where such iterations may be referred to as non-linear iterations, Newton iterations or outer iterations. Where one or more error criteria are fulfilled, the solution procedure has converged, and a converged solution has been found. Thus, within a Newton iteration, a linear problem is solved by performing a number of linear iterations, which may be referred to as inner iterations.
As an example, a solution scheme may be represented by the following pseudo-algorithm:
As an example, a solver may perform a number of inner iterations (e.g., linear) and a number of outer iterations (e.g., non-linear). As an example, a number of inner iterations may be of the order of about 10 to about 20 within an outer iteration while a number of outer iterations may be about ten or less for an individual time increment.
As mentioned, a method such as, for example, the method 300 of
As an example, a method such as, for example, the method 300 of
As illustrated in
As to the grid 830, features 832 are illustrated as being represented by cells that conform to shapes of the features. In such an example, each of the features 832 may be represented by smaller cells where cell size may increase as distance from a respective one of the features increases. As to physical phenomena, properties, etc. that may be associated with a geologic environment (e.g., a geologic formation) represented by the grid 830, a gradient may exist as to values where size of cells may depend on the gradient. For example, where a gradient is “steep”, cells may be sized to have a cell density that can illustrate the steepness of the gradient. And, for example, where a region includes values that are relatively constant, an individual cell may be sized to “cover” the region with, for example, an average value.
As an example, a region may be represented at least in part by an unstructured grid where a number of cells of the unstructured grid may be less than, for example, a number of cells associated with data, which may be, for example, property or other data. As an example, data may be seismic data, attribute data, simulation data, etc. As an example, a region represented by an unstructured grid may be more “compact” than a region represented by a structured grid. For example, a data structure for such an unstructured grid may be stored in less memory space than a data structure for an “underlying” structured grid (e.g., a grid from which data are taken for representation via the unstructured grid).
As mentioned, an unstructured grid in its native state may include cell IDs that are associated with an irregular data structure (e.g., data entries for two neighboring cells may not be neighboring entries in the irregular data structure). In such an example, handling of data from one or more sources to make such data appropriate for presentation with respect to cells of the unstructured grid may be more demanding than if the cell IDs of the unstructured grid were associated with a more regular data structure. As mentioned, a method such as, for example, the method 300 of
As an example, a reservoir simulator may process a model of a geologic environment where the model may include a grid cell model with a number of cells of the order of hundreds of thousands or more (e.g., even up to a billion or more cells). As an example, such a simulator may run in series and/or in parallel. As an example, a simulator may be executed using high performance computing clusters. As computing technology and techniques advance, models may become even larger, for example, as fidelity of available data continues to improve.
As an example, a simulator may include one or more modules that can provide for visualization of information. As an example, visualization capabilities may be included in a framework (e.g., PETREL® framework, the OCEAN® framework, etc.). As an example, a simulator may operate in a batch mode where simulation results may be stored to one or more data storage devices. In such an example, the simulator may be “free” to then process another batch, for example, rather than being tied up for purposes of visualization of information.
As an example, a computing system such as, for example, a workstation, may be used for purposes of visualization of information while, for example, a mainframe, supercomputer, computing cluster, etc. is available as a simulator purposes of simulation. In such an example, the computing system may access data stored to one or more data storage devices by the simulator and then process at least a portion of the data to generate one or more visualizations.
As an example, a computing system may be used for purposes of visualization of information by accessing data stored to one or more storage devices where such data may be, for example, seismic data (e.g., or attribute data, which may be derived at least in part from seismic data). As an example, data such as seismic data may be formatted according to one of the SEG-Y format standards (Society of Exploration Geophysicists), the ZGY format standard (e.g., a bricked format) or another format. As an example, seismic data may be stored with trace header information, which may assist in analysis of the seismic data. Seismic data may optionally be accessed, for example, according to a number of traces (e.g., in an inline, crossline or inline and crossline directions), which may be entire traces or portions thereof (e.g., for one or more particular times or depths). As an example, given a number of traces across a region, a process may access some of those traces in a sub-region by specifying inline and crossline indices (e.g., or geographic or grid coordinates) as well as a time or depth window.
As an example, a method can include accessing data from one or more data storage devices and representing at least a portion of the data as a visualization using an unstructured grid. In such an example, the data may be data associated with a simulator (e.g., as stored by a simulator, etc.), data associated with a seismic acquisition technique (e.g., as stored by acquisition equipment), or other type of data.
As an example, a method can optimize data transfer, display and memory management of properties associated with one or more regular grids for association with one or more at least partially unstructured grids (e.g., of arbitrary structure and regularity, or lack thereof, etc. As an example, a grid may be “unstructured” in multiple dimensions and be considered a partially unstructured grid or, for example, a wholly unstructured grid.
As an example, a method can include utilizing structured data types such as regular 3D arrays to efficiently represent properties of an unstructured grid for the purposes of 2D or 3D visualization. In such an example, the method may implement one or more techniques that can expedite processing, reduce computation demands, etc.
As an example, a method can include handling large quantities of structured data to be applied to one or more unstructured grids. As an example, a method can include loading values to be displayed, rapidly providing approximate representations of the data and, for example, managing memory requirements associated with one or more large data volumes.
As an example, a method may include determining an integer numbering scheme for unstructured grid cells that includes assigning nearby numbers to geometrically proximal cells. For example, given a set of grid cells, the set may be partitioned into a number of subsets (e.g., an integer value of about four or more) of connected cells so as to have as a similar a number of cells in each subset (e.g., as similar a number of cells in each subset as may be desired, according to one or more cell number criteria). In such an example, the subsets may be recursively partitioned, for example, until a stopping criterion on a number of cells suitable for partitioning is reached. In such an example, a hierarchy may be derived from the partitioning and, for example, used to assign integer numbers to each cell so as to follow an ordering, which may be, for example, an approximate z-curve ordering.
As an example, consider a region that is partitioned into eight subdomains (e.g., a subdomain number criterion) where each of the subdomains may include at most four cells (e.g., a cell number criterion). In such an example, a hierarchy can include levels of detail (LoD) where one level of detail may correspond to one or more of the eight subdomains and where another level of detail may correspond to one or more of a maximum of 32 cells. In such an example, the region may be a three-dimensional region. As an example, a region may be a two-dimensional region. In such an example, consider partitioning the region into four subdomains (e.g., a subdomain number criterion) where each of the subdomains includes at most four cells (e.g., a cell number criterion). As an example, a region may optionally be a subdomain of a larger region. In such a manner a hierarchy may be generated that include a plurality of levels of detail (LoDs).
As an example, a method can include receiving an unstructured grid (e.g., consider cells numbered 0 to 13, 14 cells total) and recursively partitioning the unstructured grid into subdomains using a cell number criterion (e.g., consider a maximum of four cells per subdomain). In such an example, where cells of the unstructured grid include a native numbering, the cells may be re-numbered such that for a subdomain, the cells contained within it may be contiguous (e.g., including one or more fill values, if present). As an example, if a subdomain contains further partitioning into subdomains, the union of these cell indices may be contiguous. For example, consider selecting one subdomain and labeling the cells within it arbitrarily from 0 to 3, then the other sibling subdomains which share the same parent subdomain can be numbered contiguously from 4 to 15 (e.g., where a total of four subdomains exist with a maximum number of cells per subdomain of four). As an example, where more cells exist in a model, a numbering scheme can continue such that a hierarchical structure (e.g., a tree structure) may be obtained where the indices of children are bounded by the indices range of a parent. Such an approach to numbering may be spatially compact where partitioning organizes cells into sets which are spatially close.
As an example, indexing to define a data structure may include implementing a space-filling curve process (e.g., Z-ordering, etc.). For example, to layout data of a regular tree structure into a structured array, Z-ordering may be applied. For example, a Z-order approach may implement a Z-order curve in 2 and/or 3 dimensions, for example, where using a maximum of 4 or 8 cells per subdomain, respectively. As an example, a method can include mapping cell indices onto a 4×4 grid following a Z-order curve (e.g., or other type of space-filling curve).
In the example of
As illustrated in
As an example, a Z-order process (e.g., or other space-filling curve process) may be approximate, for example, when combined with a recursive partitioning process that includes a cell number criterion. In such an example, a subdomain created via partitioning may include fewer cells than a cell number criterion such that a “fill” Z-order point exists in a hierarchy that does not “physically” exist in a corresponding subdomain.
As an example, indexing may be applied to cell indices to, for example, define a data structure (e.g., an array). For example, cell indices may be organized by subdomains in a Z-pattern as blocks of an array where within individual blocks cell indices may be organized in Z-patterns.
As an example, a method can include re-numbering of cells, which may be considered indexing or re-indexing. Such a method may be an inherent result of partitioning that can generate a hierarchical representation of an unstructured grid. Such cell numbers or indices may be indexed to define a data structure. For example, cell with an index of “4” may be indexed in an array with indices I, J as an entry I=2, J=2. Such a cell can be in a block of the array that includes cells and/or fill of a subdomain.
As illustrated in
As an example, per the Z-order block 935, a new ordering may be a Z-order that can be determined by assigning contiguous integer indices to cells within a subdomain, which can help to ensure that geometric proximity is strongly associated with cell index proximity (e.g., for purposes of defining a data structure). For example, in the ordering of R1 as received, the cell with index 1 is not adjacent to the cell with index 2, rather, cells indexed 13 and 9 are disposed between the cells indexed 1 and 2. In contrast, through partitioning into subdomains, the cell indexed 1 is now indexed 13 and adjacent to cells indexed 12 and 14 of the subdomain SD4 while the cell indexed 2 is now indexed 5 and adjacent to cells indexed 4 and 6 of the subdomain SD2.
As an example, a method can include allocating to each of a plurality of subdomains an index-range wide enough to accommodate the subdomain with the most cells; whereas, for those subdomains with fewer cells, not every index in that subdomain will be used; these unused indices may be referred to as “fill” indices or nodes (e.g., of a hierarchical representation, etc.). The values of the “fill” nodes may not be directly provided as they do not have corresponding physical cells, however one or more of them may, for example, contribute to forming one or more averaged versions of properties at lower levels of detail (e.g., or one or more other computed values such as, for example, one or more statistical values).
As an example, partitioning may be performed according to one or more rules. For example, consider a “distributed” rule and/or a “concentrated” rule. As to a distributed rule, consider partitioning such that the fill, if any, is distributed (see, e.g., the fill indices 7 and 15 of the example hierarchy 1010 of
As an example, a method that may include “fill” nodes (e.g., or fill cells) may include omitting these from a physical file (e.g., by taking advantage of sparse functionality in an array (e.g., an ability not to explicitly define null elements). As an example, a method that may include “fill” nodes may include creating a structured array up to dimensions sufficient to hold “non-fill” nodes.
As an example, a method can include receiving an unstructured grid of a region with an existing ordering, a partitioning of the region into subdomains (e.g., in a recursive manner where each subdomain includes a number of cell that may be equal to or less than a cell number criterion), and space-filling curve ordering of cells therein (e.g., as an indexing process that may be suitable for mapping, etc.). As an example, a method can include generating a hierarchical representation of a region of an unstructured grid. In such an example, the hierarchical representation may be a tree (e.g., a tree structure) generated, for example, via recursive partitioning. In such an example, space-filling curve ordering may be implemented, for example, such that new cell indices (e.g., cell IDs) are contiguous for children of a node (e.g., a subdomain, etc.) in the tree. As an example, a method can include partitioning and/or indexing using one or more rules that pertain to fill (e.g., unused indices, unused nodes, etc.). Referring again to
As an example, due to a regular structure of a tree, new numbering can be used to directly map the data back to a 2D square or 3D cube using a space-filling curve algorithm. As an example, a Z-order curve algorithm may be applied to an unstructured grid as to its initial indices to “linearize” the order of these indices. For example, as illustrated in
As an example, a method can include performing a transformation from a space-filling curve order ID to I, J and K indices (e.g., of a data structure, which itself may be “ordered”). In such an example, a map may be generated (e.g., and stored in memory) or, for example, a transformation may be performed in an on-demand manner (e.g., “on the fly”, responsive to a call, etc.). As an example, a map may reference used indices and not unused indices, which may reduce map size. As an example, for a three-dimensional map, I, J and K indices may be used. As an example, where a map includes time as a dimension, an additional index may be used (e.g., for a series of maps for individual times). A data structure may include one or more values per index n-tuple (e.g., index pair, index triple, index quadruple). For example, a cell may be associated with a property value, property values, etc. A map may include dimensions sufficient to map transformed indexed cells of a hierarchical representation of an unstructured grid to original indexed cells of the unstructured grid.
As an example, once cells have been mapped to an structured array, level of details versions of properties may be calculated directly by considering averages recursively, for example, over 2×2(×2) blocks of data (e.g., as may depend on a cell number criterion). In such an example, blocks of data may correspond directly to recursive partitions used to generate the ordering and hence partitioning criteria can have an effect on generation of level of detail averages (e.g., or other calculated values that may be based on a plurality of cells).
As shown in
As an example, a level of detail property computation may provide a low resolution version of a property; however, they may still be applied to a full resolution mesh. As an example, results of calculations that are made for at a particular level of detail may be used to expedite calculations at another level of detail. For example, where calculations are performed at a subdomain level (e.g., to average cells), results of those calculations may expedite calculations to be performed at a region level. For example, where cell property values of cells of each of the subdomains SD1 to SD4 are averaged to provide individual average values for each of the subdomains SD1 to SD4, those values may be used to provide an individual average value for the region R1.
As mentioned, the level of detail properties can provide a low resolution version of a property and they can still be applied to a full resolution mesh. To find the indices into the level of detail arrays associated with a cell in the full resolution mesh then the mapping from Cell ID to structure array indices is first used and then resulting indices are divided by 2 to the power of the level of detail being displayed, for example, with 0 being full resolution, and a higher value being progressively more coarsened.
As an example, a method can include partitioning properties separately, for example, to minimize property value variance within cells to be averaged. As an example, computations may calculate values other than averages. As an example, statistics may be computed for a plurality of cells and represented as values where a visualization rendered to a display may illustrate how the values vary over a region or regions.
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 1500. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, a method may aim to implement a common partitioning for individual properties in a group of properties. As an example, a method may include partitioning according to a partitioning criterion or criteria. For example, a method may include partitioning along low transmissibility edges so that features such as sealing faults do not have properties averaged over them.
As an example, the method 1600 may include a decision block 1670 for deciding whether to select another feature, another group of features, etc. as a criterion or criteria to perform partitioning per the partition block 1620. Where a decision is made to select at least one other feature, the method 1600 may continue at the selection and identification block 1615, otherwise, for example, the method 1600 may end at the termination block 1680 or take one or more other actions. As to other actions, for example, consider assigning respective property values per the block 1650 at a different level of detail of the generated hierarchical representation. As another example, consider assigning respective statistical values, for example, based on a statistical computation for a plurality of cells in a subdomain, a region, etc.
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 1600. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, a method can include using parallel processing. For example, consider a parallel simulator (e.g., a simulator with parallel processing circuitry) where parallel partitioning may be incorporated into partitioning used to generate Z-order curve(s). In such an example, a number of parallel partitions may be selected independently from a constraint to map a grid to a regular array. In such an example, a result may include a fixed number of nodes (e.g., the parallel partitions) at some level within a hierarchical representation (e.g., a tree structure with nodes and branches). For example, as a result an optimal partitioning as shown in concentrated hierarchy 1130 of
As an example, a computing system may include a hypervisor that may operate one or more virtual machines that can be implemented in parallel to perform parallel processing. As an example, a hypervisor may be software, firmware and/or hardware that can create virtual machines. A computing device or system on which a hypervisor is running one or more virtual machines may be defined as a host machine where, for example, each virtual machine may be referred to as a guest machine.
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 1700. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, for grids that include one or more local grid refinements (LGRs), one or more options may exist as to handling of such one or more LGRs. One option can be treating LGR cells like other cells in a grid. In such an example, as a result, the LGR cells may belong to differing partitions higher up a hierarchical structure (e.g., a tree, etc.) and therefore the cells' values might not be particularly close in a data structure (e.g., an array), and hence in a physical file stored in memory. As an example, an option may be to handle LGR cells such that they intentionally form a single partition at some level in a hierarchy (e.g., a tree), for example, to ensure that the LGR cells are contiguous in a space-filling curve order (e.g., Z-order, etc.) and hence close in a data structure (e.g., an array) as may be stored as a physical file in memory. As an example, a method may include performing a separate mapping for LGR cell IDs to data structure indices, for example, to help ensure that LGR cell values can be accessed efficiently, for example, independently from a global grid. In such an example, this can result in one mapping (e.g., akin to the concentrated hierarchy 1130 of
As shown in
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 1800. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, for time-varying properties (e.g., and/or for a time varying grid), a method may employ, for example, a dimensional array that includes a time dimension (e.g., a three-dimensional array for a two-dimensional region, a four-dimensional array for a three-dimensional region, etc.). As an example, a method may include stacking data (e.g., organizing data) along a dimension in an array (e.g., with respect to time). In such an example, if the data are stacked then a certain amount of space may be left between each instance, for example, to help ensure that LoD versions of properties do not start to average values from two adjacent instances. As an example, a method may include capping a level of detail hierarchy and ensuring that a corresponding degree of separation between adjacent instances. As an example, having multiple instances of data within a single array may provide benefits, for example, such an approach may facilitate consuming applications to pre-fetch data for subsequent time steps from other parts of the array.
The method 1900 of
As an example, a change to a grid may include introduction of cells via, for example, local grid refinement. As an example, a change to a grid may include movement of one or more cell boundaries such that a new partitioning may represent better the grid that a partitioning for a prior time. For example, consider movement of a fault, movement of fluid, etc. As an example, where one or more features move and/or become more refined via introduction of cells in a grid, a method may include time-based partitioning such that individual times may be associated with individual partitions (e.g., and hierarchies). As an example, depending on the type of movement, some “overlap” may exist and a data structure at one time may be suitable for use at least in part at another time (e.g., consider a “delta” data structure that represents a changed portion of a grid).
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 1900. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, a method can include filtering and/or sorting of information as may be associated with subdomains, cells, etc. represented by a hierarchy (e.g., a tree, etc.). As an example, consider a method that includes filtering of property values based at least in part on minimum and maximum values of the property at one or more individual levels of detail, which may, for example, be additionally recorded such that if a node in a hierarchy (e.g., a tree, etc.) includes minimum and maximum values that do not overlap with the range of the filter such a condition can imply that higher resolution level of detail (LoD) nodes will lie outside the range of the filter. In such a manner, an efficient hierarchical search may be employed that may, for example, alleviate having to loading property values at one or more levels of detail (e.g., more refined levels of detail). As an example, as values at one or more levels of detail may be approximations as to values of a full resolution grid, data transfer, storage and/or computation demands may optionally be reduced by, for example, reduction of bit length. For example, 32 bit values may be reduced to 16 bit values or 8 bit values, 16 bit values may be reduced to 8 bit values, etc. As an example, a method may include mapping values to lower bit length values.
The method 2000 includes an assignment block 2054 for assigning property values (e.g., or other values, as desired), a reception block 2058 for receiving one or more filter parameters (e.g., and/or sorting parameters, etc.), a commencement block 2062 for commencing filtering at the LoD X, a decision block 2066 for deciding whether the filter criterion or criteria are met at LoD X, if not, the method 2000 continues to an output block 2068 for outputting filter results. However, if the one or more filter criteria (e.g., per the reception block 2058) are met at LoD X, the method 2000 continues at a commencement block 2070 for filtering at LoD X+1 and then a decision block 2074 for deciding whether the filter criterion or criteria are met at LoD X+1, if not, the method 2000 continues to an output block 2068 for outputting filter results. However, if the one or more filter criteria (e.g., per the reception block 2058) are met at LoD X+1, the method 2000 continues at a commencement block 2078 for filtering at LoD X+2 and then a decision block 2082 for deciding whether the filter criterion or criteria are met at LoD X+2, if not, the method 2000 continues to an output block 2068 for outputting filter results. However, if the one or more filter criteria (e.g., per the reception block 2058) are met at LoD X+2, the method 2000 continues at a commencement block 2086 for filtering at LoD X+3 and then continues to an output block 2068 for outputting filter results. In the example of
As an example, medium or media may be configured with instructions to allow for, at least in part, performance of various actions of the method 2000. As an example, a computer-readable medium (CRM) may be a computer-readable storage medium that is non-transitory and that is not a carrier wave. As an example, one or more blocks may be in the form of a module such as, for example, one of the modules 270 of the system 250 of
As an example, a method can include storing values (e.g., property values) associated with a hierarchy in a 1D array, for example, using a space-filling curve ordering directly (e.g., consider Z-order curve ordering, etc.). In such an example, where a level of detail averaging is desired to work on a constant number of cells (e.g., 4, 8, etc.), then fill cells, if present, may still be inserted into the 1D array. As an example, a method may include retaining fill cells to make mapping between a space-filling curve order ID for a root LoD (e.g., LoD 0) and one or more higher levels facile. As an example, a method may include, where level of detail averaging is implemented over a varying number of cells, recording start and end indices of each LoD at each level so that, for a given cell ID, a space-filling curve order ID may be looked-up in a mapping and then the ID at a given LoD.
As an example, a method can include receiving an unstructured grid of a multi-dimensional region; partitioning at least a portion of the unstructured grid into subdomains; generating a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; indexing cells in the subdomains based at least in part on a cell number criterion to define a data structure; and assigning respective property values to respective indexed cells for at least a portion of the data structure. As an example, such a method may include rendering a visualization of at least some of the property values of respective indexed cells to a display. As an example, a data structure may be defined to include fill. For example, fill may be a result of a subdomain including fewer cells than specified by a cell number criterion, which may be a maximum cell number per subdomain. For example, where a maximum cell number per subdomain is four, where a subdomain includes three cells, the data structure can include a block for those three cells and a fill block. In such a manner, a data structure may be regular even though a number of subdomains of a region of an unstructured grid are not (e.g., a number of cells in at least one subdomain differs from a number of cells in another subdomain of a region).
As an example, a method can include a cell number criterion that specifies a maximum cell number per subdomain. In such an example, a data structure can be defined to include fill that accounts for at least one of a plurality of subdomains in a region of an unstructured grid including a number of cells that is less than the maximum cell number per subdomain.
As an example, a method can include indexing based at least in part on a space-filling curve ordering technique (e.g., a Z-order curve technique, etc.). For example, a hierarchy such as a tree may be Z-ordered to form an array such that nodes of the tree that represent cells (e.g., or fill) may be organized as indexed entries of an array. As an example, a method can include generating a map based at least in part on a space-filling curve ordering technique (e.g., a Z-order curve technique, etc.).
As an example, a method can include recursive partitioning where each recursion generates a level of detail. As an example, a subdomain may include cells, which may be further partitioned into subdomains that include cells. As an example, a most refined level of detail may include a plurality of individual cells.
As an example, a method can include generating a hierarchical representation that includes levels of detail (LoDs). As an example, partitioning may include recursive partitioning that can iteratively generate levels of detail (LoD). As an example, partitioning may be performed at least in part using parallel processing.
As an example, a method can include identifying at least one feature of a multi-dimensional region and partitioning at least a portion of an unstructured grid for the multi-dimensional region into subdomains based at least in part on the at least one identified feature. In such an example, the at least one feature may include a low transmissibility feature. As an example, a low transmissibility feature may be a fault such as, for example, a sealed fault.
As an example, a method can include parallel processing, for example, for partitioning a region into subdomains and/or indexing cells of subdomains.
As an example, a method can include generating a subdomain for a portion of an unstructured grid that includes a locally refined grid (LGR). As an example, an LGR may be to more accurately model a feature. In such an example, a feature may be, for example, a low transmissibility feature.
As an example, property values may correspond to a time and a method may include repeating at least part of a process that includes assigning for property values to assign property values that correspond to a different time.
As an example, a method can include filtering at least a portion of property values based at least in part on at least one filter criterion and at least in part on a hierarchical representation of an unstructured grid of a multi-dimensional region.
As an example, a system can include a processor; memory operatively coupled to the processor; and modules that include processor-executable instructions stored in the memory to instruct the system where the instructions include instructions to receive an unstructured grid of a multi-dimensional region; partition at least a portion of the unstructured grid into subdomains; generate a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; index cells in the subdomains based at least in part on a cell number criterion to define a data structure; and assign respective property values to respective indexed cells for at least a portion of the data structure. In such an example, the instructions to index cells can include instructions to index cells at least in part via a space-filling curve technique (e.g., a Z-order curve technique, etc.).
As an example, a system can include instructions to identify at least one feature of a multi-dimensional region and to partition at least a portion of an unstructured grid of the multi-dimensional region into subdomains based at least in part on the at least one identified feature.
As an example, a system can include instructions to filter at least a portion of property values based at least in part on at least one filter criterion and at least in part on hierarchical representation of an unstructured grid of a multi-dimensional region.
As an example, a computer-readable storage medium can include computer-executable instructions to instruct a computer where the instructions include instructions to: receive an unstructured grid of a multi-dimensional region; partition at least a portion of the unstructured grid into subdomains; generate a hierarchical representation of the at least a portion of the unstructured grid that includes the subdomains and the cells; index cells in the subdomains based at least in part on a cell number criterion to define a data structure; and assign respective property values to respective indexed cells for at least a portion of the data structure. In such an example, instructions to index cells can include instructions to index cells at least in part via a space-filling curve technique (e.g., a Z-order curve technique, etc.).
In an example embodiment, components may be distributed, such as in the network system 2110. The network system 2110 includes components 2122-1, 2122-2, 2122-3, . . . 2122-N. For example, the components 2122-1 may include the processor(s) 2102 while the component(s) 2122-3 may include memory accessible by the processor(s) 2102. Further, the component(s) 2102-2 may include an I/O device for display and optionally interaction with a method. As an example, one or more of the components 2122-1, 2122-2, 2122-3, . . . 2122-N may be or include a display. The network may be or include the Internet, an intranet, a cellular network, a satellite network, etc.
As an example, a device may be a mobile device that includes one or more network interfaces for communication of information. For example, a mobile device may include a wireless network interface (e.g., operable via IEEE 802.11, ETSI GSM, BLUETOOTH®, satellite, etc.). As an example, a mobile device may include components such as a main processor, memory, a display, display graphics circuitry (e.g., optionally including touch and gesture circuitry), a SIM slot, audio/video circuitry, motion processing circuitry (e.g., accelerometer, gyroscope), wireless LAN circuitry, smart card circuitry, transmitter circuitry, GPS circuitry, and a battery. As an example, a mobile device may be configured as a cell phone, a tablet, etc. As an example, a method may be implemented (e.g., wholly or in part) using a mobile device. As an example, a system may include one or more mobile devices.
As an example, a system may be a distributed environment, for example, a so-called “cloud” environment where various devices, components, etc. interact for purposes of data storage, communications, computing, etc. As an example, a device or a system may include one or more components for communication of information via one or more of the Internet (e.g., where communication occurs via one or more Internet protocols), a cellular network, a satellite network, etc. As an example, a method may be implemented in a distributed environment (e.g., wholly or in part as a cloud-based service).
As an example, information may be input from a display (e.g., consider a touchscreen), output to a display or both. As an example, information may be output to a projector, a laser device, a printer, etc. such that the information may be viewed. As an example, information may be output stereographically or holographically. As to a printer, consider a 2D or a 3D printer. As an example, a 3D printer may include one or more substances that can be output to construct a 3D object. For example, data may be provided to a 3D printer to construct a 3D representation of a subterranean formation. As an example, layers may be constructed in 3D (e.g., horizons, etc.), geobodies constructed in 3D, etc. As an example, holes, fractures, etc., may be constructed in 3D (e.g., as positive structures, as negative structures, etc.).
Although only a few example embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments. Accordingly, all such modifications are intended to be included within the scope of this disclosure as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus, although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures. It is the express intention of the applicant not to invoke 35 U.S.C. §112, paragraph 6 for any limitations of any of the claims herein, except for those in which the claim expressly uses the words “means for” together with an associated function.
This application claims priority to and the benefit of U.S. Provisional Patent Application No. 61/894,460, filed 23 Oct. 2013, which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61894460 | Oct 2013 | US |