void sciddicaTSimulationInit(struct CALModel2D* sciddicaT) { CALreal z, h; CALint i, j; //initializing substates to 0 calInitSubstate2Dr(sciddicaT, Q.f[0], 0); calInitSubstate2Dr(sciddicaT, Q.f[1], 0); calInitSubstate2Dr(sciddicaT, Q.f[2], 0); calInitSubstate2Dr(sciddicaT, Q.f[3], 0); //sciddicaT parameters setting P.r = P_R; P.epsilon = P_EPSILON; //sciddicaT source initialization for (i=0; i<sciddicaT->rows; i++) for (j=0; j<sciddicaT->columns; j++) { h = calGet2Dr(sciddicaT, Q.h, i, j); if ( h > 0.0 ) { z = calGet2Dr(sciddicaT, Q.z, i, j); calSet2Dr(sciddicaT, Q.z, i, j, z-h); } } }
void sciddicaTSimulationInit(struct CALModel2D* s3hex) { int i, j; //s3hex parameters setting P.adh = P_ADH; P.rl = P_RL; P.r = P_R; P.f = P_F; P.mt = P_MT; P.pef = P_PEF; // P.ltt = P_LTT; //initializing debris source calInitSubstate2Dr(s3hex, Q.h, 0); calInitSubstate2Dr(s3hex, Q.p, 0); #ifdef ACTIVE_CELLS for (i=0; i<s3hex->rows; i++) for (j=0; j<s3hex->columns; j++) if (calGet2Dr(s3hex,Q.h,i,j) > P.adh) { calAddActiveCell2D(s3hex,i,j); } #endif //Substates and active cells update calUpdate2D(s3hex); }
void sciddicaTSimulationInit(struct CALModel2D* s3hex) { int i, j, n; //s3hex parameters setting P.adh = P_ADH; P.rl = P_RL; P.r = P_R; P.f = P_F; P.mt = P_MT; P.pef = P_PEF; // P.ltt = P_LTT; //initializing substates calInitSubstate2Dr(s3hex, Q.h, 0); calInitSubstate2Dr(s3hex, Q.p, 0); for (n=0; n<s3hex->sizeof_X; n++) { calInitSubstate2Dr(s3hex, Q.fh[n], 0); calInitSubstate2Dr(s3hex, Q.fp[n], 0); } #ifdef ACTIVE_CELLS for (i=0; i<s3hex->rows; i++) for (j=0; j<s3hex->columns; j++) if (calGet2Dr(s3hex,Q.h,i,j) > P.adh) { calAddActiveCell2D(s3hex,i,j); } #endif }
// SciddicaT simulation init function void sciddicaTSimulationInit(struct CALModel2D* host_CA) { CALreal z, h; CALint i, j; //initializing substates to 0 calInitSubstate2Dr(host_CA, Q.f[0], 0); calInitSubstate2Dr(host_CA, Q.f[1], 0); calInitSubstate2Dr(host_CA, Q.f[2], 0); calInitSubstate2Dr(host_CA, Q.f[3], 0); //sciddicaT parameters setting P.r = P_R; P.epsilon = P_EPSILON; //sciddicaT source initialization for (i = 0; i < host_CA->rows; i++) for (j = 0; j < host_CA->columns; j++) { h = calGet2Dr(host_CA, Q.h, i, j); if (h > 0.0) { z = calGet2Dr(host_CA, Q.z, i, j); calSet2Dr(host_CA, Q.z, i, j, z - h); #ifdef ACTIVE_CELLS //adds the cell (i, j) to the set of active ones calAddActiveCell2D(host_CA, i, j); #endif } } }
void sciddicaTSteering(struct CALModel2D* sciddicaT) { //initializing substates to 0 calInitSubstate2Dr(sciddicaT, Q.f[0], 0); calInitSubstate2Dr(sciddicaT, Q.f[1], 0); calInitSubstate2Dr(sciddicaT, Q.f[2], 0); calInitSubstate2Dr(sciddicaT, Q.f[3], 0); }
void initSciara(char * demPath) { sciara = new Sciara; FILE * demFile = fopen(demPath, "r"); if (demFile == NULL) { perror("Cannot open dem file\n"); exit(EXIT_FAILURE); } TGISInfo sciaraINFO; int err = LeggiGISInfo(sciaraINFO, demFile); if (err > 0) { perror("Error while reading GIS INFO\n"); exit(EXIT_FAILURE); } sciara->rows = sciaraINFO.nrows; sciara->cols = sciaraINFO.ncols; sciara->elapsed_time = 0.0; sciara->parameters.rad2 = sqrt(2.0); sciara->parameters.effusion_duration = 0; if (active) sciara->model = calCADef2D(sciara->rows, sciara->cols, CAL_MOORE_NEIGHBORHOOD_2D, CAL_SPACE_TOROIDAL, CAL_OPT_ACTIVE_CELLS); else sciara->model = calCADef2D(sciara->rows, sciara->cols, CAL_MOORE_NEIGHBORHOOD_2D, CAL_SPACE_TOROIDAL, CAL_NO_OPT); sciara->substates = new SciaraSubstates(); sciara->substates->Sz = calAddSubstate2Dr(sciara->model); sciara->substates->Slt = calAddSubstate2Dr(sciara->model); sciara->substates->St = calAddSubstate2Dr(sciara->model); sciara->substates->Mb = calAddSingleLayerSubstate2Db(sciara->model); sciara->substates->Mv = calAddSingleLayerSubstate2Di(sciara->model); sciara->substates->Msl = calAddSingleLayerSubstate2Dr(sciara->model); sciara->substates->Sz_t0 = calAddSingleLayerSubstate2Dr(sciara->model); calInitSubstate2Dr(sciara->model, sciara->substates->Sz, 0); calInitSubstate2Dr(sciara->model, sciara->substates->Slt, 0); calInitSubstate2Dr(sciara->model, sciara->substates->St, 0); //TODO single layer initialization for (int i = 0; i < sciara->rows * sciara->cols; ++i) { sciara->substates->Mb->current[i] = CAL_FALSE; sciara->substates->Mv->current[i] = 0; sciara->substates->Msl->current[i] = 0; sciara->substates->Sz_t0->current[i] = 0; } for (int i = 0; i < NUMBER_OF_OUTFLOWS; ++i) { sciara->substates->f[i] = calAddSubstate2Dr(sciara->model); calInitSubstate2Dr(sciara->model, sciara->substates->f[i], 0); } fclose(demFile); }