AcouSTO  version 2.0

◆ read_plate()

int read_plate ( int  igeom,
const char *  geoname,
struct plate_geom plategeom 
)
22  {
23  int ltmp;
24  double dtmp;
25  char varname[MAX_PATH]; // temp var to read dynamic geometry &configuration
26  int rchk, mchk;
27  sprintf(varname, "%s.l1", geoname); CONFIG_GET_FLOAT(config, varname, plategeom->lx);
28  sprintf(varname, "%s.l2", geoname); CONFIG_GET_FLOAT(config, varname, plategeom->ly);
29  sprintf(varname, "%s.n1", geoname); CONFIG_GET_INT(config, varname, plategeom->nx);
30  sprintf(varname, "%s.n2", geoname); CONFIG_GET_INT(config, varname, plategeom->ny);
31 
32  geometries[igeom].type = PLATE;
33  geometries[igeom].ptrgeom = (void*) plategeom;
34  geometries[igeom].nelmb = (plategeom->nx) * (plategeom->ny);
35  geometries[igeom].nnodb = (plategeom->nx + 1) * (plategeom->ny + 1);
36  sprintf(varname, "%s.ncntr", geoname);
37  ltmp = 0;
38  CONFIG_GET_INT(config, varname, geometries[igeom].ncntr);
39  if (0 == geometries[igeom].ncntr) {
40  if (0 == runinfo->ksymmi) {
41  geometries[igeom].ncntr = geometries[igeom].nelmb;
42  } else {
43  geometries[igeom].ncntr = (int) (geometries[igeom].nelmb / (runinfo->nsymm));
44  }
45  } else {
46  rchk = geometries[igeom].nelmb / geometries[igeom].ncntr;
47  mchk = geometries[igeom].nelmb % geometries[igeom].ncntr;
48  if (rchk != runinfo->nsymm)
49  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);
50  if (mchk != 0)
51  logger(LOG_ERROR, "Number of elements is not a multiple integer of ncntr: nelmb(mod)ncntr=%d \n", mchk);
52  if ((rchk != runinfo->nsymm) || (mchk != 0)) {
53  return -1;
54  }
55  }
56 
57  logger(LOG_DEBUG, "------------------------\n");
58  logger(LOG_DEBUG, " plate\n");
59  logger(LOG_DEBUG, "------------------------\n");
60  logger(LOG_DEBUG, " - n1 = %d\n", plategeom->nx);
61  logger(LOG_DEBUG, " - n2 = %d\n", plategeom->ny);
62  logger(LOG_DEBUG, " - l1 = %f\n", plategeom->ly);
63  logger(LOG_DEBUG, " - l2 = %f\n", plategeom->ly);
64 
65 
66 
67  return 0;
68 
69 
70 }
#define CONFIG_GET_INT(config, name, var)
Definition: config.h:47
DOUBLE ly
Definition: structs.h:230
struct geometry * geometries
Definition: globals.h:66
struct run_info * runinfo
Definition: globals.h:34
int ncntr
Definition: structs.h:175
void * ptrgeom
Definition: structs.h:173
DOUBLE lx
Definition: structs.h:228
#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
#define PLATE
Definition: config.h:57
int ksymmi
Definition: structs.h:91
int nnodb
Definition: structs.h:177
int nx
Definition: structs.h:232
#define MAX_PATH
Definition: constants.h:29
#define CONFIG_GET_FLOAT(config, name, var)
Definition: config.h:44
void logger(int level, char *msg,...)
Definition: logger.c:56
int ny
Definition: structs.h:234