82 my_real *ZN ,
int *NUM_ADDED_NODES)
87 float DX0[6] = { 0., 0., 0., 0., 0., 0.};
88 float DY0[6] = { 1.,-1., 0., 0., 0., 0.};
89 float DZ0[6] = { 0., 0.,-1., 1., 1.,-1.};
90 float DX1[6] = { 1., 1., 1., 1., 0., 0.};
91 float DY1[6] = { 0., 0., 0., 0., 1., 1.};
92 float DZ1[6] = { 0., 0., 0., 0., 0., 0.};
93 float X0[6] = {-3.,-3.,-3.,-3.,-3., 3.};
94 float Y0[6] = {-3., 3.,-3., 3.,-3.,-3.};
95 float Z0[6] = {-3., 3., 3.,-3.,-3., 3.};
97 float node[3],
r,xx,yy,zz,xx0,yy0,zz0,d,
alpha,s,c;
103 int i,j,nsn,nbelemwrite,n2,n3,n4,ityp;
105 char RWALLPOOL[] =
"Rwall";
109 char RIGIDPOOL[] =
"Rigid";
113 unsigned int elem_count = 1;
115 int id_node = *MAX_NOD_ID;
119 for(i=0;i<*NRWALL;i++)
127 RigidElem = NOM_OPT[*I16D + i * *LNOPT1 - 1];
132 int id_node_0 = id_node + 1 ;
137 node[0] = XWL[i] + V1[i];
138 node[1] = YWL[i] + V2[i];
139 node[2] = ZWL[i] + V3[i];
146 node[0] = XWL[i] + VV1[i];
147 node[1] = YWL[i] + VV2[i];
148 node[2] = ZWL[i] + VV3[i];
155 node[0] = XWL[i] - V1[i];
156 node[1] = YWL[i] - V2[i];
157 node[2] = ZWL[i] - V3[i];
164 node[0] = XWL[i] - VV1[i];
165 node[1] = YWL[i] - VV2[i];
166 node[2] = ZWL[i] - VV3[i];
176 unsigned int conn[4];
177 conn[0] = id_node - 3 ;
178 conn[1] = id_node - 2 ;
179 conn[2] = id_node - 1 ;
185 H3D_ELEM_CONFIG_QUAD4, RigidElem,
202 int id_node_0 = id_node + 1 ;
207 for(
int ii=0;ii<24;ii++)
213 node[0] = XWL[i] + VV1[i] * s + V1[i] * c - XN[i] * XL[i];
214 node[1] = YWL[i] + VV2[i] * s + V2[i] * c - YN[i] * XL[i];
215 node[2] = ZWL[i] + VV3[i] * s + V3[i] * c - ZN[i] * XL[i];
222 node[0] = XWL[i] + VV1[i] * s + V1[i] * c + XN[i] * XL[i];
223 node[1] = YWL[i] + VV2[i] * s + V2[i] * c + YN[i] * XL[i];
224 node[2] = ZWL[i] + VV3[i] * s + V3[i] * c + ZN[i] * XL[i];
239 unsigned int conn[4];
242 for(
int ii=0;ii<23;ii++)
245 conn[1] = id_node + 2 ;
246 conn[2] = id_node + 3 ;
247 conn[3] = id_node + 1 ;
251 H3D_ELEM_CONFIG_QUAD4, RigidElem,
262 id_node = id_node + 2;
265 conn[1] = id_node_0 ;
266 conn[2] = id_node_0 + 1 ;
267 conn[3] = id_node + 1 ;
271 H3D_ELEM_CONFIG_QUAD4, RigidElem,
282 id_node = id_node + 1;
291 int id_node_0 = id_node + 1 ;
296 for(
int ii=0;ii<6;ii++)
301 for(
int jj=0;jj<7;jj++)
306 for(
int ll=0;ll<7;ll++)
308 d =
r/sqrt(xx*xx+yy*yy+zz*zz);
310 node[0] = d*xx + XWL[i];
311 node[1] = d*yy + YWL[i];
312 node[2] = d*zz + ZWL[i];
334 unsigned int conn[4];
337 for(
int ii=0;ii<6;ii++)
339 for(
int jj=0;jj<6;jj++)
341 for(
int ll=0;ll<6;ll++)
344 conn[1] = id_node + 1 ;
345 conn[2] = id_node + 8 ;
346 conn[3] = id_node + 7 ;
350 H3D_ELEM_CONFIG_QUAD4, RigidElem,
361 id_node = id_node + 1;
363 id_node = id_node + 1;
365 id_node = id_node + 7;
368 id_node = id_node_0 + 293 ;
374 int id_node_0 = id_node + 1 ;
388 node[0] = XWL[i] + V1[i];
389 node[1] = YWL[i] + V2[i];
390 node[2] = ZWL[i] + V3[i];
397 node[0] = XWL[i] + V1[i] + VV1[i];
398 node[1] = YWL[i] + V2[i] + VV2[i];
399 node[2] = ZWL[i] + V3[i] + VV3[i];
406 node[0] = XWL[i] + VV1[i];
407 node[1] = YWL[i] + VV2[i];
408 node[2] = ZWL[i] + VV3[i];
418 unsigned int conn[4];
419 conn[0] = id_node - 3 ;
420 conn[1] = id_node - 2 ;
421 conn[2] = id_node - 1 ;
427 H3D_ELEM_CONFIG_QUAD4, RigidElem,
444 *NUM_ADDED_NODES = id_node - *MAX_NOD_ID;
void c_h3d_create_rwalls(int *NOM_OPT, int *LNOPT1, int *I16D, int *NPRW, int *NRWALL, int *MAX_NOD_ID, my_real *XWL, my_real *YWL, my_real *ZWL, my_real *V1, my_real *V2, my_real *V3, my_real *VV1, my_real *VV2, my_real *VV3, my_real *XL, my_real *XN, my_real *YN, my_real *ZN, int *NUM_ADDED_NODES)
void c_h3d_create_rwalls__(int *NOM_OPT, int *LNOPT1, int *I16D, int *NPRW, int *NRWALL, int *MAX_NOD_ID, my_real *XWL, my_real *YWL, my_real *ZWL, my_real *V1, my_real *V2, my_real *V3, my_real *VV1, my_real *VV2, my_real *VV3, my_real *XL, my_real *XN, my_real *YN, my_real *ZN, int *NUM_ADDED_NODES)
void c_h3d_create_rwalls_(int *NOM_OPT, int *LNOPT1, int *I16D, int *NPRW, int *NRWALL, int *MAX_NOD_ID, my_real *XWL, my_real *YWL, my_real *ZWL, my_real *V1, my_real *V2, my_real *V3, my_real *VV1, my_real *VV2, my_real *VV3, my_real *XL, my_real *XN, my_real *YN, my_real *ZN, int *NUM_ADDED_NODES)
void _FCALL C_H3D_CREATE_RWALLS(int *NOM_OPT, int *LNOPT1, int *I16D, int *NPRW, int *NRWALL, int *MAX_NOD_ID, my_real *XWL, my_real *YWL, my_real *ZWL, my_real *V1, my_real *V2, my_real *V3, my_real *VV1, my_real *VV2, my_real *VV3, my_real *XL, my_real *XN, my_real *YN, my_real *ZN, int *NUM_ADDED_NODES)