My Project
preprocess.h
Go to the documentation of this file.
1 /*===========================================================================
2 //
3 // File: preprocess.h
4 //
5 // Created: Fri Jun 19 08:43:04 2009
6 //
7 // Author: Jostein R. Natvig <Jostein.R.Natvig@sintef.no>
8 //
9 // $Date$
10 //
11 // $Revision$
12 //
13 //==========================================================================*/
14 
15 /*
16  Copyright 2009, 2010 SINTEF ICT, Applied Mathematics.
17  Copyright 2009, 2010 Statoil ASA.
18 
19  This file is part of the Open Porous Media project (OPM).
20 
21  OPM is free software: you can redistribute it and/or modify
22  it under the terms of the GNU General Public License as published by
23  the Free Software Foundation, either version 3 of the License, or
24  (at your option) any later version.
25 
26  OPM is distributed in the hope that it will be useful,
27  but WITHOUT ANY WARRANTY; without even the implied warranty of
28  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29  GNU General Public License for more details.
30 
31  You should have received a copy of the GNU General Public License
32  along with OPM. If not, see <http://www.gnu.org/licenses/>.
33 */
34 
35 #ifndef OPM_PREPROCESS_HEADER
36 #define OPM_PREPROCESS_HEADER
37 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
56  struct grdecl {
57  int dims[3];
58  const double *coord;
59  const double *zcorn;
60  const int *actnum;
61  };
62 
66  enum face_tag {
70  NNC_FACE
71  };
72 
73 
78  struct processed_grid {
79  int m;
81  int n;
84  int dimensions[3];
88  int *face_nodes;
90  int *face_ptr;
107  };
108 
109 
131  void process_grdecl(const struct grdecl *g ,
132  double tol,
133  const int* is_aquifer_cell,
134  struct processed_grid *out,
135  int pinchActive);
136 
147  void free_processed_grid(struct processed_grid *g);
148 #ifdef __cplusplus
149 }
150 #endif
151 
152 
153 #endif /* OPM_PREPROCESS_HEADER */
154 
155 
156 /* Local Variables: */
157 /* c-basic-offset:4 */
158 /* End: */
face_tag
Connection taxonomy.
Definition: preprocess.h:66
@ K_FACE
Connection topologically normal to I-J plane.
Definition: preprocess.h:69
@ J_FACE
Connection topologically normal to I-K plane.
Definition: preprocess.h:68
@ NNC_FACE
Arbitrary non-neighbouring connection.
Definition: preprocess.h:70
@ I_FACE
Connection topologically normal to J-K plane.
Definition: preprocess.h:67
void process_grdecl(const struct grdecl *g, double tol, const int *is_aquifer_cell, struct processed_grid *out, int pinchActive)
Construct a prototypical grid representation from a corner-point specification.
Definition: preprocess.c:808
void free_processed_grid(struct processed_grid *g)
Release memory resources acquired in previous grid processing using function process_grdecl().
Definition: preprocess.c:991
Raw corner-point specification of a particular geological model.
Definition: preprocess.h:56
const double * coord
Pillar end-points.
Definition: preprocess.h:58
int dims[3]
Cartesian box dimensions.
Definition: preprocess.h:57
const double * zcorn
Corner-point depths.
Definition: preprocess.h:59
const int * actnum
Explicit "active" map.
Definition: preprocess.h:60
Result structure representing minimal derived topology and geometry of a geological model in corner-p...
Definition: preprocess.h:78
int * face_neighbors
Global cell numbers.
Definition: preprocess.h:92
enum face_tag * face_tag
Classification of grid's individual connections (faces).
Definition: preprocess.h:94
double * node_coordinates
Vertex coordinates.
Definition: preprocess.h:100
int * local_cell_index
Deceptively named local-to-global cell index mapping.
Definition: preprocess.h:105
int number_of_nodes_on_pillars
Total number of unique cell vertices that lie on pillars.
Definition: preprocess.h:98
int * face_nodes
Node (vertex) numbers of each face, stored sequentially.
Definition: preprocess.h:88
int number_of_cells
Number of active grid cells.
Definition: preprocess.h:104
int number_of_faces
Total number of unique grid faces (i.e., connections).
Definition: preprocess.h:86
int dimensions[3]
Cartesian box dimensions.
Definition: preprocess.h:84
int n
Upper bound on "number_of_nodes".
Definition: preprocess.h:81
int * face_ptr
Start position for each face's ‘face_nodes’.
Definition: preprocess.h:90
int number_of_nodes
Number of unique grid vertices.
Definition: preprocess.h:97
int m
Upper bound on "number_of_faces".
Definition: preprocess.h:79