FrontISTR  5.7.1
Large-scale structural analysis program with finit element method
hecmw_struct.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #ifndef HECMW_STRUCT_INCLUDED
7 #define HECMW_STRUCT_INCLUDED
8 
9 #include "hecmw_util.h"
10 
12  int n_sect;
13 
14  int *sect_type;
15 #define HECMW_SECT_TYPE_SOLID 1 /* 1:SOLID */
16 #define HECMW_SECT_TYPE_SHELL 2 /* 2:SHELL */
17 #define HECMW_SECT_TYPE_BEAM 3 /* 3:BEAM */
18 #define HECMW_SECT_TYPE_INTERFACE 4 /* 4:INTERFACE */
19 
20  int *sect_opt;
21 #define HECMW_SECT_OPT_PSTRESS 0 /* plane stress */
22 #define HECMW_SECT_OPT_PSTRAIN 1 /* plane strain */
23 #define HECMW_SECT_OPT_ASYMMETRY 2 /* axial symmetry */
24 #define HECMW_SECT_OPT_PSTRESS_RI 10 /* plane stress & reduced integral */
25 #define HECMW_SECT_OPT_PSTRAIN_RI 11 /* plane strain & reduced integral */
26 #define HECMW_SECT_OPT_ASYMMETRY_RI 12 /* axial symmetry & reduced integral */
32  double *sect_R_item;
33 };
34 
36  int n_mat;
40  char **mat_name;
44  double *mat_val;
45  double *mat_temp;
46 };
47 
48 struct hecmwST_mpc {
49  int n_mpc;
50  int *mpc_index;
51  int *mpc_item;
52  int *mpc_dof;
53  double *mpc_val;
54  double *mpc_const;
55 };
56 
58  int n_amp;
59  char **amp_name;
60 
62 #define HECMW_AMP_TYPEDEF_TABULAR 1 /* 1:TABULAR(default) */
63 
65 #define HECMW_AMP_TYPETIME_STEP 1 /* 1:STEP_TIME(default) */
66 
68 #define HECMW_AMP_TYPEVAL_RELATIVE 1 /* 1:RELATIVE(default) */
69 #define HECMW_AMP_TYPEVAL_ABSOLUTE 2 /* 2:ABSOLUTE */
70  int *amp_index;
71  double *amp_val;
72  double *amp_table;
73 };
74 
76  int n_grp;
77  char **grp_name;
78  int *grp_index;
79  int *grp_item;
80 
81  int n_bc;
82  int *bc_grp_ID;
83 
85 #define HECMW_BCGRPTYPE_DISPALCEMENT 1 /* 1:displacement */
86 #define HECMW_BCGRPTYPE_FLUX 2 /* 2:flux */
88  int *bc_grp_dof;
89  double *bc_grp_val;
90 };
91 
93  int n_grp;
94  char **grp_name;
95  int *grp_index;
96  int *grp_item;
97 
98  int n_bc;
99  int *bc_grp_ID;
100 
103  double *bc_grp_val;
104 };
105 
107  int n_grp;
108  char **grp_name;
109  int *grp_index;
110 
111  int *grp_item;
112  int n_bc;
113  int *bc_grp_ID;
114 
116 
118  double *bc_grp_val;
119 };
120 
122  int n_pair;
123  char **name;
124  int *type;
125 #define HECMW_CONTACT_TYPE_NODE_SURF 1 /* 1:NODE_SURF */
126 #define HECMW_CONTACT_TYPE_SURF_SURF 2 /* 2:SURF_SURF */
127 #define HECMW_CONTACT_TYPE_NODE_ELEM 3 /* 3:NODE_ELEM */
131 };
132 
134  int *index;
136  int *item_item;
137 };
138 
143 #define HECMW_FLAG_PARTTYPE_UNKNOWN 0 /* 0:unknown */
144 #define HECMW_FLAG_PARTTYPE_NODEBASED 1 /* 1:Node-based */
145 #define HECMW_FLAG_PARTTYPE_ELEMBASED 2 /* 2:Element-based */
149 #define HECMW_FLAG_PARTCONTACT_UNKNOWN 0 /* 0:unknown */
150 #define HECMW_FLAG_PARTCONTACT_AGGREGATE 1 /* 1:aggregate */
151 #define HECMW_FLAG_PARTCONTACT_DISTRIBUTE 2 /* 2:distribute */
152 #define HECMW_FLAG_PARTCONTACT_SIMPLE 3 /* 3:simple */
153 
156  char **files;
158  double zero_temp;
159 
160  /* Node */
161  int n_node;
166 
167  int *node_ID;
169 
170  double *node;
171  int n_dof;
176 
178  double *node_val_item;
179 
182 
183  /* Element */
184  int n_elem;
188 
189  int *elem_ID;
191  int *elem_type;
201 
205  double *elem_val_item;
206 
207  /* PE & Communication */
208  int zero;
210  int PETOT;
211  int PEsmpTOT;
212  int my_rank;
213  int errnof;
223 
224  /* Adaptation */
226  int n_adapt;
232 
236 
237  /* Refinement */
238  int n_refine;
244 
247  struct hecmwST_mpc *mpc;
254 };
255 
256 #endif
#define HECMW_FILENAME_LEN
Definition: hecmw_config.h:72
MPI_Comm HECMW_Comm
Definition: hecmw_config.h:30
#define HECMW_HEADER_LEN
Definition: hecmw_config.h:68
int * amp_type_definition
Definition: hecmw_struct.h:61
double * amp_table
Definition: hecmw_struct.h:72
double * bc_grp_val
Definition: hecmw_struct.h:103
struct hecmwST_section * section
Definition: hecmw_struct.h:245
double * elem_val_item
Definition: hecmw_struct.h:205
double * elem_mat_int_val
Definition: hecmw_struct.h:203
struct hecmwST_amplitude * amp
Definition: hecmw_struct.h:248
struct hecmwST_material * material
Definition: hecmw_struct.h:246
struct hecmwST_refine_origin * refine_origin
Definition: hecmw_struct.h:253
double * node_val_item
Definition: hecmw_struct.h:178
struct hecmwST_mpc * mpc
Definition: hecmw_struct.h:247
struct hecmwST_node_grp * node_group
Definition: hecmw_struct.h:249
double * node_init_val_item
Definition: hecmw_struct.h:181
struct hecmwST_contact_pair * contact_pair
Definition: hecmw_struct.h:252
struct hecmwST_surf_grp * surf_group
Definition: hecmw_struct.h:251
char gridfile[HECMW_FILENAME_LEN+1]
Definition: hecmw_struct.h:154
char header[HECMW_HEADER_LEN+1]
Definition: hecmw_struct.h:157
HECMW_Comm HECMW_COMM
Definition: hecmw_struct.h:209
struct hecmwST_elem_grp * elem_group
Definition: hecmw_struct.h:250
int * when_i_was_refined_node
Definition: hecmw_struct.h:227
int * when_i_was_refined_elem
Definition: hecmw_struct.h:228
int * mat_subitem_index
Definition: hecmw_struct.h:42
double * mat_val
Definition: hecmw_struct.h:44
double * mat_temp
Definition: hecmw_struct.h:45
int * mpc_dof
Definition: hecmw_struct.h:52
double * mpc_val
Definition: hecmw_struct.h:53
double * mpc_const
Definition: hecmw_struct.h:54
int * mpc_index
Definition: hecmw_struct.h:50
int * mpc_item
Definition: hecmw_struct.h:51
double * bc_grp_val
Definition: hecmw_struct.h:89
double * sect_R_item
Definition: hecmw_struct.h:32
int * sect_mat_ID_index
Definition: hecmw_struct.h:27
int * sect_mat_ID_item
Definition: hecmw_struct.h:28
double * bc_grp_val
Definition: hecmw_struct.h:118