FrontISTR  5.9.0
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 #define HECMW_AMP_TYPETIME_TOTAL 2 /* 2:TOTAL_TIME */
67 
69 #define HECMW_AMP_TYPEVAL_RELATIVE 1 /* 1:RELATIVE(default) */
70 #define HECMW_AMP_TYPEVAL_ABSOLUTE 2 /* 2:ABSOLUTE */
71  int *amp_index;
72  double *amp_val;
73  double *amp_table;
74 };
75 
77  int n_grp;
78  char **grp_name;
79  int *grp_index;
80  int *grp_item;
81 
82  int n_bc;
83  int *bc_grp_ID;
84 
86 #define HECMW_BCGRPTYPE_DISPALCEMENT 1 /* 1:displacement */
87 #define HECMW_BCGRPTYPE_FLUX 2 /* 2:flux */
89  int *bc_grp_dof;
90  double *bc_grp_val;
91 };
92 
94  int n_grp;
95  char **grp_name;
96  int *grp_index;
97  int *grp_item;
98 
99  int n_bc;
100  int *bc_grp_ID;
101 
104  double *bc_grp_val;
105 };
106 
108  int n_grp;
109  char **grp_name;
110  int *grp_index;
111 
112  int *grp_item;
113  int n_bc;
114  int *bc_grp_ID;
115 
117 
119  double *bc_grp_val;
120 };
121 
123  int n_pair;
124  char **name;
125  int *type;
126 #define HECMW_CONTACT_TYPE_NODE_SURF 1 /* 1:NODE_SURF */
127 #define HECMW_CONTACT_TYPE_SURF_SURF 2 /* 2:SURF_SURF */
128 #define HECMW_CONTACT_TYPE_NODE_ELEM 3 /* 3:NODE_ELEM */
132 };
133 
135  int *index;
137  int *item_item;
138 };
139 
144 #define HECMW_FLAG_PARTTYPE_UNKNOWN 0 /* 0:unknown */
145 #define HECMW_FLAG_PARTTYPE_NODEBASED 1 /* 1:Node-based */
146 #define HECMW_FLAG_PARTTYPE_ELEMBASED 2 /* 2:Element-based */
150 #define HECMW_FLAG_PARTCONTACT_UNKNOWN 0 /* 0:unknown */
151 #define HECMW_FLAG_PARTCONTACT_AGGREGATE 1 /* 1:aggregate */
152 #define HECMW_FLAG_PARTCONTACT_DISTRIBUTE 2 /* 2:distribute */
153 #define HECMW_FLAG_PARTCONTACT_SIMPLE 3 /* 3:simple */
154 /* the mode above occupies bits 0-7, the ownership scheme bit 8. OWNER_MASTER
155  * must stay zero so that a distributed mesh holding a bare mode value reads
156  * back as the master-owner scheme. Test with HECMW_partcontact_get_mode() and
157  * _get_owner(), never for equality against the whole flag. */
158 #define HECMW_FLAG_PARTCONTACT_MODE_MASK 0x00ff
159 #define HECMW_FLAG_PARTCONTACT_OWNER_MASK 0x0100
160 #define HECMW_FLAG_PARTCONTACT_OWNER_MASTER 0x0000 /* 0:master-owner */
161 #define HECMW_FLAG_PARTCONTACT_OWNER_SLAVE 0x0100 /* 1:slave-owner */
162 
165  char **files;
167  double zero_temp;
168 
169  /* Node */
170  int n_node;
175 
176  int *node_ID;
178 
179  double *node;
180  int n_dof;
185 
187  double *node_val_item;
188 
191 
192  /* Element */
193  int n_elem;
197 
198  int *elem_ID;
200  int *elem_type;
204  long long *elem_node_index;
210 
214  double *elem_val_item;
215 
216  /* PE & Communication */
217  int zero;
219  int PETOT;
220  int PEsmpTOT;
221  int my_rank;
222  int errnof;
232 
233  /* Adaptation */
235  int n_adapt;
241 
245 
246  /* Refinement */
247  int n_refine;
253 
256  struct hecmwST_mpc *mpc;
263 };
264 
265 #endif
#define HECMW_FILENAME_LEN
Definition: hecmw_config.h:74
MPI_Comm HECMW_Comm
Definition: hecmw_config.h:30
#define HECMW_HEADER_LEN
Definition: hecmw_config.h:70
int * amp_type_definition
Definition: hecmw_struct.h:61
double * amp_table
Definition: hecmw_struct.h:73
double * bc_grp_val
Definition: hecmw_struct.h:104
struct hecmwST_section * section
Definition: hecmw_struct.h:254
double * elem_val_item
Definition: hecmw_struct.h:214
double * elem_mat_int_val
Definition: hecmw_struct.h:212
struct hecmwST_amplitude * amp
Definition: hecmw_struct.h:257
struct hecmwST_material * material
Definition: hecmw_struct.h:255
struct hecmwST_refine_origin * refine_origin
Definition: hecmw_struct.h:262
double * node_val_item
Definition: hecmw_struct.h:187
struct hecmwST_mpc * mpc
Definition: hecmw_struct.h:256
struct hecmwST_node_grp * node_group
Definition: hecmw_struct.h:258
double * node_init_val_item
Definition: hecmw_struct.h:190
struct hecmwST_contact_pair * contact_pair
Definition: hecmw_struct.h:261
struct hecmwST_surf_grp * surf_group
Definition: hecmw_struct.h:260
long long * elem_node_index
Definition: hecmw_struct.h:204
char gridfile[HECMW_FILENAME_LEN+1]
Definition: hecmw_struct.h:163
char header[HECMW_HEADER_LEN+1]
Definition: hecmw_struct.h:166
HECMW_Comm HECMW_COMM
Definition: hecmw_struct.h:218
struct hecmwST_elem_grp * elem_group
Definition: hecmw_struct.h:259
int * when_i_was_refined_node
Definition: hecmw_struct.h:236
int * when_i_was_refined_elem
Definition: hecmw_struct.h:237
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:90
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:119