AcouSTO  version 2.0

◆ plate()

int plate ( struct geometry geom)

Plate geometry generation.

Parameters
[in,out]geomgeometry structure
29  {
30  DOUBLE l1,dl1;
31  DOUBLE l2,dl2;
32  int i,j;
33  int inodb,ielmb,nelmb,ivbase;
34  struct plate_geom* plategeom ;
35 
36  int i1,i2;
37 
38  logger(LOG_DEBUG,"building plate\n");
39  plategeom = (struct plate_geom*) geom->ptrgeom;
40 
41  // steps
42  dl1 = plategeom->lx/(plategeom->nx);
43  dl2 = plategeom->ly/(plategeom->ny);
44 
45  inodb=0;
46  l1 = -plategeom->lx/2;
47  /* building geometry */
48  for(j=0;j<(plategeom->nx+1);j++){
49  l2 = plategeom->ly/2;
50  for(i=0;i<(plategeom->ny+1);i++){
51  geometry->nodes[inodb + _g_inodb].x = l1;
52  geometry->nodes[inodb + _g_inodb].y = l2;
53  geometry->nodes[inodb + _g_inodb].z = 0.0;
54 
55  l2 -= dl2;
56  inodb++;
57  }
58  l1 += dl1;
59  }
60 
61  /* building topology */
62  nelmb = (plategeom->nx)*(plategeom->ny);
63  ivbase=0;
64  for(ielmb=0;ielmb<nelmb;ielmb++){
65  i1 = (ielmb)/(plategeom->ny);
66  i2 = i1+1;
67 
68  geometry->jnodb[ivbase+0 + _g_ielmb] = ielmb + i1 + 1;
69  geometry->jnodb[ivbase+1 + _g_ielmb] = ielmb + i1 + 1 + plategeom->ny + 1;
70  geometry->jnodb[ivbase+2 + _g_ielmb] = ielmb + i1 + plategeom->ny + 1;
71  geometry->jnodb[ivbase+3 + _g_ielmb] = ielmb + i1;
72 
73  ivbase +=4;
74  }
75 
76  geom_fill(geom); // filling geometry
77 
78  // adding to global vars
79  _g_icntr += geom->ncntr;
80  _g_inodb += geom->nnodb;
81  _g_ielmb += geom->nelmb;
82 
83  logger(LOG_DEBUG,"plate built\n");
84 
85  return 1;
86 
87 }
DOUBLE ly
Definition: structs.h:230
int ncntr
Definition: structs.h:175
void * ptrgeom
Definition: structs.h:173
DOUBLE lx
Definition: structs.h:228
void geom_fill(struct geometry *geom)
Definition: geom_utils.c:249
int nelmb
Definition: structs.h:179
Plate.
Definition: structs.h:226
#define LOG_DEBUG
Definition: logger.h:27
double DOUBLE
Definition: types.h:44
int nnodb
Definition: structs.h:177
int _g_inodb
Definition: globals.h:68
int nx
Definition: structs.h:232
int _g_ielmb
Definition: globals.h:70
Geometry info structure.
Definition: structs.h:161
int _g_icntr
Definition: globals.h:69
void logger(int level, char *msg,...)
Definition: logger.c:56
int ny
Definition: structs.h:234