ecl_sum_data.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2011 Equinor ASA, Norway.
3
4 The file 'ecl_sum_data.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_SUM_DATA_H
20#define ERT_ECL_SUM_DATA_H
21
22
23#include <stdlib.h>
24#include <stdint.h>
25#include <time.h>
26
27#include <ert/util/time_t_vector.hpp>
28#include <ert/util/double_vector.hpp>
30
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39typedef struct ecl_sum_data_struct ecl_sum_data_type ;
40
43 void ecl_sum_data_fwrite_step( const ecl_sum_data_type * data , const char * ecl_case , bool fmt_case , bool unified, int report_step);
44 void ecl_sum_data_fwrite( const ecl_sum_data_type * data , const char * ecl_case , bool fmt_case , bool unified);
46 bool ecl_sum_data_fread( ecl_sum_data_type * data , const stringlist_type * filelist, bool lazy_load, int file_options);
49 double ecl_sum_data_time2days( const ecl_sum_data_type * data , time_t sim_time);
52 bool ecl_sum_data_check_sim_time( const ecl_sum_data_type * data , time_t sim_time);
53 bool ecl_sum_data_check_sim_days( const ecl_sum_data_type * data , double sim_days);
55 double_vector_type * ecl_sum_data_alloc_data_vector( const ecl_sum_data_type * data , int data_index , bool report_only);
56 void ecl_sum_data_init_time_vector( const ecl_sum_data_type * data , time_t_vector_type * time_vector , bool report_only);
57 time_t_vector_type * ecl_sum_data_alloc_time_vector( const ecl_sum_data_type * data , bool report_only);
59 time_t ecl_sum_data_get_report_time( const ecl_sum_data_type * data , int report_step);
64 void ecl_sum_data_summarize(const ecl_sum_data_type * data , FILE * stream);
65 double ecl_sum_data_iget( const ecl_sum_data_type * data , int internal_index , int params_index );
66
69 void ecl_sum_data_get_interp_vector( const ecl_sum_data_type * data , time_t sim_time, const ecl_sum_vector_type * keylist, double_vector_type * results);
70
72
73 ecl_sum_data_type * ecl_sum_data_fread_alloc( ecl_smspec_type * , const stringlist_type * filelist , bool include_restart, bool lazy_load);
77
78 double ecl_sum_data_get_from_sim_time( const ecl_sum_data_type * data , time_t sim_time , const ecl::smspec_node& smspec_node);
79 double ecl_sum_data_get_from_sim_days( const ecl_sum_data_type * data , double sim_days , const ecl::smspec_node& smspec_node);
80
82 int ecl_sum_data_iget_report_step(const ecl_sum_data_type * data , int internal_index);
83 int ecl_sum_data_iget_report_end( const ecl_sum_data_type * data , int report_step );
84 ecl_sum_tstep_type * ecl_sum_data_add_new_tstep( ecl_sum_data_type * data , int report_step , double sim_seconds);
87 void ecl_sum_data_fwrite_interp_csv_line(const ecl_sum_data_type * data , time_t sim_time, const ecl_sum_vector_type * keylist, FILE *fp);
88 double ecl_sum_data_get_last_value(const ecl_sum_data_type * data, int param_index);
89 double ecl_sum_data_iget_last_value(const ecl_sum_data_type * data, int param_index);
90 double ecl_sum_data_iget_first_value(const ecl_sum_data_type * data, int param_index);
91 void ecl_sum_data_init_double_vector(const ecl_sum_data_type * data, int params_index, double * output_data);
92 void ecl_sum_data_init_datetime64_vector(const ecl_sum_data_type * data, int64_t * output_data, int multiplier);
93
94 void ecl_sum_data_init_double_frame(const ecl_sum_data_type * data, const ecl_sum_vector_type * keywords, double *output_data);
95 double_vector_type * ecl_sum_data_alloc_seconds_solution( const ecl_sum_data_type * data , const ecl::smspec_node& node , double value, bool rates_clamp_lower);
97 const ecl_sum_vector_type * keywords,
98 const time_t_vector_type * time_points,
99 double * output_data);
100
102 const ecl::smspec_node& smspec_node,
103 const time_t_vector_type * time_points,
104 double * output_data);
105
106
107#ifdef __cplusplus
108}
109#endif
110#endif
Definition: smspec_node.hpp:36
struct ecl_smspec_struct ecl_smspec_type
Definition: ecl_smspec.hpp:32
struct ecl_sum_vector_struct ecl_sum_vector_type
Definition: ecl_sum.hpp:56
int ecl_sum_data_iget_report_end(const ecl_sum_data_type *data, int report_step)
void ecl_sum_data_fwrite_interp_csv_line(const ecl_sum_data_type *data, time_t sim_time, const ecl_sum_vector_type *keylist, FILE *fp)
double_vector_type * ecl_sum_data_alloc_data_vector(const ecl_sum_data_type *data, int data_index, bool report_only)
void ecl_sum_data_init_double_vector(const ecl_sum_data_type *data, int params_index, double *output_data)
void ecl_sum_data_init_double_frame(const ecl_sum_data_type *data, const ecl_sum_vector_type *keywords, double *output_data)
int ecl_sum_data_get_first_report_step(const ecl_sum_data_type *data)
time_t ecl_sum_data_get_data_start(const ecl_sum_data_type *data)
void ecl_sum_data_init_time_vector(const ecl_sum_data_type *data, time_t_vector_type *time_vector, bool report_only)
void ecl_sum_data_free(ecl_sum_data_type *)
void ecl_sum_data_init_double_frame_interp(const ecl_sum_data_type *data, const ecl_sum_vector_type *keywords, const time_t_vector_type *time_points, double *output_data)
ecl_sum_tstep_type * ecl_sum_data_add_new_tstep(ecl_sum_data_type *data, int report_step, double sim_seconds)
time_t ecl_sum_data_get_sim_start(const ecl_sum_data_type *data)
int ecl_sum_data_get_report_step_from_days(const ecl_sum_data_type *data, double days)
int ecl_sum_data_get_report_step_from_time(const ecl_sum_data_type *data, time_t sim_time)
bool ecl_sum_data_report_step_compatible(const ecl_sum_data_type *data1, const ecl_sum_data_type *data2)
int ecl_sum_data_get_num_ministep(const ecl_sum_data_type *data)
double ecl_sum_data_iget_last_value(const ecl_sum_data_type *data, int param_index)
time_t_vector_type * ecl_sum_data_alloc_time_vector(const ecl_sum_data_type *data, bool report_only)
bool ecl_sum_data_report_step_equal(const ecl_sum_data_type *data1, const ecl_sum_data_type *data2)
double ecl_sum_data_get_last_value(const ecl_sum_data_type *data, int param_index)
void ecl_sum_data_fwrite_step(const ecl_sum_data_type *data, const char *ecl_case, bool fmt_case, bool unified, int report_step)
time_t ecl_sum_data_get_report_time(const ecl_sum_data_type *data, int report_step)
bool ecl_sum_data_can_write(const ecl_sum_data_type *data)
double ecl_sum_data_get_from_sim_time(const ecl_sum_data_type *data, time_t sim_time, const ecl::smspec_node &smspec_node)
double ecl_sum_data_get_from_sim_days(const ecl_sum_data_type *data, double sim_days, const ecl::smspec_node &smspec_node)
struct ecl_sum_data_struct ecl_sum_data_type
Definition: ecl_sum_data.hpp:39
int ecl_sum_data_get_length(const ecl_sum_data_type *data)
void ecl_sum_data_init_double_vector_interp(const ecl_sum_data_type *data, const ecl::smspec_node &smspec_node, const time_t_vector_type *time_points, double *output_data)
void ecl_sum_data_get_interp_vector(const ecl_sum_data_type *data, time_t sim_time, const ecl_sum_vector_type *keylist, double_vector_type *results)
void ecl_sum_data_init_datetime64_vector(const ecl_sum_data_type *data, int64_t *output_data, int multiplier)
double ecl_sum_data_iget_first_value(const ecl_sum_data_type *data, int param_index)
double ecl_sum_data_iget(const ecl_sum_data_type *data, int internal_index, int params_index)
time_t ecl_sum_data_iget_sim_time(const ecl_sum_data_type *, int)
double_vector_type * ecl_sum_data_alloc_seconds_solution(const ecl_sum_data_type *data, const ecl::smspec_node &node, double value, bool rates_clamp_lower)
void ecl_sum_data_reset_self_map(ecl_sum_data_type *data)
void ecl_sum_data_fwrite(const ecl_sum_data_type *data, const char *ecl_case, bool fmt_case, bool unified)
ecl_sum_data_type * ecl_sum_data_alloc(ecl_smspec_type *smspec)
int ecl_sum_data_get_last_report_step(const ecl_sum_data_type *data)
void ecl_sum_data_summarize(const ecl_sum_data_type *data, FILE *stream)
ecl_sum_data_type * ecl_sum_data_alloc_writer(ecl_smspec_type *smspec)
bool ecl_sum_data_has_report_step(const ecl_sum_data_type *, int)
ecl_sum_data_type * ecl_sum_data_fread_alloc(ecl_smspec_type *, const stringlist_type *filelist, bool include_restart, bool lazy_load)
bool ecl_sum_data_check_sim_days(const ecl_sum_data_type *data, double sim_days)
time_t ecl_sum_data_get_sim_end(const ecl_sum_data_type *data)
double ecl_sum_data_iget_sim_days(const ecl_sum_data_type *, int)
double ecl_sum_data_get_sim_length(const ecl_sum_data_type *data)
void ecl_sum_data_add_case(ecl_sum_data_type *self, const ecl_sum_data_type *other)
bool ecl_sum_data_check_sim_time(const ecl_sum_data_type *data, time_t sim_time)
int ecl_sum_data_iget_report_step(const ecl_sum_data_type *data, int internal_index)
double ecl_sum_data_time2days(const ecl_sum_data_type *data, time_t sim_time)
double ecl_sum_data_get_first_day(const ecl_sum_data_type *data)
bool ecl_sum_data_fread(ecl_sum_data_type *data, const stringlist_type *filelist, bool lazy_load, int file_options)
struct ecl_sum_tstep_struct ecl_sum_tstep_type
Definition: ecl_sum_tstep.hpp:31
T value(details::expression_node< T > *n)
Definition: exprtk.hpp:12955
static std::string data()
Definition: exprtk.hpp:40022
struct stringlist_struct stringlist_type
Definition: stringlist.hpp:34