ecl_rft_node.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2011 Equinor ASA, Norway.
3
4 The file 'ecl_rft_node.h' is part of ERT - Ensemble based Reservoir Tool.
5
6 ERT 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 ERT is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.
14
15 See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
16 for more details.
17*/
18
19#ifndef ERT_ECL_RFT_NODE_H
20#define ERT_ECL_RFT_NODE_H
21#ifdef __cplusplus
22extern "C" {
23#endif
24#include <stdbool.h>
25
27#include <ert/ecl/ecl_file.hpp>
29
30typedef enum { RFT = 1 ,
31 PLT = 2 ,
32 SEGMENT = 3 /* Not really implemented */ } ecl_rft_enum;
33
34typedef struct ecl_rft_node_struct ecl_rft_node_type;
35
39const ecl_rft_cell_type * ecl_rft_node_lookup_ijk( const ecl_rft_node_type * rft_node , int i, int j , int k);
40void ecl_rft_node_fprintf_rft_obs(const ecl_rft_node_type * , double , const char * , const char * , double );
43void ecl_rft_node_free__(void * );
46const char * ecl_rft_node_get_well_name( const ecl_rft_node_type * rft_node );
47void ecl_rft_node_iget_ijk( const ecl_rft_node_type * rft_node , int index , int *i , int *j , int *k);
48
49bool ecl_rft_node_is_RFT( const ecl_rft_node_type * rft_node );
50bool ecl_rft_node_is_PLT( const ecl_rft_node_type * rft_node );
52bool ecl_rft_node_is_MSW( const ecl_rft_node_type * rft_node );
53
54double ecl_rft_node_iget_pressure( const ecl_rft_node_type * rft_node , int index);
55double ecl_rft_node_iget_depth( const ecl_rft_node_type * rft_node , int index);
56double ecl_rft_node_iget_wrat( const ecl_rft_node_type * rft_node , int index);
57double ecl_rft_node_iget_grat( const ecl_rft_node_type * rft_node , int index);
58double ecl_rft_node_iget_orat( const ecl_rft_node_type * rft_node , int index);
59
60double ecl_rft_node_iget_swat( const ecl_rft_node_type * rft_node , int index);
61double ecl_rft_node_iget_sgas( const ecl_rft_node_type * rft_node , int index);
62double ecl_rft_node_iget_soil( const ecl_rft_node_type * rft_node , int index);
63void ecl_rft_node_fwrite(const ecl_rft_node_type * rft_node, fortio_type * fortio, ert_ecl_unit_enum unit_set);
64double ecl_rft_node_get_days(const ecl_rft_node_type * rft_node );
67
69ecl_rft_node_type * ecl_rft_node_alloc_new(const char * well_name, const char * data_type_string, const time_t recording_date, const double days);
70
72
73#ifdef __cplusplus
74}
75#endif
76#endif
77
int index
Definition: cJSON.h:168
struct ecl_file_view_struct ecl_file_view_type
Definition: ecl_file_view.hpp:50
struct ecl_rft_cell_struct ecl_rft_cell_type
Definition: ecl_rft_cell.hpp:29
bool ecl_rft_node_is_SEGMENT(const ecl_rft_node_type *rft_node)
double ecl_rft_node_iget_orat(const ecl_rft_node_type *rft_node, int index)
const ecl_rft_cell_type * ecl_rft_node_lookup_ijk(const ecl_rft_node_type *rft_node, int i, int j, int k)
const char * ecl_rft_node_get_well_name(const ecl_rft_node_type *rft_node)
ecl_rft_node_type * ecl_rft_node_alloc(const ecl_file_view_type *rft_view)
double ecl_rft_node_iget_depth(const ecl_rft_node_type *rft_node, int index)
bool ecl_rft_node_lt(const ecl_rft_node_type *n1, const ecl_rft_node_type *n2)
double ecl_rft_node_iget_soil(const ecl_rft_node_type *rft_node, int index)
bool ecl_rft_node_is_PLT(const ecl_rft_node_type *rft_node)
struct ecl_rft_node_struct ecl_rft_node_type
Definition: ecl_rft_node.hpp:34
double ecl_rft_node_iget_pressure(const ecl_rft_node_type *rft_node, int index)
const ecl_rft_cell_type * ecl_rft_node_iget_cell(const ecl_rft_node_type *rft_node, int index)
ecl_rft_node_type * ecl_rft_node_alloc_new(const char *well_name, const char *data_type_string, const time_t recording_date, const double days)
double ecl_rft_node_iget_swat(const ecl_rft_node_type *rft_node, int index)
double ecl_rft_node_get_days(const ecl_rft_node_type *rft_node)
void ecl_rft_node_append_cell(ecl_rft_node_type *rft_node, ecl_rft_cell_type *cell)
double ecl_rft_node_iget_wrat(const ecl_rft_node_type *rft_node, int index)
bool ecl_rft_node_is_MSW(const ecl_rft_node_type *rft_node)
double ecl_rft_node_iget_sgas(const ecl_rft_node_type *rft_node, int index)
int ecl_rft_node_get_size(const ecl_rft_node_type *)
void ecl_rft_node_fwrite(const ecl_rft_node_type *rft_node, fortio_type *fortio, ert_ecl_unit_enum unit_set)
void ecl_rft_node_inplace_sort_cells(ecl_rft_node_type *rft_node)
bool ecl_rft_node_is_RFT(const ecl_rft_node_type *rft_node)
ecl_rft_enum
Definition: ecl_rft_node.hpp:30
@ RFT
Definition: ecl_rft_node.hpp:30
@ SEGMENT
Definition: ecl_rft_node.hpp:32
@ PLT
Definition: ecl_rft_node.hpp:31
int ecl_rft_node_cmp(const ecl_rft_node_type *n1, const ecl_rft_node_type *n2)
void ecl_rft_node_free(ecl_rft_node_type *)
void ecl_rft_node_free__(void *)
double ecl_rft_node_iget_grat(const ecl_rft_node_type *rft_node, int index)
ecl_rft_enum ecl_rft_node_get_type(const ecl_rft_node_type *rft_node)
time_t ecl_rft_node_get_date(const ecl_rft_node_type *)
void ecl_rft_node_iget_ijk(const ecl_rft_node_type *rft_node, int index, int *i, int *j, int *k)
void ecl_rft_node_fprintf_rft_obs(const ecl_rft_node_type *, double, const char *, const char *, double)
const ecl_rft_cell_type * ecl_rft_node_iget_cell_sorted(ecl_rft_node_type *rft_node, int index)
ert_ecl_unit_enum
Definition: ecl_util.hpp:99
struct fortio_struct fortio_type
Definition: include/ert/ecl/fortio.h:42