1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #ifndef HECMW_RESULT_INCLUDED
7 #define HECMW_RESULT_INCLUDED
8 
9 #include "hecmw_struct.h"
10 
11 struct hecmwST_result_data {
12   int ng_component;
13   int nn_component;
14   int ne_component;
15   int *ng_dof;
16   int *nn_dof;
17   int *ne_dof;
18   char **global_label;
19   char **node_label;
20   char **elem_label;
21   double *global_val_item;
22   double *node_val_item;
23   double *elem_val_item;
24 };
25 
26 extern void HECMW_result_free(struct hecmwST_result_data *result);
27 
28 extern int HECMW_result_init(struct hecmwST_local_mesh *hecMESH,
29                              int i_step, char *header, char *comment);
30 extern int HECMW_result_finalize(void);
31 
32 extern int HECMW_result_write_by_name(char *name_ID);
33 extern int HECMW_result_write_by_addfname(char *name_ID, char *addfname);
34 
35 extern int HECMW_result_write_ST_by_name(char *name_ID,
36                                          struct hecmwST_result_data *result,
37                                          int n_node, int n_elem, char *header, char *comment);
38 
39 extern struct hecmwST_result_data *HECMW_result_read_by_name(char *name_ID,
40                                                              int i_step);
41 extern struct hecmwST_result_data *HECMW_result_read_by_fname(char *filename);
42 
43 extern int HECMW_result_get_nnode(void);
44 extern int HECMW_result_get_nelem(void);
45 extern char *HECMW_result_get_header(char *buff);
46 extern char *HECMW_result_get_comment(char *buff);
47 extern int *HECMW_result_get_nodeID(int *buff);
48 extern int *HECMW_result_get_elemID(int *buff);
49 extern void HECMW_result_free_nodeID(void);
50 extern void HECMW_result_free_elemID(void);
51 
52 /*
53   functions defined in hecmw_result_bin_io.c
54  */
55 extern int HECMW_judge_result_bin_file(char *filename);
56 extern int HECMW_result_write_bin_by_fname(char *filename);
57 extern int HECMW_result_write_bin_ST_by_fname(
58     char *filename, struct hecmwST_result_data *result, int n_node, int n_elem,
59     char *header, char *comment);
60 extern struct hecmwST_result_data *HECMW_result_read_bin_by_fname(char *filename);
61 
62 /*
63   functions defined in hecmw_result_txt_io.c
64  */
65 extern int HECMW_result_write_txt_by_fname(char *filename);
66 extern int HECMW_result_write_txt_ST_by_fname(
67     char *filename, struct hecmwST_result_data *result, int n_node, int n_elem,
68     char *header, char *comment);
69 extern struct hecmwST_result_data *HECMW_result_read_txt_by_fname(char *filename);
70 
71 #endif
72