UnstructuredGrid.h
Go to the documentation of this file.
1/*
2 Copyright 2010, 2011, 2012 SINTEF ICT, Applied Mathematics.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef OPM_GRID_HEADER_INCLUDED
21#define OPM_GRID_HEADER_INCLUDED
22
23#include <stddef.h>
24#include <stdbool.h>
25
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37/*
38---- synopsis of grid.h ----
39
40struct UnstructuredGrid
41{
42 int dimensions;
43 int number_of_cells;
44 int number_of_faces;
45 int number_of_nodes;
46 int *face_nodes;
47 int *face_nodepos;
48 int *face_cells;
49 int *cell_faces;
50 int *cell_facepos;
51 double *node_coordinates;
52 double *face_centroids;
53 double *face_areas;
54 double *face_normals;
55 double *cell_centroids;
56 double *cell_volumes;
57 int *global_cell;
58 int cartdims[3];
59 int *cell_facetag;
60};
61
62void destroy_grid(struct UnstructuredGrid *g);
63
64struct UnstructuredGrid *
65create_grid_empty(void);
66
67struct UnstructuredGrid *
68allocate_grid(size_t ndims ,
69 size_t ncells ,
70 size_t nfaces ,
71 size_t nfacenodes,
72 size_t ncellfaces,
73 size_t nnodes );
74
75struct UnstructuredGrid *
76read_grid(const char *fname);
77
78 ---- end of synopsis of grid.h ----
79*/
80
81typedef unsigned grid_size_t;
82
101{
109
116
141
155
163
175 double *face_areas;
187
200
201
217
229 int cartdims[3];
247
248
249 /*
250 This vector is retained to be able to construct an
251 EclipseGrid representation of the Grid. If the grid
252 processor actually modifies the elements of the zcorn
253 vector from the input the modified version is stored here;
254 otherwise we just use the default.
255 */
256 double * zcorn;
257};
258
267
277struct UnstructuredGrid *
279
296struct UnstructuredGrid *
297allocate_grid(size_t ndims ,
298 size_t ncells ,
299 size_t nfaces ,
300 size_t nfacenodes,
301 size_t ncellfaces,
302 size_t nnodes );
303
304
309void
311 const double * zcorn);
312
313
321struct UnstructuredGrid *
322read_grid(const char *fname);
323
324
346bool
347grid_equal(const struct UnstructuredGrid *grid1,
348 const struct UnstructuredGrid *grid2);
349
350#ifdef __cplusplus
351}
352#endif
353
354#endif /* OPM_GRID_HEADER_INCLUDED */
void attach_zcorn_copy(struct UnstructuredGrid *G, const double *zcorn)
struct UnstructuredGrid * create_grid_empty(void)
void destroy_grid(struct UnstructuredGrid *g)
struct UnstructuredGrid * read_grid(const char *fname)
unsigned grid_size_t
Definition: UnstructuredGrid.h:81
struct UnstructuredGrid * allocate_grid(size_t ndims, size_t ncells, size_t nfaces, size_t nfacenodes, size_t ncellfaces, size_t nnodes)
bool grid_equal(const struct UnstructuredGrid *grid1, const struct UnstructuredGrid *grid2)
Definition: UnstructuredGrid.h:101
int * face_nodes
Definition: UnstructuredGrid.h:123
grid_size_t * face_nodepos
Definition: UnstructuredGrid.h:129
int number_of_cells
Definition: UnstructuredGrid.h:111
double * face_areas
Definition: UnstructuredGrid.h:175
int * cell_faces
Definition: UnstructuredGrid.h:148
int number_of_faces
Definition: UnstructuredGrid.h:113
double * cell_centroids
Definition: UnstructuredGrid.h:194
int * cell_facetag
Definition: UnstructuredGrid.h:246
double * cell_volumes
Definition: UnstructuredGrid.h:199
int * face_cells
Definition: UnstructuredGrid.h:140
grid_size_t * cell_facepos
Definition: UnstructuredGrid.h:154
double * zcorn
Definition: UnstructuredGrid.h:256
double * face_centroids
Definition: UnstructuredGrid.h:170
int number_of_nodes
Definition: UnstructuredGrid.h:115
int dimensions
Definition: UnstructuredGrid.h:108
int cartdims[3]
Definition: UnstructuredGrid.h:229
int * global_cell
Definition: UnstructuredGrid.h:216
double * face_normals
Definition: UnstructuredGrid.h:186
double * node_coordinates
Definition: UnstructuredGrid.h:162