AcouSTO  version 2.0

◆ read_nodes()

int read_nodes ( int  igeom,
const char *  geoname,
struct nodes_geom nodesgeom 
)
22  {
23  int ltmp;
24  char varname[MAX_PATH]; // temp var to read dynamic geometry &configuration
25  int rchk, mchk;
26 
27  nodesgeom->filename= NULL;
28  sprintf(varname, "%s.filename", geoname); CONFIG_GET_STRING(config, varname, nodesgeom->filename);
29  sprintf(varname, "%s.ncntr", geoname); CONFIG_GET_INT(config, varname, geometries[igeom].ncntr);
30  sprintf(varname, "%s.nnodb", geoname); CONFIG_GET_INT(config, varname, geometries[igeom].nnodb);
31  sprintf(varname, "%s.nelmb", geoname); CONFIG_GET_INT(config, varname, geometries[igeom].nelmb);
32 
33  geometries[igeom].type = NODES;
34  geometries[igeom].ptrgeom = (void*) nodesgeom;
35  if (0 == geometries[igeom].ncntr) {
36  if (0 == runinfo->ksymmi) {
37  geometries[igeom].ncntr = geometries[igeom].nelmb;
38  } else {
39  geometries[igeom].ncntr = (int) (geometries[igeom].nelmb / (runinfo->nsymm));
40  }
41  } else {
42  rchk = geometries[igeom].nelmb / geometries[igeom].ncntr;
43  mchk = geometries[igeom].nelmb % geometries[igeom].ncntr;
44  if (rchk != runinfo->nsymm)
45  logger(LOG_ERROR, "Number of elements and centers not consistent with symmetry level required: nelmb=%d, ncntr=%d, nsymm=%d \n", geometries[igeom].nelmb, geometries[igeom].ncntr, runinfo->nsymm);
46  if (mchk != 0)
47  logger(LOG_ERROR, "Number of elements is not a multiple integer of ncntr: nelmb(mod)ncntr=%d \n", mchk);
48  if ((rchk != runinfo->nsymm) || (mchk != 0)) {
49  return -1;
50  }
51  }
52  logger(LOG_DEBUG, "------------------------\n");
53  logger(LOG_DEBUG, " file\n");
54  logger(LOG_DEBUG, "------------------------\n");
55  logger(LOG_DEBUG, " - filename = \"%s\"\n", nodesgeom->filename);
56 
57 
58  return 0;
59 
60 
61 }
#define CONFIG_GET_INT(config, name, var)
Definition: config.h:47
struct geometry * geometries
Definition: globals.h:66
const char * filename
Definition: structs.h:243
struct run_info * runinfo
Definition: globals.h:34
int ncntr
Definition: structs.h:175
#define CONFIG_GET_STRING(config, name, var)
Definition: config.h:48
#define NODES
Definition: config.h:56
void * ptrgeom
Definition: structs.h:173
#define LOG_ERROR
Definition: logger.h:24
int nelmb
Definition: structs.h:179
struct config_t config
Definition: config.h:61
#define LOG_DEBUG
Definition: logger.h:27
int type
Definition: structs.h:171
int nsymm
Definition: structs.h:97
int ksymmi
Definition: structs.h:91
#define MAX_PATH
Definition: constants.h:29
void logger(int level, char *msg,...)
Definition: logger.c:56