AcouSTO  version 2.0

◆ build_nodes()

build_nodes ( struct geometry geom)

Build nodes from external file

Parameters
[in,out]geomstructure
30  {
31  int inodb,ivbase;
32  long double x,y,z;
33  int i,j1,j2,j3,j4;
34  char line[100];
35  FILE* fnodes;
36  struct nodes_geom *nodesgeom;
37 
38 
39  nodesgeom = (struct nodes_geom*) geom->ptrgeom;
40  logger(LOG_DEBUG,"loading file %s\n",nodesgeom->filename);
41  /* opening file */
42  fnodes = fopen(nodesgeom->filename,"r");
43  if(NULL == fnodes){
46  }
47 
48 
49  /* Reading nodes */
50  for(inodb=0;inodb<geom->nnodb;inodb++){
51  fgets(line,100,fnodes);
52  sscanf(line,VECTOR_SCANF,&x,&y,&z);
53  geometry->nodes[inodb + _g_inodb].x = x;
54  geometry->nodes[inodb + _g_inodb].y = y;
55  geometry->nodes[inodb + _g_inodb].z = z;
56  }
57 
58 
59  /* Reading topology */
60  for(i=1;i<=geom->nelmb;i++){
61  ivbase = (i-1)*4;
62  fgets(line,100,fnodes);
63  sscanf(line," %d %d %d %d\n",&j1,&j2,&j3,&j4);
64  geometry->jnodb[ivbase + _g_ielmb] = j1-1;
65  geometry->jnodb[ivbase+1 + _g_ielmb] = j2-1;
66  geometry->jnodb[ivbase+2 + _g_ielmb] = j3-1;
67  geometry->jnodb[ivbase+3 + _g_ielmb] = j4-1;
68  }
69 
70  geom_fill(geom); // filling geometry
71 
72  //adding to global vars
73  _g_icntr += geom->ncntr;
74  _g_inodb += geom->nnodb;
75  _g_ielmb += geom->nelmb;
76 
77  if(nodesgeom->filename) logger(LOG_DEBUG,"file %s read\n",nodesgeom->filename);
78  fclose(fnodes);
79 
80  return 1;
81 
82 }
#define MSG_GEOM_FILE_NOTFOUND
Definition: messages.h:38
const char * filename
Definition: structs.h:243
int ncntr
Definition: structs.h:175
void * ptrgeom
Definition: structs.h:173
void geom_fill(struct geometry *geom)
Definition: geom_utils.c:249
#define LOG_ERROR
Definition: logger.h:24
int nelmb
Definition: structs.h:179
#define ACOUSTO_ERROR_GEOMETRY
Definition: constants.h:25
#define VECTOR_SCANF
Definition: formats.h:65
#define LOG_DEBUG
Definition: logger.h:27
int nnodb
Definition: structs.h:177
int _g_inodb
Definition: globals.h:68
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
External geometry stored in file using acousto native format.
Definition: structs.h:241