OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c_h3d_create_rbe2.cpp File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <fcntl.h>
#include <sys/resource.h>
#include <sys/types.h>
#include <time.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dlfcn.h>
#include <stdbool.h>
#include "h3dpublic_defs.h"
#include "h3dpublic_export.h"
#include "h3d_values.h"

Go to the source code of this file.

Macros

#define _FCALL
#define _FCALL

Functions

void c_h3d_create_rbe2_ (int *ITAB, int *NUMNOD, int *IRBE2, int *NRBE2L, int *LRBE2, int *NRBE2, int *COMPID_RBE2S)
void _FCALL C_H3D_CREATE_RBE2 (int *ITAB, int *NUMNOD, int *IRBE2, int *NRBE2L, int *LRBE2, int *NRBE2, int *COMPID_RBE2S)
void c_h3d_create_rbe2__ (int *ITAB, int *NUMNOD, int *IRBE2, int *NRBE2L, int *LRBE2, int *NRBE2, int *COMPID_RBE2S)
void c_h3d_create_rbe2 (int *ITAB, int *NUMNOD, int *IRBE2, int *NRBE2L, int *LRBE2, int *NRBE2, int *COMPID_RBE2S)
void c_h3d_create_rbe2_impi_ (int *ITAB, int *NRBE2, int *IADRBE2, int *MASTERNODS, int *P0RBE2BUF, int *ID_RBE2, int *COMPID_RBE2S)
void _FCALL C_H3D_CREATE_RBE2_IMPI (int *ITAB, int *NRBE2, int *IADRBE2, int *MASTERNODS, int *P0RBE2BUF, int *ID_RBE2, int *COMPID_RBE2S)
void c_h3d_create_rbe2_impi__ (int *ITAB, int *NRBE2, int *IADRBE2, int *MASTERNODS, int *P0RBE2BUF, int *ID_RBE2, int *COMPID_RBE2S)
void c_h3d_create_rbe2_impi (int *ITAB, int *NRBE2, int *IADRBE2, int *MASTERNODS, int *P0RBE2BUF, int *ID_RBE2, int *COMPID_RBE2S)

Macro Definition Documentation

◆ _FCALL [1/2]

#define _FCALL

Definition at line 50 of file c_h3d_create_rbe2.cpp.

◆ _FCALL [2/2]

#define _FCALL

Definition at line 50 of file c_h3d_create_rbe2.cpp.

Function Documentation

◆ C_H3D_CREATE_RBE2()

void _FCALL C_H3D_CREATE_RBE2 ( int * ITAB,
int * NUMNOD,
int * IRBE2,
int * NRBE2L,
int * LRBE2,
int * NRBE2,
int * COMPID_RBE2S )

Definition at line 174 of file c_h3d_create_rbe2.cpp.

175{c_h3d_create_rbe2_ (ITAB, NUMNOD, IRBE2, NRBE2L, LRBE2, NRBE2,COMPID_RBE2S);}
void c_h3d_create_rbe2_(int *ITAB, int *NUMNOD, int *IRBE2, int *NRBE2L, int *LRBE2, int *NRBE2, int *COMPID_RBE2S)

◆ c_h3d_create_rbe2()

void c_h3d_create_rbe2 ( int * ITAB,
int * NUMNOD,
int * IRBE2,
int * NRBE2L,
int * LRBE2,
int * NRBE2,
int * COMPID_RBE2S )

Definition at line 180 of file c_h3d_create_rbe2.cpp.

181{c_h3d_create_rbe2_ (ITAB, NUMNOD, IRBE2, NRBE2L, LRBE2, NRBE2,COMPID_RBE2S);}

◆ c_h3d_create_rbe2_()

void c_h3d_create_rbe2_ ( int * ITAB,
int * NUMNOD,
int * IRBE2,
int * NRBE2L,
int * LRBE2,
int * NRBE2,
int * COMPID_RBE2S )

Definition at line 69 of file c_h3d_create_rbe2.cpp.

70{
71 try {
72
73
74 // create Elements
75 H3D_ID elem_id ;
76 H3D_ID RigidElem ;
77 int i,j,nsn;
78
79 char RBE2POOL[] = "Rbe2";
81 if( !rc ) throw rc;
82
83 char RIGIDPOOL[] = "Rigid";
85 if( !rc ) throw rc;
86
87 unsigned int elem_count = 1;
88 unsigned int *conn;
89 double *coef;
90 int *dof;
91
92 if(*COMPID_RBE2S != 0 && *NRBE2 != 0)
93 {
95 H3D_ELEM_CONFIG_RIGIDLINK, *COMPID_RBE2S,
97 for(i=0;i<*NRBE2;i++)
98 {
99 elem_id = IRBE2[*NRBE2L * i + 1];
100 nsn = IRBE2[*NRBE2L * i + 4];
101 comp_id = 1;
102
103 conn =(unsigned int *)malloc(nsn*sizeof(unsigned int));
104 coef =(double *)malloc(nsn*sizeof(double));
105 dof =(int *)malloc(nsn*sizeof(int));
106
107 for(j=0;j<nsn;j++) conn[j] = ITAB[LRBE2[IRBE2[*NRBE2L * i ] + j ] - 1 ];
108
109 RigidElem = IRBE2[*NRBE2L * i + 1] ;
110
111 unsigned int conn1[1];
112 double coef1[1] = {1.0};
113 int dof1[1] = {6};
114 conn1[0] = ITAB[IRBE2[*NRBE2L * i + 2]-1];
115
116 if( !rc ) throw rc;
117 rc = Hyper3DElement2Write(h3d_file, elem_id, conn1, dof1 , coef1 , 1 ,conn, dof, coef, nsn);
118 if( !rc ) throw rc;
119
120 free(conn);
121 free(coef);
122 free(dof);
123 }
125 if( !rc ) throw rc;
126 }
127 else
128 {
129 for(i=0;i<*NRBE2;i++)
130 {
131 elem_id = IRBE2[*NRBE2L * i + 1];
132 nsn = IRBE2[*NRBE2L * i + 4];
133 comp_id = 1;
134
135 conn =(unsigned int *)malloc(nsn*sizeof(unsigned int));
136 coef =(double *)malloc(nsn*sizeof(double));
137 dof =(int *)malloc(nsn*sizeof(int));
138
139 for(j=0;j<nsn;j++) conn[j] = ITAB[LRBE2[IRBE2[*NRBE2L * i ] + j ] - 1 ];
140
141 RigidElem = IRBE2[*NRBE2L * i + 1] ;
142
143 unsigned int conn1[1];
144 double coef1[1] = {1.0};
145 int dof1[1] = {6};
146 conn1[0] = ITAB[IRBE2[*NRBE2L * i + 2]-1];
147
148
150 H3D_ELEM_CONFIG_RIGIDLINK, RigidElem,
152 if( !rc ) throw rc;
153 rc = Hyper3DElement2Write(h3d_file, elem_id, conn1, dof1 , coef1 , 1 ,conn, dof, coef, nsn);
154 if( !rc ) throw rc;
156 if( !rc ) throw rc;
157
158 free(conn);
159 free(coef);
160 free(dof);
161
162 }
163 }
164
165
166 } // end of try
167
168 catch(...) {
170 }
171
172}
H3DFileInfo * h3d_file
H3D_ID rigid_poolname_id
H3D_ID node_poolname_id
bool rc
H3D_ID comp_id
H3D_ID rbe2_poolname_id
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 Hyper3DExportClearError(H3DFileInfo *h3d_file)
Definition h3d_dl.c:939
bool Hyper3DElement2End(H3DFileInfo *h3d_file)
Definition h3d_dl.c:1181
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

◆ c_h3d_create_rbe2__()

void c_h3d_create_rbe2__ ( int * ITAB,
int * NUMNOD,
int * IRBE2,
int * NRBE2L,
int * LRBE2,
int * NRBE2,
int * COMPID_RBE2S )

Definition at line 177 of file c_h3d_create_rbe2.cpp.

178{c_h3d_create_rbe2_ (ITAB, NUMNOD, IRBE2, NRBE2L, LRBE2, NRBE2,COMPID_RBE2S);}

◆ C_H3D_CREATE_RBE2_IMPI()

void _FCALL C_H3D_CREATE_RBE2_IMPI ( int * ITAB,
int * NRBE2,
int * IADRBE2,
int * MASTERNODS,
int * P0RBE2BUF,
int * ID_RBE2,
int * COMPID_RBE2S )

Definition at line 302 of file c_h3d_create_rbe2.cpp.

304{c_h3d_create_rbe2_impi_ (ITAB,NRBE2,IADRBE2,MASTERNODS,P0RBE2BUF,ID_RBE2,COMPID_RBE2S);}
void c_h3d_create_rbe2_impi_(int *ITAB, int *NRBE2, int *IADRBE2, int *MASTERNODS, int *P0RBE2BUF, int *ID_RBE2, int *COMPID_RBE2S)

◆ c_h3d_create_rbe2_impi()

void c_h3d_create_rbe2_impi ( int * ITAB,
int * NRBE2,
int * IADRBE2,
int * MASTERNODS,
int * P0RBE2BUF,
int * ID_RBE2,
int * COMPID_RBE2S )

Definition at line 310 of file c_h3d_create_rbe2.cpp.

312{c_h3d_create_rbe2_impi_ (ITAB,NRBE2,IADRBE2,MASTERNODS,P0RBE2BUF,ID_RBE2,COMPID_RBE2S);}

◆ c_h3d_create_rbe2_impi_()

void c_h3d_create_rbe2_impi_ ( int * ITAB,
int * NRBE2,
int * IADRBE2,
int * MASTERNODS,
int * P0RBE2BUF,
int * ID_RBE2,
int * COMPID_RBE2S )

Definition at line 187 of file c_h3d_create_rbe2.cpp.

189{
190
191 try {
192
193
194 // create Elements
195 H3D_ID elem_id ;
196 H3D_ID RigidElem ;
197 int i,j,n,p,nsn,nsn_loc,ptr,iadg;
198 //int PTRPO_TMP[*NSPMD + 1];
199
200 char RBE2POOL[] = "Rbe2";
202 if( !rc ) throw rc;
203
204 char RIGIDPOOL[] = "Rigid";
206 if( !rc ) throw rc;
207
208 unsigned int *conn;
209 double *coef;
210 int *dof;
211 unsigned int elem_count = 1;
212
213
214 if(*COMPID_RBE2S != 0 && *NRBE2 != 0)
215 {
217 H3D_ELEM_CONFIG_RIGIDLINK, *COMPID_RBE2S,
219 for(i=0;i<*NRBE2;i++)
220 {
221 elem_id = ID_RBE2[i];
222 nsn =IADRBE2[i+1] - IADRBE2[i];
223 iadg = IADRBE2[i] ;
224
225
226 conn =(unsigned int *)malloc(nsn*sizeof(unsigned int));
227 coef =(double *)malloc(nsn*sizeof(double));
228 dof =(int *)malloc(nsn*sizeof(int));
229 unsigned int conn1[1];
230 //double coef[nsn];
231 double coef1[1] = {1.0};
232 //int dof[nsn];
233 int dof1[1] = {6};
234 conn1[0] = MASTERNODS[i];
235 j = 0;
236 for(n=0;n<nsn;n++)
237 {
238 conn[n] = P0RBE2BUF[iadg + n];
239 }
240
241 if( !rc ) throw rc;
242 rc = Hyper3DElement2Write(h3d_file, elem_id, conn1, dof1 , coef1 , 1 ,conn, dof, coef, nsn);
243 if( !rc ) throw rc;
244
245 free(conn);
246 free(coef);
247 free(dof);
248 }
250 if( !rc ) throw rc;
251
252 }
253 else
254 {
255 for(i=0;i<*NRBE2;i++)
256 {
257 elem_id = ID_RBE2[i];
258 nsn =IADRBE2[i+1] - IADRBE2[i];
259 iadg = IADRBE2[i] ;
260
261
262 conn =(unsigned int *)malloc(nsn*sizeof(unsigned int));
263 coef =(double *)malloc(nsn*sizeof(double));
264 dof =(int *)malloc(nsn*sizeof(int));
265 unsigned int conn1[1];
266 //double coef[nsn];
267 double coef1[1] = {1.0};
268 //int dof[nsn];
269 int dof1[1] = {6};
270 conn1[0] = MASTERNODS[i];
271 j = 0;
272 for(n=0;n<nsn;n++)
273 {
274 conn[n] = P0RBE2BUF[iadg + n];
275 }
276
277
278
280 H3D_ELEM_CONFIG_RIGIDLINK, elem_id,
282 if( !rc ) throw rc;
283 rc = Hyper3DElement2Write(h3d_file, elem_id, conn1, dof1 , coef1 , 1 ,conn, dof, coef, nsn);
284 if( !rc ) throw rc;
286 if( !rc ) throw rc;
287
288 free(conn);
289 free(coef);
290 free(dof);
291
292 }
293 }
294 } // end of try
295
296 catch(...) {
298 }
299
300}
n

◆ c_h3d_create_rbe2_impi__()

void c_h3d_create_rbe2_impi__ ( int * ITAB,
int * NRBE2,
int * IADRBE2,
int * MASTERNODS,
int * P0RBE2BUF,
int * ID_RBE2,
int * COMPID_RBE2S )

Definition at line 306 of file c_h3d_create_rbe2.cpp.

308{c_h3d_create_rbe2_impi_ (ITAB,NRBE2,IADRBE2,MASTERNODS,P0RBE2BUF,ID_RBE2,COMPID_RBE2S);}