OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_dl.c
Go to the documentation of this file.
1//Copyright> OpenRadioss
2//Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3//Copyright>
4//Copyright> This program is free software: you can redistribute it and/or modify
5//Copyright> it under the terms of the GNU Affero General Public License as published by
6//Copyright> the Free Software Foundation, either version 3 of the License, or
7//Copyright> (at your option) any later version.
8//Copyright>
9//Copyright> This program is distributed in the hope that it will be useful,
10//Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11//Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12//Copyright> GNU Affero General Public License for more details.
13//Copyright>
14//Copyright> You should have received a copy of the GNU Affero General Public License
15//Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16//Copyright>
17//Copyright>
18//Copyright> Commercial Alternative: Altair Radioss Software
19//Copyright>
20//Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21//Copyright> software under a commercial license. Contact Altair to discuss further if the
22//Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23//
24#include <stdio.h>
25#include <string.h>
26#include <stdlib.h>
27#include <math.h>
28#include <fcntl.h>
29
30#define _FCALL
31
32#ifdef _WIN32
33/* Windows includes */
34#include <windows.h>
35#include <process.h>
36#include <io.h>
37#include <sys\types.h>
38#include <sys/stat.h>
39
40
41#elif 1
42/* Linux includes */
43#include <sys/resource.h>
44#include <sys/types.h>
45#include <time.h>
46#include <sys/stat.h>
47#include <unistd.h>
48#include <dlfcn.h>
49#include <stdbool.h>
50
51#endif
52
53#include "h3dpublic_defs.h"
54
55
56#ifdef _WIN32
57char * h3dlib="h3dwriter.dll";
58char libh3dpath[20000];
59char hwarch[200];
60HINSTANCE h3dhandle;
61#elif 1
62char * h3dlib="libh3dwriter.so";
65#endif
66char load_libname[20000];
67char * H3D_open_file="Hyper3DExportOpen";
68
69
70/**************/
71/* The Basics */
72/**************/
73 H3DFileInfo* (*DLHyper3DExportOpen) (const char* filename, H3D_FileMode mode,
74 H3DMessageFunctionType mFunc, H3DErrorFunctionType eFunc);
75
76 bool (*DLHyper3DWriteTOC) (H3DFileInfo* h3d_file);
77
78 bool (*DLHyper3DExportClearError) (H3DFileInfo* h3d_file);
79
80 bool (*DLHyper3DExportClose) (H3DFileInfo* h3d_file);
81
82/***********************/
83/* String Table Blocks */
84/***********************/
85
86 bool (*DLHyper3DAddString) (H3DFileInfo* h3d_file,
87 const char* const string, H3D_ID* const str_id);
88
89/* File Information Block - REQUIRED */
90
91 bool (*DLHyper3DFileInfoBegin) (H3DFileInfo* h3d_file,
92 const char* creating_appl, const char* creation_date,
93 const char* solver_name);
94
96 const char* model_file);
97
99 const char* result_file);
100
101 bool (*DLHyper3DFileInfoAddComment) (H3DFileInfo* h3d_file,
102 const char* comment);
103
104 bool (*DLHyper3DFileInfoEnd) (H3DFileInfo* h3d_file);
105
106/****************/
107/* Model Blocks */
108/****************/
109
110 bool (*DLHyper3DModelBegin) (H3DFileInfo* h3d_file, unsigned int count);
111
112 bool (*DLHyper3DModelWrite) (H3DFileInfo* h3d_file, const char* label,
113 H3D_ID id, bool tabular, H3D_TRIBOOL adaptive);
114
115 bool (*DLHyper3DModelEnd) (H3DFileInfo* h3d_file);
116
117 bool (*DLHyper3DSetModelToWrite) (H3DFileInfo* h3d_file, H3D_ID id,
118 bool tabular);
119/* Assemblies Blocks */
120
121 bool (*DLHyper3DAssemblyBegin) (H3DFileInfo* h3d_file, unsigned int count,
122 H3D_ID poolname_id, H3D_ID parent_poolname_id);
123 bool (*DLHyper3DAssemblyWrite) (H3DFileInfo* h3d_file, const char* label,
124 H3D_ID id, H3D_ID parent_id);
125 bool (*DLHyper3DAssemblyEnd) (H3DFileInfo* h3d_file);
126
127/*********************/
128/* Components Blocks */
129/*********************/
130
131 bool (*DLHyper3DComponentBegin) (H3DFileInfo* h3d_file, unsigned int count,
132 H3D_ID poolname_id, H3D_ID parent_poolname_id);
133
134 bool (*DLHyper3DComponentWrite) (H3DFileInfo* h3d_file, const char* label,
135 H3D_ID id, H3D_ID node_poolname_id, H3D_ID parent_id);
136
137 bool (*DLHyper3DComponentEnd) (H3DFileInfo* h3d_file);
138
139/*********************/
140/* System Blocks */
141/*********************/
142
143 bool (*DLHyper3DSystemBegin) (H3DFileInfo* h3d_file, unsigned int count);
144
145 bool (*DLHyper3DSystemWrite) (H3DFileInfo* h3d_file, H3D_ID id,
146 H3D_SYSTEM_TYPE type, float* global_origin,
147 float* global_axis);
148
149 bool (*DLHyper3DSystemEnd) (H3DFileInfo* h3d_file);
150
151/***************/
152/* Node blocks */
153/***************/
154
155 bool (*DLHyper3DPositionBegin) (H3DFileInfo* h3d_file, unsigned int count,
156 H3D_ID poolname_id);
157
158 bool (*DLHyper3DPositionWrite) (H3DFileInfo* h3d_file, H3D_ID id,
159 float* coords, H3D_ID refsys_id, H3D_ID analysis_id);
160
161 bool (*DLHyper3DPositionEnd) (H3DFileInfo* h3d_file);
162
163/******************/
164/* Element Blocks */
165/******************/
166
167 bool (*DLHyper3DElementBegin) (H3DFileInfo* h3d_file, unsigned int count,
168 H3D_ID poolname_id, H3D_ElementConfig config,
169 H3D_ID parent_id, H3D_ID parent_poolname_id,
170 H3D_ID node_poolname_id);
171
172 bool (*DLHyper3DElementWrite) (H3DFileInfo* h3d_file,
173 H3D_ID id, H3D_ID* connectivity);
174
175 bool (*DLHyper3DElementEnd) (H3DFileInfo* h3d_file);
176
177 bool (*DLHyper3DElement2Begin) (H3DFileInfo* h3d_file, unsigned int count,
178 H3D_ID poolname_id, H3D_ElementConfig config,
179 H3D_ID parent_id, H3D_ID parent_poolname_id,
180 H3D_ID node_poolname_id);
181
182 bool (*DLHyper3DElement2Write) (H3DFileInfo* h3d_file, H3D_ID id,
183 unsigned int* inode, int* idof, double* icoeff,
184 unsigned int num_inodes,
185 unsigned int* dnode, int* ddof, double* dcoeff,
186 unsigned int num_dnodes);
187
188 bool (*DLHyper3DElement2End) (H3DFileInfo* h3d_file);
189
190/*************************************/
191/* Model Attribute Export Functions */
192/*************************************/
193/* Eroded Data Blocks */
194/* * all pool names are specified per block *
195 */
196 bool (*DLHyper3DErodeBegin) (H3DFileInfo* h3d_file, unsigned int count,
197 H3D_ID element_poolname_id, H3D_SIM_IDX idx,
198 H3D_ID subcase_id);
199
200 bool (*DLHyper3DErodeElement) (H3DFileInfo* h3d_file, H3D_ID id);
201
202 bool (*DLHyper3DErodeEnd) (H3DFileInfo* h3d_file);
203
204/*****************/
205/* Result Blocks */
206/*****************/
207
208 bool (*DLHyper3DResultBegin) (H3DFileInfo* h3d_file, unsigned int count);
209
210 bool (*DLHyper3DResultWrite) (H3DFileInfo* h3d_file, const char* label,
211 H3D_DS_SHELL_METHOD method, unsigned int num_systems);
212
213 bool (*DLHyper3DResultAddSystem) (H3DFileInfo* h3d_file,
214 H3D_ID poolname_id, int system_id,
215 H3D_ID_POOL_TYPE sysType);
216
217 bool (*DLHyper3DResultEnd) (H3DFileInfo* h3d_file);
218
219/*****************************/
220/* Subcase (Loadcase) Blocks */
221/*****************************/
222
223 bool (*DLHyper3DSimSubcaseBegin) (H3DFileInfo* h3d_file, unsigned int count);
224
225 bool (*DLHyper3DSimSubcaseWrite) (H3DFileInfo* h3d_file, const char* label,
226 H3D_ID id, H3D_ANALYSIS_TYPE atype,
227 unsigned int num_datatypes, H3D_ID* datatype_ids,
228 H3D_NODAL_DATA_TYPE anim_type);
229
231 H3D_ID id,
232 unsigned int num_groups, H3D_ID* grp_datatype_ids,
233 unsigned int* num_dts_per_grp, H3D_ID* datatype_ids);
234
235 bool (*DLHyper3DSimSubcaseEnd) (H3DFileInfo* h3d_file);
236
237/*********************/
238/* Simulation Blocks */
239/*********************/
240
241 bool (*DLHyper3DSimulationBegin) (H3DFileInfo* h3d_file, unsigned int count,
242 H3D_ID subcase_id);
243
244 bool (*DLHyper3DSimulationWrite) (H3DFileInfo* h3d_file, H3D_SIM_IDX idx,
245 const char* label, float syncValue);
246
247 bool (*DLHyper3DSimulationEnd) (H3DFileInfo* h3d_file);
248
249/*******************/
250/* Datatype Blocks */
251/*******************/
252
253 bool (*DLHyper3DDatatypeBegin) (H3DFileInfo* h3d_file, unsigned int count);
254
255 bool (*DLHyper3DDatatypeWrite) (H3DFileInfo* h3d_file, const char* label,
256 H3D_ID dt_id, H3D_DS_FORMAT format, H3D_DS_TYPE type,
257 unsigned int num_pools);
258
260 H3D_ID dt_id, const char* description);
261
262 bool (*DLHyper3DDatatypePools) (H3DFileInfo* h3d_file, H3D_ID dt_id,
263 H3D_ID poolname_id, unsigned int num_layers,
264 H3D_ID* layername_ids, bool corners,
265 H3D_TENSOR_TYPE tensor_type, float poisson);
266
267 bool (*DLHyper3DDatatypeEnd) (H3DFileInfo* h3d_file);
268
269/******************/
270/* Dataset Blocks */
271/******************/
272
273 bool (*DLHyper3DDatasetBegin) (H3DFileInfo* h3d_file, unsigned int count,
274 H3D_SIM_IDX idx, H3D_ID subcase_id,
275 H3D_DS_TYPE type, H3D_DS_FORMAT format,
276 unsigned int num_corners, unsigned int num_modes,
277 H3D_ID dt_id, int layer_idx, H3D_ID data_poolname_id,
278 bool complex);
279
280 bool (*DLHyper3DDatasetWriteParent) (H3DFileInfo* h3d_file, H3D_ID comp_id,
281 H3D_ID component_poolname_id);
282
283 bool (*DLHyper3DDatasetWrite) (H3DFileInfo* h3d_file, H3D_ID id,
284 const float* data);
285
286 bool (*DLHyper3DDatasetWriteWithSystem) (H3DFileInfo* h3d_file, H3D_ID id,
287 const float* data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag);
288
289 bool (*DLHyper3DDatasetDoubleWrite) (H3DFileInfo* h3d_file, H3D_ID id,
290 const double* data);
291
292 bool (*DLHyper3DDatasetDoubleWriteWithSystem) (H3DFileInfo* h3d_file, H3D_ID id,
293 const double* data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag);
294
295 bool (*DLHyper3DDatasetEnd) (H3DFileInfo* h3d_file);
296
297
298/* h3dlib_load */
299/* Loads the H3D dynamic library and retrieves every routine address */
300/*-------------------------------------------------------------------*/
301/* Returns */
302/* IERROR = 0 success */
303/* = 1 Load Library Failure */
304/* 2 or more dlsym issue */
305/* could not obtain all function adresses */
306/* */
307/* CARE : Routine is OS Specific Linux & Windows */
308/*-------------------------------------------------------------------*/
309#ifdef _WIN32
310void h3dlib_load_(int * IERROR)
311{
312 int ierr,dllpath_size,arch_size;
313 h3dhandle=NULL;
314 *IERROR=0;
315 ierr=0;
316
317 dllpath_size=GetEnvironmentVariable("RAD_H3D_PATH",libh3dpath,20000);
318 if(dllpath_size > 0) {
319 /* First trial get RAD_H3D_PATH environment variable */
320 strcpy_s(load_libname, 20000, libh3dpath);
321 strcat_s(load_libname,20000,"\\");
322 strcat_s(load_libname,20000,h3dlib);
323
324 h3dhandle = LoadLibrary(TEXT(load_libname));
325 }
326 if(!h3dhandle) {
327 /* Second trial : current working directory */
328 dllpath_size=GetCurrentDirectory(20000,libh3dpath);
329 strcpy_s(load_libname, 20000, libh3dpath);
330 strcat_s(load_libname,20000,"\\");
331 strcat_s(load_libname,20000,h3dlib);
332 h3dhandle = LoadLibrary(TEXT(load_libname));
333 }
334
335 if(!h3dhandle) {
336 /* Third Trial - %ALTAIR_HOME\hwsolvers\common\bin\%ARCH% */
337 dllpath_size=GetEnvironmentVariable("ALTAIR_HOME",libh3dpath,20000);
338 if(dllpath_size > 0) {
339 arch_size = GetEnvironmentVariable("ARCH",hwarch,200);
340 if(arch_size >0) {
341 strcpy_s(load_libname,20000, libh3dpath);
342 strcat_s(load_libname,20000,"\\hwsolvers\\common\\bin\\");
343 strcat_s(load_libname,20000,hwarch);
344 strcat_s(load_libname,20000,"\\");
345 strcat_s(load_libname,20000,h3dlib);
346 h3dhandle = LoadLibrary(TEXT(load_libname));
347 }
348 }
349 }
350
351 if (!h3dhandle){
352 /* Fourth trial : $LD_LIBRARY_PATH settings - simple dlopen*/
353 dllpath_size=GetEnvironmentVariable("PATH",libh3dpath,20000);
354 SetDllDirectory(libh3dpath);
355 h3dhandle = LoadLibrary(TEXT(load_libname));
356 }
357
358 /* Library Load sequence terminated */
359 if (h3dhandle){
360
361/**************/
362/* The Basics */
363/**************/
364
365 DLHyper3DExportOpen=(void*)GetProcAddress(h3dhandle,"Hyper3DExportOpen");
366 if( !DLHyper3DExportOpen) ierr=ierr+1;
367
368 DLHyper3DWriteTOC=(void*)GetProcAddress(h3dhandle,"Hyper3DWriteTOC");
369 if( !DLHyper3DWriteTOC) ierr=ierr+1;
370
371 DLHyper3DExportClearError=(void*)GetProcAddress(h3dhandle,"Hyper3DExportClearError");
372 if( !DLHyper3DExportClearError) ierr=ierr+1;
373
374 DLHyper3DExportClose=(void*)GetProcAddress(h3dhandle,"Hyper3DExportClose");
375 if( !DLHyper3DExportClose) ierr=ierr+1;
376
377/***********************/
378/* String Table Blocks */
379/***********************/
380
381 DLHyper3DAddString=(void*)GetProcAddress(h3dhandle,"Hyper3DAddString");
382 if( !DLHyper3DAddString) ierr=ierr+1;
383
384/*************************************/
385/* File Information Block - REQUIRED */
386/*************************************/
387
388 DLHyper3DFileInfoBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DFileInfoBegin");
389 if( !DLHyper3DFileInfoBegin) ierr=ierr+1;
390
391 DLHyper3DFileInfoAddModelFile=(void*)GetProcAddress(h3dhandle,"Hyper3DFileInfoAddModelFile");
392 if( !DLHyper3DFileInfoAddModelFile) ierr=ierr+1;
393
394 DLHyper3DFileInfoAddResultFile=(void*)GetProcAddress(h3dhandle,"Hyper3DFileInfoAddResultFile");
395 if( !DLHyper3DFileInfoAddResultFile) ierr=ierr+1;
396
397 DLHyper3DFileInfoAddComment=(void*)GetProcAddress(h3dhandle,"Hyper3DFileInfoAddComment");
398 if( !DLHyper3DFileInfoAddComment) ierr=ierr+1;
399
400 DLHyper3DFileInfoEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DFileInfoEnd");
401 if( !DLHyper3DFileInfoEnd) ierr=ierr+1;
402
403/****************/
404/* Model Blocks */
405/****************/
406
407 DLHyper3DModelBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DModelBegin");
408 if( !DLHyper3DModelBegin) ierr=ierr+1;
409
410 DLHyper3DModelWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DModelWrite");
411 if( !DLHyper3DModelWrite) ierr=ierr+1;
412
413 DLHyper3DModelEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DModelEnd");
414 if( !DLHyper3DModelEnd) ierr=ierr+1;
415
416 DLHyper3DSetModelToWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DSetModelToWrite");
417 if( !DLHyper3DSetModelToWrite) ierr=ierr+1;
418
419/*********************/
420/* Assemblies Blocks */
421/*********************/
422
423 DLHyper3DAssemblyBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DAssemblyBegin");
424 if( !DLHyper3DAssemblyBegin) ierr=ierr+1;
425
426 DLHyper3DAssemblyWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DAssemblyWrite");
427 if( !DLHyper3DAssemblyWrite) ierr=ierr+1;
428
429 DLHyper3DAssemblyEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DAssemblyEnd");
430 if( !DLHyper3DAssemblyEnd) ierr=ierr+1;
431
432/*********************/
433/* Components Blocks */
434/*********************/
435
436 DLHyper3DComponentBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DComponentBegin");
437 if( !DLHyper3DComponentBegin) ierr=ierr+1;
438
439 DLHyper3DComponentWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DComponentWrite");
440 if( !DLHyper3DComponentWrite) ierr=ierr+1;
441
442 DLHyper3DComponentEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DComponentEnd");
443 if( !DLHyper3DComponentEnd) ierr=ierr+1;
444
445/*********************/
446/* System Blocks */
447/*********************/
448
449 DLHyper3DSystemBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DSystemBegin");
450 if( !DLHyper3DSystemBegin) ierr=ierr+1;
451
452 DLHyper3DSystemWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DSystemWrite");
453 if( !DLHyper3DSystemWrite) ierr=ierr+1;
454
455 DLHyper3DSystemEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DSystemEnd");
456 if( !DLHyper3DSystemEnd) ierr=ierr+1;
457
458/***************/
459/* Node blocks */
460/***************/
461
462 DLHyper3DPositionBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DPositionBegin");
463 if( !DLHyper3DPositionBegin) ierr=ierr+1;
464
465 DLHyper3DPositionWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DPositionWrite");
466 if( !DLHyper3DPositionWrite) ierr=ierr+1;
467
468 DLHyper3DPositionEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DPositionEnd");
469 if( !DLHyper3DPositionEnd) ierr=ierr+1;
470
471/******************/
472/* Element Blocks */
473/******************/
474
475 DLHyper3DElementBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DElementBegin");
476 if( !DLHyper3DElementBegin) ierr=ierr+1;
477
478 DLHyper3DElementWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DElementWrite");
479 if( !DLHyper3DElementWrite) ierr=ierr+1;
480
481 DLHyper3DElementEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DElementEnd");
482 if( !DLHyper3DElementEnd) ierr=ierr+1;
483
484 DLHyper3DElement2Begin=(void*)GetProcAddress(h3dhandle,"Hyper3DElement2Begin");
485 if( !DLHyper3DElement2Begin) ierr=ierr+1;
486
487 DLHyper3DElement2Write=(void*)GetProcAddress(h3dhandle,"Hyper3DElement2Write");
488 if( !DLHyper3DElement2Write) ierr=ierr+1;
489
490 DLHyper3DElement2End=(void*)GetProcAddress(h3dhandle,"Hyper3DElement2End");
491 if( !DLHyper3DElement2End) ierr=ierr+1;
492
493/*************************************/
494/* Model Attribute Export Functions */
495/*************************************/
496/* Eroded Data Blocks */
497/* * all pool names are specified per block *
498 */
499 DLHyper3DErodeBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DErodeBegin");
500 if( !DLHyper3DErodeBegin) ierr=ierr+1;
501
502 DLHyper3DErodeElement=(void*)GetProcAddress(h3dhandle,"Hyper3DErodeElement");
503 if( !DLHyper3DErodeElement) ierr=ierr+1;
504
505 DLHyper3DErodeEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DErodeEnd");
506 if( !DLHyper3DErodeEnd) ierr=ierr+1;
507
508/*****************/
509/* Result Blocks */
510/*****************/
511
512 DLHyper3DResultBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DResultBegin");
513 if( !DLHyper3DResultBegin) ierr=ierr+1;
514
515 DLHyper3DResultWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DResultWrite");
516 if( !DLHyper3DResultWrite) ierr=ierr+1;
517
518 DLHyper3DResultAddSystem=(void*)GetProcAddress(h3dhandle,"Hyper3DResultAddSystem");
519 if( !DLHyper3DResultAddSystem) ierr=ierr+1;
520
521 DLHyper3DResultEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DResultEnd");
522 if( !DLHyper3DResultEnd) ierr=ierr+1;
523
524/*****************************/
525/* Subcase (Loadcase) Blocks */
526/*****************************/
527
528 DLHyper3DSimSubcaseBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DSimSubcaseBegin");
529 if( !DLHyper3DSimSubcaseBegin) ierr=ierr+1;
530
531 DLHyper3DSimSubcaseWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DSimSubcaseWrite");
532 if( !DLHyper3DSimSubcaseWrite) ierr=ierr+1;
533
534 DLHyper3DSimSubcaseAnimationGroups=(void*)GetProcAddress(h3dhandle,"Hyper3DSimSubcaseAnimationGroups");
535 if( !DLHyper3DSimSubcaseAnimationGroups) ierr=ierr+1;
536
537 DLHyper3DSimSubcaseEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DSimSubcaseEnd");
538 if( !DLHyper3DSimSubcaseEnd) ierr=ierr+1;
539
540/*********************/
541/* Simulation Blocks */
542/*********************/
543
544 DLHyper3DSimulationBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DSimulationBegin");
545 if( !DLHyper3DSimulationBegin) ierr=ierr+1;
546
547 DLHyper3DSimulationWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DSimulationWrite");
548 if( !DLHyper3DSimulationWrite) ierr=ierr+1;
549
550 DLHyper3DSimulationEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DSimulationEnd");
551 if( !DLHyper3DSimulationEnd) ierr=ierr+1;
552
553/*******************/
554/* Datatype Blocks */
555/*******************/
556
557 DLHyper3DDatatypeBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DDatatypeBegin");
558 if( !DLHyper3DDatatypeBegin) ierr=ierr+1;
559
560 DLHyper3DDatatypeWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DDatatypeWrite");
561 if( !DLHyper3DDatatypeWrite) ierr=ierr+1;
562
563 DLHyper3DDatatypeDescriptionWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DDatatypeDescriptionWrite");
564 if( !DLHyper3DDatatypeDescriptionWrite) ierr=ierr+1;
565
566 DLHyper3DDatatypePools=(void*)GetProcAddress(h3dhandle,"Hyper3DDatatypePools");
567 if( !DLHyper3DDatatypePools) ierr=ierr+1;
568
569 DLHyper3DDatatypeEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DDatatypeEnd");
570 if( !DLHyper3DDatatypeEnd) ierr=ierr+1;
571
572/******************/
573/* Dataset Blocks */
574/******************/
575
576 DLHyper3DDatasetBegin=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetBegin");
577 if( !DLHyper3DDatasetBegin) ierr=ierr+1;
578
579 DLHyper3DDatasetWriteParent=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetWriteParent");
580 if( !DLHyper3DDatasetWriteParent) ierr=ierr+1;
581
582 DLHyper3DDatasetWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetWrite");
583 if( !DLHyper3DDatasetWrite) ierr=ierr+1;
584
585 DLHyper3DDatasetWriteWithSystem=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetWriteWithSystem");
586 if( !DLHyper3DDatasetWriteWithSystem) ierr=ierr+1;
587
588 DLHyper3DDatasetDoubleWrite=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetDoubleWrite");
589 if( !DLHyper3DDatasetDoubleWrite) ierr=ierr+1;
590
591 DLHyper3DDatasetDoubleWriteWithSystem=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetDoubleWriteWithSystem");
593
594 DLHyper3DDatasetEnd=(void*)GetProcAddress(h3dhandle,"Hyper3DDatasetEnd");
595 if( !DLHyper3DDatasetEnd) ierr=ierr+1;
596
597
598 if (ierr > 0){*IERROR=ierr+1;}
599
600 }
601
602 else
603 { *IERROR=1; }
604 /* return 0;*/
605
606}
607#elif 1
608void h3dlib_load_(int * IERROR)
609{
610 int ierr;
611 h3dhandle=NULL;
612 *IERROR=0;
613 ierr=0;
614
615 if((libh3dpath = getenv("RAD_H3D_PATH")) != NULL) {
616 /* First trial get RAD_H3D_PATH environment variable */
617 strcat(load_libname,getenv("RAD_H3D_PATH"));
618 strcat(load_libname,"/");
619 strcat(load_libname,h3dlib);
620 h3dhandle = dlopen(load_libname,RTLD_LAZY|RTLD_GLOBAL);
621 if(!h3dhandle) fprintf(stderr,"Warning: libh3dwriter.so not found in $RAD_H3D_PATH:\n %s \n",dlerror());
622
623 }
624
625
626 if(!h3dhandle) {
627 /* Second trial : current working directory */
628
629 getcwd(load_libname,20000);
630 strcat(load_libname,"/");
631 strcat(load_libname,h3dlib);
632 h3dhandle = dlopen(load_libname,RTLD_LAZY|RTLD_GLOBAL);
633 if(!h3dhandle) {fprintf(stderr,"Warning: libh3dwriter.so not found in current directory:\n %s\n",dlerror());}
634 else {fprintf(stderr,"success: libh3dwriter.so was found in current directory\n");}
635
636 }
637
638
639 if(!h3dhandle && (libh3dpath = getenv("ALTAIR_HOME")) != NULL
640 && (libh3dpath = getenv("ARCH")) != NULL ) {
641 /* Third trial : $ALTAIR_HOME/hwsolvers/common/bin/$ARCH*/
642 strcpy(load_libname,getenv("ALTAIR_HOME"));
643 strcat(load_libname,"/hwsolvers/common/bin/");
644 strcat(load_libname,getenv("ARCH"));
645 strcat(load_libname,"/");
646 strcat(load_libname,h3dlib);
647 h3dhandle = dlopen(load_libname,RTLD_LAZY|RTLD_GLOBAL);
648 if(!h3dhandle) {fprintf(stderr,"Warning: libh3dwriter.so not found in $ALTAIR_HOME:\n %s\n",dlerror());}
649 }
650
651
652 if(!h3dhandle) {
653 /* Fourth trial : $LD_LIBRARY_PATH settings - simple dlopen*/
654 strcpy(load_libname,h3dlib);
655 h3dhandle = dlopen(load_libname,RTLD_LAZY|RTLD_GLOBAL);
656 if(!h3dhandle) {fprintf(stderr,"Warning: libh3dwriter.so not found in $LD_LIBRARY_PATH:\n %s\n",dlerror());}
657 else {fprintf(stderr,"success: libh3dwriter.so was found in $LD_LIBRARY_PATH\n");}
658
659 }
660
661
662/* Library Load sequence terminated */
663 if (h3dhandle){
664
665/**************/
666/* The Basics */
667/**************/
668
669 DLHyper3DExportOpen=dlsym(h3dhandle,"Hyper3DExportOpen");
670 if( !DLHyper3DExportOpen) ierr=ierr+1;
671
672 DLHyper3DWriteTOC=dlsym(h3dhandle,"Hyper3DWriteTOC");
673 if( !DLHyper3DWriteTOC) ierr=ierr+1;
674
675 DLHyper3DExportClearError=dlsym(h3dhandle,"Hyper3DExportClearError");
676 if( !DLHyper3DExportClearError) ierr=ierr+1;
677
678 DLHyper3DExportClose=dlsym(h3dhandle,"Hyper3DExportClose");
679 if( !DLHyper3DExportClose) ierr=ierr+1;
680
681/***********************/
682/* String Table Blocks */
683/***********************/
684
685 DLHyper3DAddString=dlsym(h3dhandle,"Hyper3DAddString");
686 if( !DLHyper3DAddString) ierr=ierr+1;
687
688/*************************************/
689/* File Information Block - REQUIRED */
690/*************************************/
691
692 DLHyper3DFileInfoBegin=dlsym(h3dhandle,"Hyper3DFileInfoBegin");
693 if( !DLHyper3DFileInfoBegin) ierr=ierr+1;
694
695 DLHyper3DFileInfoAddModelFile=dlsym(h3dhandle,"Hyper3DFileInfoAddModelFile");
696 if( !DLHyper3DFileInfoAddModelFile) ierr=ierr+1;
697
698 DLHyper3DFileInfoAddResultFile=dlsym(h3dhandle,"Hyper3DFileInfoAddResultFile");
699 if( !DLHyper3DFileInfoAddResultFile) ierr=ierr+1;
700
701 DLHyper3DFileInfoAddComment=dlsym(h3dhandle,"Hyper3DFileInfoAddComment");
702 if( !DLHyper3DFileInfoAddComment) ierr=ierr+1;
703
704 DLHyper3DFileInfoEnd=dlsym(h3dhandle,"Hyper3DFileInfoEnd");
705 if( !DLHyper3DFileInfoEnd) ierr=ierr+1;
706
707/****************/
708/* Model Blocks */
709/****************/
710
711 DLHyper3DModelBegin=dlsym(h3dhandle,"Hyper3DModelBegin");
712 if( !DLHyper3DModelBegin) ierr=ierr+1;
713
714 DLHyper3DModelWrite=dlsym(h3dhandle,"Hyper3DModelWrite");
715 if( !DLHyper3DModelWrite) ierr=ierr+1;
716
717 DLHyper3DModelEnd=dlsym(h3dhandle,"Hyper3DModelEnd");
718 if( !DLHyper3DModelEnd) ierr=ierr+1;
719
720 DLHyper3DSetModelToWrite=dlsym(h3dhandle,"Hyper3DSetModelToWrite");
721 if( !DLHyper3DSetModelToWrite) ierr=ierr+1;
722
723/*********************/
724/* Assemblies Blocks */
725/*********************/
726
727 DLHyper3DAssemblyBegin=dlsym(h3dhandle,"Hyper3DAssemblyBegin");
728 if( !DLHyper3DAssemblyBegin) ierr=ierr+1;
729
730 DLHyper3DAssemblyWrite=dlsym(h3dhandle,"Hyper3DAssemblyWrite");
731 if( !DLHyper3DAssemblyWrite) ierr=ierr+1;
732
733 DLHyper3DAssemblyEnd=dlsym(h3dhandle,"Hyper3DAssemblyEnd");
734 if( !DLHyper3DAssemblyEnd) ierr=ierr+1;
735
736/*********************/
737/* Components Blocks */
738/*********************/
739
740 DLHyper3DComponentBegin=dlsym(h3dhandle,"Hyper3DComponentBegin");
741 if( !DLHyper3DComponentBegin) ierr=ierr+1;
742
743 DLHyper3DComponentWrite=dlsym(h3dhandle,"Hyper3DComponentWrite");
744 if( !DLHyper3DComponentWrite) ierr=ierr+1;
745
746 DLHyper3DComponentEnd=dlsym(h3dhandle,"Hyper3DComponentEnd");
747 if( !DLHyper3DComponentEnd) ierr=ierr+1;
748
749/*********************/
750/* System Blocks */
751/*********************/
752
753 DLHyper3DSystemBegin=dlsym(h3dhandle,"Hyper3DSystemBegin");
754 if( !DLHyper3DSystemBegin) ierr=ierr+1;
755
756 DLHyper3DSystemWrite=dlsym(h3dhandle,"Hyper3DSystemWrite");
757 if( !DLHyper3DSystemWrite) ierr=ierr+1;
758
759 DLHyper3DSystemEnd=dlsym(h3dhandle,"Hyper3DSystemEnd");
760 if( !DLHyper3DSystemEnd) ierr=ierr+1;
761
762/***************/
763/* Node blocks */
764/***************/
765
766 DLHyper3DPositionBegin=dlsym(h3dhandle,"Hyper3DPositionBegin");
767 if( !DLHyper3DPositionBegin) ierr=ierr+1;
768
769 DLHyper3DPositionWrite=dlsym(h3dhandle,"Hyper3DPositionWrite");
770 if( !DLHyper3DPositionWrite) ierr=ierr+1;
771
772 DLHyper3DPositionEnd=dlsym(h3dhandle,"Hyper3DPositionEnd");
773 if( !DLHyper3DPositionEnd) ierr=ierr+1;
774
775/******************/
776/* Element Blocks */
777/******************/
778
779 DLHyper3DElementBegin=dlsym(h3dhandle,"Hyper3DElementBegin");
780 if( !DLHyper3DElementBegin) ierr=ierr+1;
781
782 DLHyper3DElementWrite=dlsym(h3dhandle,"Hyper3DElementWrite");
783 if( !DLHyper3DElementWrite) ierr=ierr+1;
784
785 DLHyper3DElementEnd=dlsym(h3dhandle,"Hyper3DElementEnd");
786 if( !DLHyper3DElementEnd) ierr=ierr+1;
787
788 DLHyper3DElement2Begin=dlsym(h3dhandle,"Hyper3DElement2Begin");
789 if( !DLHyper3DElement2Begin) ierr=ierr+1;
790
791 DLHyper3DElement2Write=dlsym(h3dhandle,"Hyper3DElement2Write");
792 if( !DLHyper3DElement2Write) ierr=ierr+1;
793
794 DLHyper3DElement2End=dlsym(h3dhandle,"Hyper3DElement2End");
795 if( !DLHyper3DElement2End) ierr=ierr+1;
796
797/*************************************/
798/* Model Attribute Export Functions */
799/*************************************/
800/* Eroded Data Blocks */
801/* * all pool names are specified per block *
802 */
803 DLHyper3DErodeBegin=dlsym(h3dhandle,"Hyper3DErodeBegin");
804 if( !DLHyper3DErodeBegin) ierr=ierr+1;
805
806 DLHyper3DErodeElement=dlsym(h3dhandle,"Hyper3DErodeElement");
807 if( !DLHyper3DErodeElement) ierr=ierr+1;
808
809 DLHyper3DErodeEnd=dlsym(h3dhandle,"Hyper3DErodeEnd");
810 if( !DLHyper3DErodeEnd) ierr=ierr+1;
811
812/*****************/
813/* Result Blocks */
814/*****************/
815
816 DLHyper3DResultBegin=dlsym(h3dhandle,"Hyper3DResultBegin");
817 if( !DLHyper3DResultBegin) ierr=ierr+1;
818
819 DLHyper3DResultWrite=dlsym(h3dhandle,"Hyper3DResultWrite");
820 if( !DLHyper3DResultWrite) ierr=ierr+1;
821
822 DLHyper3DResultAddSystem=dlsym(h3dhandle,"Hyper3DResultAddSystem");
823 if( !DLHyper3DResultAddSystem) ierr=ierr+1;
824
825 DLHyper3DResultEnd=dlsym(h3dhandle,"Hyper3DResultEnd");
826 if( !DLHyper3DResultEnd) ierr=ierr+1;
827
828/*****************************/
829/* Subcase (Loadcase) Blocks */
830/*****************************/
831
832 DLHyper3DSimSubcaseBegin=dlsym(h3dhandle,"Hyper3DSimSubcaseBegin");
833 if( !DLHyper3DSimSubcaseBegin) ierr=ierr+1;
834
835 DLHyper3DSimSubcaseWrite=dlsym(h3dhandle,"Hyper3DSimSubcaseWrite");
836 if( !DLHyper3DSimSubcaseWrite) ierr=ierr+1;
837
838 DLHyper3DSimSubcaseAnimationGroups=dlsym(h3dhandle,"Hyper3DSimSubcaseAnimationGroups");
839 if( !DLHyper3DSimSubcaseAnimationGroups) ierr=ierr+1;
840
841 DLHyper3DSimSubcaseEnd=dlsym(h3dhandle,"Hyper3DSimSubcaseEnd");
842 if( !DLHyper3DSimSubcaseEnd) ierr=ierr+1;
843
844/*********************/
845/* Simulation Blocks */
846/*********************/
847
848 DLHyper3DSimulationBegin=dlsym(h3dhandle,"Hyper3DSimulationBegin");
849 if( !DLHyper3DSimulationBegin) ierr=ierr+1;
850
851 DLHyper3DSimulationWrite=dlsym(h3dhandle,"Hyper3DSimulationWrite");
852 if( !DLHyper3DSimulationWrite) ierr=ierr+1;
853
854 DLHyper3DSimulationEnd=dlsym(h3dhandle,"Hyper3DSimulationEnd");
855 if( !DLHyper3DSimulationEnd) ierr=ierr+1;
856
857/*******************/
858/* Datatype Blocks */
859/*******************/
860
861 DLHyper3DDatatypeBegin=dlsym(h3dhandle,"Hyper3DDatatypeBegin");
862 if( !DLHyper3DDatatypeBegin) ierr=ierr+1;
863
864 DLHyper3DDatatypeWrite=dlsym(h3dhandle,"Hyper3DDatatypeWrite");
865 if( !DLHyper3DDatatypeWrite) ierr=ierr+1;
866
867 DLHyper3DDatatypeDescriptionWrite=dlsym(h3dhandle,"Hyper3DDatatypeDescriptionWrite");
868 if( !DLHyper3DDatatypeDescriptionWrite) ierr=ierr+1;
869
870 DLHyper3DDatatypePools=dlsym(h3dhandle,"Hyper3DDatatypePools");
871 if( !DLHyper3DDatatypePools) ierr=ierr+1;
872
873 DLHyper3DDatatypeEnd=dlsym(h3dhandle,"Hyper3DDatatypeEnd");
874 if( !DLHyper3DDatatypeEnd) ierr=ierr+1;
875
876/******************/
877/* Dataset Blocks */
878/******************/
879
880 DLHyper3DDatasetBegin=dlsym(h3dhandle,"Hyper3DDatasetBegin");
881 if( !DLHyper3DDatasetBegin) ierr=ierr+1;
882
883 DLHyper3DDatasetWriteParent=dlsym(h3dhandle,"Hyper3DDatasetWriteParent");
884 if( !DLHyper3DDatasetWriteParent) ierr=ierr+1;
885
886 DLHyper3DDatasetWrite=dlsym(h3dhandle,"Hyper3DDatasetWrite");
887 if( !DLHyper3DDatasetWrite) ierr=ierr+1;
888
889 DLHyper3DDatasetWriteWithSystem=dlsym(h3dhandle,"Hyper3DDatasetWriteWithSystem");
890 if( !DLHyper3DDatasetWriteWithSystem) ierr=ierr+1;
891
892 DLHyper3DDatasetDoubleWrite=dlsym(h3dhandle,"Hyper3DDatasetDoubleWrite");
893 if( !DLHyper3DDatasetDoubleWrite) ierr=ierr+1;
894
895 DLHyper3DDatasetDoubleWriteWithSystem=dlsym(h3dhandle,"Hyper3DDatasetDoubleWriteWithSystem");
897
898 DLHyper3DDatasetEnd=dlsym(h3dhandle,"Hyper3DDatasetEnd");
899 if( !DLHyper3DDatasetEnd) ierr=ierr+1;
900
901
902 if (ierr > 0){*IERROR=ierr+1;}
903
904 }
905
906 else
907 { *IERROR=1; }
908 /* return 0;*/
909
910}
911#endif
912
913void _FCALL H3DLIB_LOAD(int *IERROR)
914{h3dlib_load_ (IERROR);}
915
916void h3dlib_load__ (int *IERROR)
917{h3dlib_load_ (IERROR);}
918
919void h3dlib_load (int * IERROR)
920{h3dlib_load_ (IERROR);}
921
922
923/**************/
924/* The Basics */
925/**************/
926H3DFileInfo* Hyper3DExportOpen(const char* filename, H3D_FileMode mode,
927 H3DMessageFunctionType mFunc, H3DErrorFunctionType eFunc)
928{
929 H3DFileInfo* return_value;
930 return_value = DLHyper3DExportOpen(filename, mode, mFunc, eFunc);
931 return return_value ;
932}
933
934 bool Hyper3DWriteTOC(H3DFileInfo* h3d_file)
935{ bool return_value;
936 return_value = DLHyper3DWriteTOC(h3d_file);
937 return return_value ;
938}
940{ bool return_value;
941 return_value = DLHyper3DExportClearError(h3d_file);
942 return return_value ;
943}
944
945 bool Hyper3DExportClose(H3DFileInfo* h3d_file)
946{ bool return_value;
947 return_value = DLHyper3DExportClose(h3d_file);
948 return return_value ;
949}
950
951/***********************/
952/* String Table Blocks */
953/***********************/
954
955 bool Hyper3DAddString(H3DFileInfo* h3d_file,
956 const char* const string, H3D_ID* const str_id)
957{ bool return_value;
958 return_value = DLHyper3DAddString(h3d_file,string,str_id);
959 return return_value ;
960}
961
962/*************************************/
963/* File Information Block - REQUIRED */
964/*************************************/
965
966 bool Hyper3DFileInfoBegin(H3DFileInfo* h3d_file,
967 const char* creating_appl, const char* creation_date,
968 const char* solver_name)
969{ bool return_value;
970 return_value = DLHyper3DFileInfoBegin(h3d_file,creating_appl,creation_date,
971 solver_name );
972 return return_value ;
973}
974
976 const char* model_file)
977{ bool return_value;
978 return_value = DLHyper3DFileInfoAddModelFile(h3d_file,model_file);
979 return return_value ;
980}
981
983 const char* result_file)
984{ bool return_value;
985 return_value = DLHyper3DFileInfoAddResultFile(h3d_file,result_file);
986 return return_value ;
987}
988
990 const char* comment)
991{ bool return_value;
992 return_value = DLHyper3DFileInfoAddComment(h3d_file,comment);
993 return return_value ;
994}
995
996 bool Hyper3DFileInfoEnd(H3DFileInfo* h3d_file)
997{ bool return_value;
998 return_value = DLHyper3DFileInfoEnd(h3d_file);
999 return return_value ;
1000}
1001
1002/****************/
1003/* Model Blocks */
1004/****************/
1005
1006 bool Hyper3DModelBegin(H3DFileInfo* h3d_file, unsigned int count)
1007{ bool return_value;
1008 return_value = DLHyper3DModelBegin(h3d_file, count);
1009 return return_value ;
1010}
1011
1012
1013 bool Hyper3DModelWrite(H3DFileInfo* h3d_file, const char* label,
1014 H3D_ID id, bool tabular, H3D_TRIBOOL adaptive)
1015{ bool return_value;
1016 return_value = DLHyper3DModelWrite(h3d_file,label,id,tabular,adaptive);
1017 return return_value ;
1018}
1019
1020 bool Hyper3DModelEnd(H3DFileInfo* h3d_file)
1021{ bool return_value;
1022 return_value = DLHyper3DModelEnd(h3d_file);
1023 return return_value ;
1024}
1025
1026
1027 bool Hyper3DSetModelToWrite(H3DFileInfo* h3d_file, H3D_ID id,
1028 bool tabular)
1029{ bool return_value;
1030 return_value = DLHyper3DSetModelToWrite(h3d_file, id, tabular);
1031 return return_value ;
1032}
1033
1034/*********************/
1035/* Assemblies Blocks */
1036/*********************/
1037
1038 bool Hyper3DAssemblyBegin(H3DFileInfo* h3d_file, unsigned int count,
1039 H3D_ID poolname_id, H3D_ID parent_poolname_id)
1040
1041{ bool return_value;
1042 return_value = DLHyper3DAssemblyBegin(h3d_file, count, poolname_id, parent_poolname_id);
1043 return return_value ;
1044}
1045
1046 bool Hyper3DAssemblyWrite(H3DFileInfo* h3d_file, const char* label,
1047 H3D_ID id, H3D_ID parent_id)
1048
1049{ bool return_value;
1050 return_value = DLHyper3DAssemblyWrite(h3d_file, label, id, parent_id);
1051 return return_value ;
1052}
1053
1054 bool Hyper3DAssemblyEnd(H3DFileInfo* h3d_file)
1055
1056{ bool return_value;
1057 return_value = DLHyper3DAssemblyEnd(h3d_file);
1058 return return_value ;
1059}
1060
1061/*********************/
1062/* Components Blocks */
1063/*********************/
1064
1065 bool Hyper3DComponentBegin(H3DFileInfo* h3d_file, unsigned int count,
1066 H3D_ID poolname_id, H3D_ID parent_poolname_id)
1067{ bool return_value;
1068 return_value = DLHyper3DComponentBegin(h3d_file, count, poolname_id, parent_poolname_id);
1069 return return_value ;
1070}
1071
1072 bool Hyper3DComponentWrite(H3DFileInfo* h3d_file, const char* label,
1073 H3D_ID id, H3D_ID node_poolname_id, H3D_ID parent_id)
1074{ bool return_value;
1075 return_value = DLHyper3DComponentWrite(h3d_file,label, id, node_poolname_id, parent_id);
1076 return return_value ;
1077}
1078
1080{ bool return_value;
1081 return_value = DLHyper3DComponentEnd(h3d_file);
1082 return return_value ;
1083}
1084
1085/*********************/
1086/* System Blocks */
1087/*********************/
1088
1089 bool Hyper3DSystemBegin(H3DFileInfo* h3d_file, unsigned int count)
1090{ bool return_value;
1091 return_value = DLHyper3DSystemBegin(h3d_file, count);
1092 return return_value ;
1093}
1094
1095 bool Hyper3DSystemWrite(H3DFileInfo* h3d_file, H3D_ID id,
1096 H3D_SYSTEM_TYPE type, float* global_origin,
1097 float* global_axis)
1098{ bool return_value;
1099 return_value = DLHyper3DSystemWrite(h3d_file, id, type, global_origin, global_axis);
1100 return return_value ;
1101}
1102
1103 bool Hyper3DSystemEnd(H3DFileInfo* h3d_file)
1104{ bool return_value;
1105 return_value = DLHyper3DSystemEnd(h3d_file);
1106 return return_value ;
1107}
1108
1109/***************/
1110/* Node blocks */
1111/***************/
1112
1113 bool Hyper3DPositionBegin(H3DFileInfo* h3d_file, unsigned int count,
1114 H3D_ID poolname_id)
1115{ bool return_value;
1116 return_value = DLHyper3DPositionBegin(h3d_file, count, poolname_id);
1117 return return_value ;
1118}
1119
1120 bool Hyper3DPositionWrite(H3DFileInfo* h3d_file, H3D_ID id,
1121 float* coords, H3D_ID refsys_id, H3D_ID analysis_id)
1122{ bool return_value;
1123 return_value = DLHyper3DPositionWrite(h3d_file, id, coords, refsys_id, analysis_id);
1124 return return_value ;
1125}
1126
1127 bool Hyper3DPositionEnd(H3DFileInfo* h3d_file)
1128{ bool return_value;
1129 return_value = DLHyper3DPositionEnd(h3d_file);
1130 return return_value ;
1131}
1132
1133/******************/
1134/* Element Blocks */
1135/******************/
1136
1137 bool Hyper3DElementBegin(H3DFileInfo* h3d_file, unsigned int count,
1138 H3D_ID poolname_id, H3D_ElementConfig config,
1139 H3D_ID parent_id, H3D_ID parent_poolname_id,
1140 H3D_ID node_poolname_id)
1141{ bool return_value;
1142 return_value = DLHyper3DElementBegin(h3d_file, count, poolname_id, config,
1143 parent_id, parent_poolname_id, node_poolname_id);
1144 return return_value ;
1145}
1146
1147 bool Hyper3DElementWrite(H3DFileInfo* h3d_file,
1148 H3D_ID id, H3D_ID* connectivity)
1149{ bool return_value;
1150 return_value = DLHyper3DElementWrite(h3d_file, id, connectivity);
1151 return return_value ;
1152}
1153
1154 bool Hyper3DElementEnd(H3DFileInfo* h3d_file)
1155{ bool return_value;
1156 return_value = DLHyper3DElementEnd(h3d_file);
1157 return return_value ;
1158}
1159
1160 bool Hyper3DElement2Begin(H3DFileInfo* h3d_file, unsigned int count,
1161 H3D_ID poolname_id, H3D_ElementConfig config,
1162 H3D_ID parent_id, H3D_ID parent_poolname_id,
1163 H3D_ID node_poolname_id)
1164{ bool return_value;
1165 return_value = DLHyper3DElement2Begin(h3d_file, count, poolname_id, config,
1166 parent_id, parent_poolname_id, node_poolname_id);
1167 return return_value ;
1168}
1169
1170 bool Hyper3DElement2Write(H3DFileInfo* h3d_file, H3D_ID id,
1171 unsigned int* inode, int* idof, double* icoeff,
1172 unsigned int num_inodes,
1173 unsigned int* dnode, int* ddof, double* dcoeff,
1174 unsigned int num_dnodes)
1175{ bool return_value;
1176 return_value = DLHyper3DElement2Write(h3d_file, id, inode, idof, icoeff,
1177 num_inodes, dnode, ddof, dcoeff, num_dnodes);
1178 return return_value ;
1179}
1180
1181 bool Hyper3DElement2End(H3DFileInfo* h3d_file)
1182{ bool return_value;
1183 return_value = DLHyper3DElement2End(h3d_file);
1184 return return_value ;
1185}
1186
1187/*************************************/
1188/* Model Attribute Export Functions */
1189/*************************************/
1190/* Eroded Data Blocks */
1191
1192 bool Hyper3DErodeBegin(H3DFileInfo* h3d_file, unsigned int count,
1193 H3D_ID element_poolname_id, H3D_SIM_IDX idx,
1194 H3D_ID subcase_id)
1195{ bool return_value;
1196 return_value = DLHyper3DErodeBegin(h3d_file, count, element_poolname_id, idx, subcase_id);
1197 return return_value ;
1198}
1199
1200 bool Hyper3DErodeElement(H3DFileInfo* h3d_file, H3D_ID id)
1201{ bool return_value;
1202 return_value = DLHyper3DErodeElement(h3d_file, id);
1203 return return_value ;
1204}
1205
1206
1207
1208 bool Hyper3DErodeEnd(H3DFileInfo* h3d_file)
1209{ bool return_value;
1210 return_value = DLHyper3DErodeEnd(h3d_file);
1211 return return_value ;
1212}
1213
1214/*****************/
1215/* Result Blocks */
1216/*****************/
1217
1218 bool Hyper3DResultBegin(H3DFileInfo* h3d_file, unsigned int count)
1219{ bool return_value;
1220 return_value = DLHyper3DResultBegin(h3d_file, count);
1221 return return_value ;
1222}
1223
1224 bool Hyper3DResultWrite(H3DFileInfo* h3d_file, const char* label,
1225 H3D_DS_SHELL_METHOD method, unsigned int num_systems)
1226{ bool return_value;
1227 return_value = DLHyper3DResultWrite(h3d_file, label, method, num_systems);
1228 return return_value ;
1229}
1230
1232 H3D_ID poolname_id, int system_id,
1233 H3D_ID_POOL_TYPE sysType)
1234{ bool return_value;
1235 return_value = DLHyper3DResultAddSystem(h3d_file, poolname_id, system_id, sysType);
1236 return return_value ;
1237}
1238
1239 bool Hyper3DResultEnd(H3DFileInfo* h3d_file)
1240{ bool return_value;
1241 return_value = DLHyper3DResultEnd(h3d_file);
1242 return return_value ;
1243}
1244
1245/*****************************/
1246/* Subcase (Loadcase) Blocks */
1247/*****************************/
1248
1249 bool Hyper3DSimSubcaseBegin(H3DFileInfo* h3d_file, unsigned int count)
1250{ bool return_value;
1251 return_value = DLHyper3DSimSubcaseBegin(h3d_file, count);
1252 return return_value ;
1253}
1254
1255 bool Hyper3DSimSubcaseWrite(H3DFileInfo* h3d_file, const char* label,
1256 H3D_ID id, H3D_ANALYSIS_TYPE atype,
1257 unsigned int num_datatypes, H3D_ID* datatype_ids,
1258 H3D_NODAL_DATA_TYPE anim_type)
1259{ bool return_value;
1260 return_value = DLHyper3DSimSubcaseWrite(h3d_file,label, id, atype,
1261 num_datatypes, datatype_ids, anim_type);
1262 return return_value ;
1263}
1264
1266 H3D_ID id,
1267 unsigned int num_groups, H3D_ID* grp_datatype_ids,
1268 unsigned int* num_dts_per_grp, H3D_ID* datatype_ids)
1269{ bool return_value;
1271 id, num_groups, grp_datatype_ids, num_dts_per_grp, datatype_ids);
1272 return return_value ;
1273}
1274
1276{ bool return_value;
1277 return_value = DLHyper3DSimSubcaseEnd(h3d_file);
1278 return return_value ;
1279}
1280
1281/*********************/
1282/* Simulation Blocks */
1283/*********************/
1284
1285 bool Hyper3DSimulationBegin(H3DFileInfo* h3d_file, unsigned int count,
1286 H3D_ID subcase_id)
1287{ bool return_value;
1288 return_value = DLHyper3DSimulationBegin(h3d_file, count, subcase_id);
1289 return return_value ;
1290}
1291
1292 bool Hyper3DSimulationWrite(H3DFileInfo* h3d_file, H3D_SIM_IDX idx,
1293 const char* label, float syncValue)
1294{ bool return_value;
1295 return_value = DLHyper3DSimulationWrite(h3d_file, idx, label, syncValue);
1296 return return_value ;
1297}
1298
1300{ bool return_value;
1301 return_value = DLHyper3DSimulationEnd(h3d_file);
1302 return return_value ;
1303}
1304
1305
1306/*******************/
1307/* Datatype Blocks */
1308/*******************/
1309
1310 bool Hyper3DDatatypeBegin(H3DFileInfo* h3d_file, unsigned int count)
1311{ bool return_value;
1312 return_value = DLHyper3DDatatypeBegin(h3d_file, count);
1313 return return_value ;
1314}
1315
1316 bool Hyper3DDatatypeWrite(H3DFileInfo* h3d_file, const char* label,
1317 H3D_ID dt_id, H3D_DS_FORMAT format, H3D_DS_TYPE type,
1318 unsigned int num_pools)
1319{ bool return_value;
1320 return_value = DLHyper3DDatatypeWrite(h3d_file, label, dt_id, format, type, num_pools);
1321 return return_value ;
1322}
1323
1325 H3D_ID dt_id, const char* description)
1326{ bool return_value;
1327 return_value = DLHyper3DDatatypeDescriptionWrite(h3d_file, dt_id, description);
1328 return return_value ;
1329}
1330
1331 bool Hyper3DDatatypePools(H3DFileInfo* h3d_file, H3D_ID dt_id,
1332 H3D_ID poolname_id, unsigned int num_layers,
1333 H3D_ID* layername_ids, bool corners,
1334 H3D_TENSOR_TYPE tensor_type, float poisson)
1335{ bool return_value;
1336 return_value = DLHyper3DDatatypePools(h3d_file, dt_id, poolname_id, num_layers,
1337 layername_ids, corners, tensor_type, poisson);
1338 return return_value ;
1339}
1340
1341 bool Hyper3DDatatypeEnd(H3DFileInfo* h3d_file)
1342{ bool return_value;
1343 return_value = DLHyper3DDatatypeEnd(h3d_file);
1344 return return_value ;
1345}
1346
1347/******************/
1348/* Dataset Blocks */
1349/******************/
1350
1351
1352 bool Hyper3DDatasetBegin(H3DFileInfo* h3d_file, unsigned int count,
1353 H3D_SIM_IDX idx, H3D_ID subcase_id,
1354 H3D_DS_TYPE type, H3D_DS_FORMAT format,
1355 unsigned int num_corners, unsigned int num_modes,
1356 H3D_ID dt_id, int layer_idx, H3D_ID data_poolname_id,
1357 bool complex)
1358{ bool return_value;
1359 return_value = DLHyper3DDatasetBegin(h3d_file,count, idx,subcase_id,
1360 type, format, num_corners, num_modes,
1361 dt_id, layer_idx, data_poolname_id, complex);
1362 return return_value ;
1363}
1364
1365 bool Hyper3DDatasetWriteParent(H3DFileInfo* h3d_file, H3D_ID comp_id,
1366 H3D_ID component_poolname_id)
1367{ bool return_value;
1368 return_value = DLHyper3DDatasetWriteParent(h3d_file, comp_id, component_poolname_id);
1369 return return_value ;
1370}
1371
1372 bool Hyper3DDatasetWrite(H3DFileInfo* h3d_file, H3D_ID id,
1373 const float* data)
1374{ bool return_value;
1375 return_value = DLHyper3DDatasetWrite(h3d_file, id, data);
1376 return return_value ;
1377}
1378
1379 bool Hyper3DDatasetWriteWithSystem(H3DFileInfo* h3d_file, H3D_ID id,
1380 const float* data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
1381{ bool return_value;
1382 return_value = DLHyper3DDatasetWriteWithSystem(h3d_file, id, data, sys_id, system_flag);
1383 return return_value ;
1384}
1385
1386 bool Hyper3DDatasetDoubleWrite(H3DFileInfo* h3d_file, H3D_ID id,
1387 const double* data)
1388{ bool return_value;
1389 return_value = DLHyper3DDatasetDoubleWrite(h3d_file, id, data);
1390 return return_value ;
1391}
1392
1393 bool Hyper3DDatasetDoubleWriteWithSystem(H3DFileInfo* h3d_file, H3D_ID id,
1394 const double* data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
1395{ bool return_value;
1396 return_value = DLHyper3DDatasetDoubleWriteWithSystem(h3d_file, id, data, sys_id, system_flag);
1397 return return_value ;
1398}
1399
1400 bool Hyper3DDatasetEnd(H3DFileInfo* h3d_file)
1401{ bool return_value;
1402 return_value = DLHyper3DDatasetEnd(h3d_file);
1403 return return_value ;
1404}
1405
H3DFileInfo * h3d_file
H3D_ID node_poolname_id
float poisson
H3D_ID comp_id
H3D_ID * layername_ids
H3D_ID subcase_id
H3D_ID dt_id
H3D_TENSOR_TYPE tensor_type
bool(* DLHyper3DWriteTOC)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:76
bool(* DLHyper3DFileInfoEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:104
bool Hyper3DDatatypePools(H3DFileInfo *h3d_file, H3D_ID dt_id, H3D_ID poolname_id, unsigned int num_layers, H3D_ID *layername_ids, bool corners, H3D_TENSOR_TYPE tensor_type, float poisson)
Definition h3d_dl.c:1331
bool Hyper3DAssemblyEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1054
bool(* DLHyper3DFileInfoAddResultFile)(H3DFileInfo *h3d_file, const char *result_file)
Definition h3d_dl.c:98
char load_libname[20000]
Definition h3d_dl.c:66
bool Hyper3DModelBegin(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:1006
bool Hyper3DSystemEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1103
char * H3D_open_file
Definition h3d_dl.c:67
bool Hyper3DFileInfoEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:996
bool Hyper3DFileInfoAddComment(H3DFileInfo *h3d_file, const char *comment)
Definition h3d_dl.c:989
bool(* DLHyper3DResultEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:217
bool(* DLHyper3DSimulationBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID subcase_id)
Definition h3d_dl.c:241
bool Hyper3DElement2Write(H3DFileInfo *h3d_file, H3D_ID id, unsigned int *inode, int *idof, double *icoeff, unsigned int num_inodes, unsigned int *dnode, int *ddof, double *dcoeff, unsigned int num_dnodes)
Definition h3d_dl.c:1170
bool Hyper3DAddString(H3DFileInfo *h3d_file, const char *const string, H3D_ID *const str_id)
Definition h3d_dl.c:955
bool(* DLHyper3DDatasetDoubleWrite)(H3DFileInfo *h3d_file, H3D_ID id, const double *data)
Definition h3d_dl.c:289
bool Hyper3DDatasetWriteParent(H3DFileInfo *h3d_file, H3D_ID comp_id, H3D_ID component_poolname_id)
Definition h3d_dl.c:1365
bool(* DLHyper3DErodeEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:202
bool Hyper3DResultAddSystem(H3DFileInfo *h3d_file, H3D_ID poolname_id, int system_id, H3D_ID_POOL_TYPE sysType)
Definition h3d_dl.c:1231
bool(* DLHyper3DSimulationWrite)(H3DFileInfo *h3d_file, H3D_SIM_IDX idx, const char *label, float syncValue)
Definition h3d_dl.c:244
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)
Definition h3d_dl.c:1352
bool(* DLHyper3DPositionBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id)
Definition h3d_dl.c:155
bool Hyper3DExportClose(H3DFileInfo *h3d_file)
Definition h3d_dl.c:945
bool(* DLHyper3DFileInfoAddComment)(H3DFileInfo *h3d_file, const char *comment)
Definition h3d_dl.c:101
bool(* DLHyper3DSystemWrite)(H3DFileInfo *h3d_file, H3D_ID id, H3D_SYSTEM_TYPE type, float *global_origin, float *global_axis)
Definition h3d_dl.c:145
bool(* DLHyper3DResultAddSystem)(H3DFileInfo *h3d_file, H3D_ID poolname_id, int system_id, H3D_ID_POOL_TYPE sysType)
Definition h3d_dl.c:213
bool Hyper3DErodeEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1208
bool Hyper3DWriteTOC(H3DFileInfo *h3d_file)
Definition h3d_dl.c:934
bool(* DLHyper3DComponentWrite)(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ID node_poolname_id, H3D_ID parent_id)
Definition h3d_dl.c:134
bool Hyper3DSystemWrite(H3DFileInfo *h3d_file, H3D_ID id, H3D_SYSTEM_TYPE type, float *global_origin, float *global_axis)
Definition h3d_dl.c:1095
bool(* DLHyper3DDatatypeWrite)(H3DFileInfo *h3d_file, const char *label, H3D_ID dt_id, H3D_DS_FORMAT format, H3D_DS_TYPE type, unsigned int num_pools)
Definition h3d_dl.c:255
void _FCALL H3DLIB_LOAD(int *IERROR)
Definition h3d_dl.c:913
bool(* DLHyper3DSimSubcaseEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:235
bool Hyper3DResultWrite(H3DFileInfo *h3d_file, const char *label, H3D_DS_SHELL_METHOD method, unsigned int num_systems)
Definition h3d_dl.c:1224
bool(* DLHyper3DSimSubcaseBegin)(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:223
bool(* DLHyper3DDatatypeEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:267
bool Hyper3DDatasetDoubleWrite(H3DFileInfo *h3d_file, H3D_ID id, const double *data)
Definition h3d_dl.c:1386
bool Hyper3DDatasetDoubleWriteWithSystem(H3DFileInfo *h3d_file, H3D_ID id, const double *data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
Definition h3d_dl.c:1393
bool(* DLHyper3DElement2End)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:188
bool Hyper3DSimSubcaseAnimationGroups(H3DFileInfo *h3d_file, H3D_ID id, unsigned int num_groups, H3D_ID *grp_datatype_ids, unsigned int *num_dts_per_grp, H3D_ID *datatype_ids)
Definition h3d_dl.c:1265
bool(* DLHyper3DSimSubcaseWrite)(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ANALYSIS_TYPE atype, unsigned int num_datatypes, H3D_ID *datatype_ids, H3D_NODAL_DATA_TYPE anim_type)
Definition h3d_dl.c:225
bool Hyper3DPositionBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id)
Definition h3d_dl.c:1113
bool Hyper3DSystemBegin(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:1089
bool Hyper3DSimulationWrite(H3DFileInfo *h3d_file, H3D_SIM_IDX idx, const char *label, float syncValue)
Definition h3d_dl.c:1292
bool(* DLHyper3DDatatypePools)(H3DFileInfo *h3d_file, H3D_ID dt_id, H3D_ID poolname_id, unsigned int num_layers, H3D_ID *layername_ids, bool corners, H3D_TENSOR_TYPE tensor_type, float poisson)
Definition h3d_dl.c:262
bool Hyper3DDatatypeEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1341
bool Hyper3DResultEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1239
bool(* DLHyper3DDatasetWriteParent)(H3DFileInfo *h3d_file, H3D_ID comp_id, H3D_ID component_poolname_id)
Definition h3d_dl.c:280
bool(* DLHyper3DResultBegin)(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:208
bool(* DLHyper3DDatasetDoubleWriteWithSystem)(H3DFileInfo *h3d_file, H3D_ID id, const double *data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
Definition h3d_dl.c:292
bool Hyper3DExportClearError(H3DFileInfo *h3d_file)
Definition h3d_dl.c:939
bool Hyper3DFileInfoBegin(H3DFileInfo *h3d_file, const char *creating_appl, const char *creation_date, const char *solver_name)
Definition h3d_dl.c:966
bool Hyper3DDatasetWriteWithSystem(H3DFileInfo *h3d_file, H3D_ID id, const float *data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
Definition h3d_dl.c:1379
bool Hyper3DModelEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1020
bool Hyper3DPositionEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1127
bool Hyper3DModelWrite(H3DFileInfo *h3d_file, const char *label, H3D_ID id, bool tabular, H3D_TRIBOOL adaptive)
Definition h3d_dl.c:1013
bool Hyper3DDatatypeDescriptionWrite(H3DFileInfo *h3d_file, H3D_ID dt_id, const char *description)
Definition h3d_dl.c:1324
bool Hyper3DSimSubcaseEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1275
bool Hyper3DDatatypeWrite(H3DFileInfo *h3d_file, const char *label, H3D_ID dt_id, H3D_DS_FORMAT format, H3D_DS_TYPE type, unsigned int num_pools)
Definition h3d_dl.c:1316
bool(* DLHyper3DDatasetEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:295
bool(* DLHyper3DComponentBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ID parent_poolname_id)
Definition h3d_dl.c:131
bool(* DLHyper3DModelBegin)(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:110
bool(* DLHyper3DErodeElement)(H3DFileInfo *h3d_file, H3D_ID id)
Definition h3d_dl.c:200
bool Hyper3DSimSubcaseWrite(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ANALYSIS_TYPE atype, unsigned int num_datatypes, H3D_ID *datatype_ids, H3D_NODAL_DATA_TYPE anim_type)
Definition h3d_dl.c:1255
bool(* DLHyper3DSimSubcaseAnimationGroups)(H3DFileInfo *h3d_file, H3D_ID id, unsigned int num_groups, H3D_ID *grp_datatype_ids, unsigned int *num_dts_per_grp, H3D_ID *datatype_ids)
Definition h3d_dl.c:230
bool(* DLHyper3DSimulationEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:247
bool Hyper3DComponentEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1079
bool Hyper3DElementWrite(H3DFileInfo *h3d_file, H3D_ID id, H3D_ID *connectivity)
Definition h3d_dl.c:1147
char * libh3dpath
Definition h3d_dl.c:63
void h3dlib_load_(int *IERROR)
Definition h3d_dl.c:608
bool(* DLHyper3DElementEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:175
H3DFileInfo * Hyper3DExportOpen(const char *filename, H3D_FileMode mode, H3DMessageFunctionType mFunc, H3DErrorFunctionType eFunc)
Definition h3d_dl.c:926
bool(* DLHyper3DAssemblyEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:125
bool(* DLHyper3DSystemEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:149
bool(* DLHyper3DErodeBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID element_poolname_id, H3D_SIM_IDX idx, H3D_ID subcase_id)
Definition h3d_dl.c:196
bool(* DLHyper3DFileInfoBegin)(H3DFileInfo *h3d_file, const char *creating_appl, const char *creation_date, const char *solver_name)
Definition h3d_dl.c:91
bool Hyper3DDatatypeBegin(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:1310
bool(* DLHyper3DExportClose)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:80
bool Hyper3DComponentWrite(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ID node_poolname_id, H3D_ID parent_id)
Definition h3d_dl.c:1072
char * h3dlib
Definition h3d_dl.c:62
bool(* DLHyper3DSetModelToWrite)(H3DFileInfo *h3d_file, H3D_ID id, bool tabular)
Definition h3d_dl.c:117
bool Hyper3DAssemblyWrite(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ID parent_id)
Definition h3d_dl.c:1046
bool(* DLHyper3DDatatypeDescriptionWrite)(H3DFileInfo *h3d_file, H3D_ID dt_id, const char *description)
Definition h3d_dl.c:259
void * h3dhandle
Definition h3d_dl.c:64
bool Hyper3DFileInfoAddResultFile(H3DFileInfo *h3d_file, const char *result_file)
Definition h3d_dl.c:982
bool(* DLHyper3DPositionWrite)(H3DFileInfo *h3d_file, H3D_ID id, float *coords, H3D_ID refsys_id, H3D_ID analysis_id)
Definition h3d_dl.c:158
bool(* DLHyper3DAssemblyWrite)(H3DFileInfo *h3d_file, const char *label, H3D_ID id, H3D_ID parent_id)
Definition h3d_dl.c:123
bool(* DLHyper3DModelWrite)(H3DFileInfo *h3d_file, const char *label, H3D_ID id, bool tabular, H3D_TRIBOOL adaptive)
Definition h3d_dl.c:112
bool Hyper3DDatasetEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1400
H3DFileInfo *(* DLHyper3DExportOpen)(const char *filename, H3D_FileMode mode, H3DMessageFunctionType mFunc, H3DErrorFunctionType eFunc)
Definition h3d_dl.c:73
bool(* DLHyper3DElement2Begin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ElementConfig config, H3D_ID parent_id, H3D_ID parent_poolname_id, H3D_ID node_poolname_id)
Definition h3d_dl.c:177
bool Hyper3DSimulationEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1299
bool Hyper3DPositionWrite(H3DFileInfo *h3d_file, H3D_ID id, float *coords, H3D_ID refsys_id, H3D_ID analysis_id)
Definition h3d_dl.c:1120
bool Hyper3DErodeElement(H3DFileInfo *h3d_file, H3D_ID id)
Definition h3d_dl.c:1200
bool(* DLHyper3DDatasetWriteWithSystem)(H3DFileInfo *h3d_file, H3D_ID id, const float *data, H3D_ID sys_id, H3D_ANALYSIS_SYSTEM system_flag)
Definition h3d_dl.c:286
bool Hyper3DSimSubcaseBegin(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:1249
bool Hyper3DFileInfoAddModelFile(H3DFileInfo *h3d_file, const char *model_file)
Definition h3d_dl.c:975
bool Hyper3DSimulationBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID subcase_id)
Definition h3d_dl.c:1285
bool(* DLHyper3DSystemBegin)(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:143
bool Hyper3DElementEnd(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1154
bool(* DLHyper3DExportClearError)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:78
bool Hyper3DDatasetWrite(H3DFileInfo *h3d_file, H3D_ID id, const float *data)
Definition h3d_dl.c:1372
bool Hyper3DElementBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ElementConfig config, H3D_ID parent_id, H3D_ID parent_poolname_id, H3D_ID node_poolname_id)
Definition h3d_dl.c:1137
bool Hyper3DComponentBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ID parent_poolname_id)
Definition h3d_dl.c:1065
bool(* DLHyper3DDatatypeBegin)(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:253
bool(* DLHyper3DElementWrite)(H3DFileInfo *h3d_file, H3D_ID id, H3D_ID *connectivity)
Definition h3d_dl.c:172
bool(* DLHyper3DAddString)(H3DFileInfo *h3d_file, const char *const string, H3D_ID *const str_id)
Definition h3d_dl.c:86
bool(* DLHyper3DPositionEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:161
bool(* DLHyper3DResultWrite)(H3DFileInfo *h3d_file, const char *label, H3D_DS_SHELL_METHOD method, unsigned int num_systems)
Definition h3d_dl.c:210
bool Hyper3DSetModelToWrite(H3DFileInfo *h3d_file, H3D_ID id, bool tabular)
Definition h3d_dl.c:1027
bool Hyper3DAssemblyBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ID parent_poolname_id)
Definition h3d_dl.c:1038
bool(* DLHyper3DFileInfoAddModelFile)(H3DFileInfo *h3d_file, const char *model_file)
Definition h3d_dl.c:95
bool(* DLHyper3DComponentEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:137
bool Hyper3DElement2End(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1181
bool(* DLHyper3DDatasetWrite)(H3DFileInfo *h3d_file, H3D_ID id, const float *data)
Definition h3d_dl.c:283
bool Hyper3DResultBegin(H3DFileInfo *h3d_file, unsigned int count)
Definition h3d_dl.c:1218
void h3dlib_load__(int *IERROR)
Definition h3d_dl.c:916
bool(* DLHyper3DElementBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ElementConfig config, H3D_ID parent_id, H3D_ID parent_poolname_id, H3D_ID node_poolname_id)
Definition h3d_dl.c:167
bool Hyper3DElement2Begin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ElementConfig config, H3D_ID parent_id, H3D_ID parent_poolname_id, H3D_ID node_poolname_id)
Definition h3d_dl.c:1160
bool(* DLHyper3DDatasetBegin)(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)
Definition h3d_dl.c:273
bool(* DLHyper3DElement2Write)(H3DFileInfo *h3d_file, H3D_ID id, unsigned int *inode, int *idof, double *icoeff, unsigned int num_inodes, unsigned int *dnode, int *ddof, double *dcoeff, unsigned int num_dnodes)
Definition h3d_dl.c:182
void h3dlib_load(int *IERROR)
Definition h3d_dl.c:919
bool Hyper3DErodeBegin(H3DFileInfo *h3d_file, unsigned int count, H3D_ID element_poolname_id, H3D_SIM_IDX idx, H3D_ID subcase_id)
Definition h3d_dl.c:1192
bool(* DLHyper3DModelEnd)(H3DFileInfo *h3d_file)
Definition h3d_dl.c:115
bool(* DLHyper3DAssemblyBegin)(H3DFileInfo *h3d_file, unsigned int count, H3D_ID poolname_id, H3D_ID parent_poolname_id)
Definition h3d_dl.c:121
#define _FCALL
initmumps id