83{
84 int i,j,element_nb_nodes;
86 unsigned int NNOD = *MAXNOD;
87 H3D_ID elem_id;
89
90
91
92 try {
93
94 unsigned int max_sims = 10;
95 unsigned int sub_count = 1;
96 float elem_result[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
97 float* elem_result1 = nullptr;
98 elem_result1 = new float[6 * NNOD];
99
100 for( i = 0; i < 6*NNOD; i++ )
101 {
102 elem_result1[i] = 0.0f;
103 }
104
105
106 unsigned int num_corners = 0;
107 unsigned int num_modes = 0;
109 float value[1] ;
110
112
113 if(*IS_CORNER_DATA == 1)
114 {
115 if(*NUMELS != 0)
116 {
118 H3D_DS_TENSOR3D, NNOD , num_modes, *CPT_DATATYPE,
121
122 for( i = 0; i < *NUMELS; i++ )
123 {
124 if( ITY_ELEM[i] == 1 && IS_WRITTEN[i] == 1)
125 {
126 elem_id = ID_ELEM[i];
127 element_nb_nodes = ISOLNOD[i];
128
129 if( ISOLNOD[i] == 4)
130 {
131 for( j = 0; j < 4; j++ )
132 {
133 elem_result1[j*6] = FUNC_CORNER[6*(NNOD*(i)+j)];
134 elem_result1[j*6+1] = FUNC_CORNER[6*(NNOD*(i)+j)+1];
135 elem_result1[j*6+2] = FUNC_CORNER[6*(NNOD*(i)+j)+2];
136 elem_result1[j*6+3] = FUNC_CORNER[6*(NNOD*(i)+j)+3];
137 elem_result1[j*6+4] = FUNC_CORNER[6*(NNOD*(i)+j)+4];
138 elem_result1[j*6+5] = FUNC_CORNER[6*(NNOD*(i)+j)+5];
139 }
140 }
141
142 if( ISOLNOD[i] == 6)
143 {
144 for( j = 0; j < 6; j++ )
145 {
146 elem_result1[j*6] = FUNC_CORNER[6*(NNOD*(i)+j)];
147 elem_result1[j*6+1] = FUNC_CORNER[6*(NNOD*(i)+j)+1];
148 elem_result1[j*6+2] = FUNC_CORNER[6*(NNOD*(i)+j)+2];
149 elem_result1[j*6+3] = FUNC_CORNER[6*(NNOD*(i)+j)+3];
150 elem_result1[j*6+4] = FUNC_CORNER[6*(NNOD*(i)+j)+4];
151 elem_result1[j*6+5] = FUNC_CORNER[6*(NNOD*(i)+j)+5];
152 }
153 }
154
155 if( ISOLNOD[i] == 8)
156 {
157 for( j = 0; j < 8; j++ )
158 {
159 elem_result1[j*6] = FUNC_CORNER[6*(NNOD*(i)+j)];
160 elem_result1[j*6+1] = FUNC_CORNER[6*(NNOD*(i)+j)+1];
161 elem_result1[j*6+2] = FUNC_CORNER[6*(NNOD*(i)+j)+2];
162 elem_result1[j*6+3] = FUNC_CORNER[6*(NNOD*(i)+j)+3];
163 elem_result1[j*6+4] = FUNC_CORNER[6*(NNOD*(i)+j)+4];
164 elem_result1[j*6+5] = FUNC_CORNER[6*(NNOD*(i)+j)+5];
165 }
166 }
167
168
169 if( ISOLNOD[i] == 10)
170 {
171 for( j = 0; j < 10; j++ )
172 {
173 elem_result1[j*6] = FUNC_CORNER[6*(NNOD*(i)+j)];
174 elem_result1[j*6+1] = FUNC_CORNER[6*(NNOD*(i)+j)+1];
175 elem_result1[j*6+2] = FUNC_CORNER[6*(NNOD*(i)+j)+2];
176 elem_result1[j*6+3] = FUNC_CORNER[6*(NNOD*(i)+j)+3];
177 elem_result1[j*6+4] = FUNC_CORNER[6*(NNOD*(i)+j)+4];
178 elem_result1[j*6+5] = FUNC_CORNER[6*(NNOD*(i)+j)+5];
179 }
180 }
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
214 }
215 }
218 }
219 }
220
221 if(*NUMELS != 0)
222 {
224 H3D_DS_TENSOR3D, num_corners, num_modes, *CPT_DATATYPE,
227
228 for( i = 0; i < *NUMELS; i++ )
229 {
230 if( ITY_ELEM[i] == 1 && IS_WRITTEN[i] == 1)
231 {
232 elem_id = ID_ELEM[i];
233 elem_result[0] =
FUNC[6*i];
234 elem_result[1] =
FUNC[6*i+1];
235 elem_result[2] =
FUNC[6*i+2];
236 elem_result[3] =
FUNC[6*i+3];
237 elem_result[4] =
FUNC[6*i+4];
238 elem_result[5] =
FUNC[6*i+5];
240 IS_WRITTEN[i] = 0;
241 }
242 }
245 }
246
247
248 delete[] elem_result1;
249 elem_result1 = nullptr;
250
251 }
252
253 catch(...) {
255 }
256
257}
bool Hyper3DDatasetBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_SIM_IDX idx, H3D_ID subcase_id, H3D_DS_TYPE type, H3D_DS_FORMAT format, unsigned int num_corners, unsigned int num_modes, H3D_ID dt_id, int layer_idx, H3D_ID data_poolname_id, bool complex)
bool Hyper3DExportClearError(H3DFileInfo *h3d_file)
bool Hyper3DDatasetEnd(H3DFileInfo *h3d_file)
bool Hyper3DDatasetWrite(H3DFileInfo *h3d_file, H3D_ID id, const float *data)
integer, dimension(:), allocatable offset