diff --git a/Source/smokebot_trigger.txt b/Source/smokebot_trigger.txt index 640632602..93fae5366 100644 --- a/Source/smokebot_trigger.txt +++ b/Source/smokebot_trigger.txt @@ -1,5 +1,3 @@ - - master: dummy text to trigger smokebot devel: dummy text to trigger smokebot devel2: dummy text to trigger smokebot diff --git a/Source/smokeview/drawGeometry.c b/Source/smokeview/drawGeometry.c index 961f0ab43..0404f9105 100644 --- a/Source/smokeview/drawGeometry.c +++ b/Source/smokeview/drawGeometry.c @@ -717,9 +717,6 @@ void DrawOrigObstOutlines(void){ float *color, *oldcolor=NULL; -#ifdef pp_FDS - THREADcontrol(readsmvorig_threads, THREAD_JOIN); -#endif glPushMatrix(); glScalef(SCALE2SMV(1.0),SCALE2SMV(1.0),SCALE2SMV(1.0)); glTranslatef(-xbar0,-ybar0,-zbar0); @@ -3080,23 +3077,23 @@ void DrawObstsDebug(void){ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, block_specular2); glEnable(GL_COLOR_MATERIAL); } - for(i = 0; i < nmeshes; i++){ + for(i = 1; i <= nmeshes; i++){ meshdata *meshi; int j; int jmin, jmax; - meshi = meshinfo + i; + meshi = meshinfo + i - 1; jmin = 0; jmax = meshi->nbptrs-1; - if(mesh_index_debug >= 0 && mesh_index_debug < nmeshes){ + if(mesh_index_debug >= 1 && mesh_index_debug <= nmeshes){ int max_blockage_index_debug; if(mesh_index_debug!=i)continue; max_blockage_index_debug = min_blockage_index_debug + n_blockages_debug - 1; - if(min_blockage_index_debug >= 0 && min_blockage_index_debug < meshi->nbptrs){ - if(max_blockage_index_debug >= 0 && max_blockage_index_debug < meshi->nbptrs){ + if(min_blockage_index_debug >= 1 && min_blockage_index_debug <= meshi->nbptrs){ + if(max_blockage_index_debug >= 1 && max_blockage_index_debug <= meshi->nbptrs){ if(min_blockage_index_debug <= max_blockage_index_debug){ - jmin = min_blockage_index_debug; - jmax = max_blockage_index_debug; + jmin = min_blockage_index_debug-1; + jmax = max_blockage_index_debug-1; } } } diff --git a/Source/smokeview/glui_display.cpp b/Source/smokeview/glui_display.cpp index 6b28a3863..815f03ca0 100644 --- a/Source/smokeview/glui_display.cpp +++ b/Source/smokeview/glui_display.cpp @@ -88,6 +88,9 @@ GLUI_Spinner *SPINNER_spec_blue = NULL; GLUI_Spinner *SPINNER_spec_grey = NULL; GLUI_Spinner *SPINNER_shininess = NULL; GLUI_Spinner *SPINNER_ngridloc_digits = NULL; +GLUI_Spinner *SPINNER_mesh_debug = NULL; +GLUI_Spinner *SPINNER_blockage_min_debug = NULL; +GLUI_Spinner *SPINNER_blockage_n_debug = NULL; GLUI_Checkbox *CHECKBOX_visaxislabels = NULL; GLUI_Checkbox *CHECKBOX_labels_showtick = NULL; @@ -884,12 +887,13 @@ extern "C" void GLUIDisplaySetup(int main_window){ PANEL_blockage_drawing = glui_labels->add_panel_to_panel(PANEL_gen3,_("Blockage drawing")); RADIOBUTTON_label_1 = glui_labels->add_radiogroup_to_panel(PANEL_blockage_drawing, &blockage_draw_option, LABELS_drawface, GLUILabelsCB); glui_labels->add_radiobutton_to_group(RADIOBUTTON_label_1, _("original")); - glui_labels->add_radiobutton_to_group(RADIOBUTTON_label_1, _("new")); + glui_labels->add_radiobutton_to_group(RADIOBUTTON_label_1, _("default")); glui_labels->add_radiobutton_to_group(RADIOBUTTON_label_1, _("debug")); glui_labels->add_radiobutton_to_group(RADIOBUTTON_label_1, _("debug - draw only hidden faces")); - glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "mesh:", GLUI_SPINNER_INT, &mesh_index_debug); - glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "min blockage index:", GLUI_SPINNER_INT, &min_blockage_index_debug); - glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "number of blockages:", GLUI_SPINNER_INT, &n_blockages_debug); + SPINNER_mesh_debug = glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "mesh:", GLUI_SPINNER_INT, &mesh_index_debug); + SPINNER_blockage_min_debug = glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "min blockage index:", GLUI_SPINNER_INT, &min_blockage_index_debug); + SPINNER_blockage_n_debug = glui_labels->add_spinner_to_panel(PANEL_blockage_drawing, "number of blockages:", GLUI_SPINNER_INT, &n_blockages_debug); + GLUILabelsCB(LABELS_drawface); CHECKBOX_label_2=glui_labels->add_checkbox_to_panel(PANEL_gen3,_("Sort transparent faces"),&sort_transparent_faces,LABELS_drawface,GLUILabelsCB); CHECKBOX_label_3=glui_labels->add_checkbox_to_panel(PANEL_gen3,_("Hide overlaps"),&hide_overlaps,LABELS_hide_overlaps,GLUILabelsCB); @@ -1276,6 +1280,22 @@ extern "C" void GLUILabelsCB(int var){ break; case LABELS_drawface: updatefacelists=1; + if( + SPINNER_mesh_debug != NULL && + SPINNER_blockage_min_debug != NULL && + SPINNER_blockage_n_debug != NULL + ){ + if(blockage_draw_option == 0 || blockage_draw_option == 1){ + SPINNER_mesh_debug->disable(); + SPINNER_blockage_min_debug->disable(); + SPINNER_blockage_n_debug->disable(); + } + else{ + SPINNER_mesh_debug->enable(); + SPINNER_blockage_min_debug->enable(); + SPINNER_blockage_n_debug->enable(); + } + } break; case CB_USE_LIGHTING: case LABELS_shownorth: diff --git a/Source/smokeview/main.c b/Source/smokeview/main.c index 8b99f1cce..47dff1377 100644 --- a/Source/smokeview/main.c +++ b/Source/smokeview/main.c @@ -819,12 +819,6 @@ int main(int argc, char **argv){ smv_filename = ParseCommandline(argc, argv); -#ifdef WIN32 - if(Which("fds_local.bat", &fdsprog) != NULL)strcpy(fdsprog, "fds_local.bat"); -#else - Which("fds", &fdsprog); -#endif - if(smv_filename == NULL && show_version == 1){ InitStartupDirs(); DisplayVersionInfo("Smokeview "); diff --git a/Source/smokeview/options.h b/Source/smokeview/options.h index f82ab715a..48397609c 100644 --- a/Source/smokeview/options.h +++ b/Source/smokeview/options.h @@ -11,7 +11,6 @@ #define pp_FAST // set fast startup by default #define pp_GPU // support the GPU #define pp_THREAD // turn on multi-threading -//#define pp_FDS // create a 1 mesh input file #ifdef pp_FRAME // turn on each frame type if pp_FRAME is set #define pp_BOUNDFRAME // turn on frame code for boundary files diff --git a/Source/smokeview/readsmv.c b/Source/smokeview/readsmv.c index df82e181c..202aed2ff 100644 --- a/Source/smokeview/readsmv.c +++ b/Source/smokeview/readsmv.c @@ -6469,188 +6469,6 @@ blockagedata *GetBlockagePtr(float *xyz){ return NULL; } -#ifdef pp_FDS -/* ------------------ SkipFdsContinueLines ------------------------ */ - -void SkipFdsContinueLines(FILE *streamin, FILE *streamout, char *buffer){ - char *slash; - - slash = strrchr(buffer, '/'); - while(slash==NULL){ - if(fgets(buffer, 255, streamin) == NULL)return; - slash = strrchr(buffer, '/'); - } -} - -/* ------------------ ConvertFDSInputFile ------------------------ */ - -char *ConvertFDSInputFile(char *filein, int *ijk_arg, float *xb_arg){ - FILE *streamin, *streamout; - char *ext, fileout[1024], chid0[1024]; - int ijk[3] = {32, 32, 32}; - float xb[6] = {0.0, 1.6, 0.0, 1.6, 0.0, 3.2}; - int outmesh=1; - - if(filein == NULL)return NULL; - - strcpy(fileout, filein); - ext = strrchr(fileout, '.'); - if(ext != NULL)ext[0] = 0; - strcat(fileout, "_1m.fds"); - - strcpy(chid0, filein); - ext = strrchr(chid0, '.'); - if(ext != NULL)ext[0] = 0; - strcat(chid0, "_1m"); - - streamin = fopen(filein, "r"); - if(streamin == NULL)return NULL; - - streamout = fopen(fileout, "w"); - if(streamout == NULL){ - fclose(streamin); - return NULL; - } - - if(ijk_arg != NULL)memcpy(ijk, ijk_arg, 3 * sizeof(int)); - if(xb_arg != NULL)memcpy(xb, xb_arg, 6 * sizeof(float)); - while(!feof(streamin)){ - char buffer[255], *first; - - if(fgets(buffer, 255, streamin) == NULL)break; - first = TrimFrontBack(buffer); - if(first==NULL || first[0] != '&'){ - fprintf(streamout, "%s\n", buffer); - continue; - } - if(strncmp(first, "&HEAD", 5) == 0){ - fprintf(streamout, "&HEAD CHID='%s' /\n", chid0); - SkipFdsContinueLines(streamin, streamout, buffer); - continue; - } - else if(strncmp(first, "&MESH", 5) == 0){ - if(outmesh==1){ - int i; - char czero[256]; - - outmesh=0; - fprintf(streamout, "&MESH IJK=%i,%i,%i, XB=", ijk[0], ijk[1], ijk[2]); - for(i = 0;i < 5;i++){ - fprintf(streamout, "%s,", Val2String(xb[i], czero)); - } - fprintf(streamout, "%s /\n", Val2String(xb[5], czero)); - } - SkipFdsContinueLines(streamin, streamout, buffer); - continue; - } - else if(strncmp(first, "&TIME", 5) == 0){ - fprintf(streamout, "&TIME T_END=0.0 /\n"); - SkipFdsContinueLines(streamin, streamout, buffer); - continue; - } - fprintf(streamout, "%s\n", buffer); - } - fclose(streamin); - fclose(streamout); - - char *outfile; - NewMemory((void **)&outfile, strlen(fileout)+1); - strcpy(outfile, fileout); - return outfile; -} - -/* ------------------ GenerateSmvOrigFile ------------------------ */ - -int GenerateSmvOrigFile(void){ - int i; - int ijk[6]; - float xb[6]; - float dxmin, dymin, dzmin; - - if(fdsprog == NULL)return 0; - if(FileExistsOrig(smv_orig_filename) == 1 && IsFileNewer(smv_orig_filename, smv_filename) == 1)return 0; - - xb[0] = xbar0ORIG; - xb[1] = xbarORIG; - xb[2] = ybar0ORIG; - xb[3] = ybarORIG; - xb[4] = zbar0ORIG; - xb[5] = zbarORIG; - for(i = 0; i < nmeshes; i++){ - meshdata *meshi; - float dx, dy, dz; - float *xplt, *yplt, *zplt; - - meshi = meshinfo + i; - xplt = meshi->xplt_orig; - yplt = meshi->yplt_orig; - zplt = meshi->zplt_orig; - dx = (xplt[meshi->ibar] - xplt[0]) / (float)meshi->ibar; - dy = (yplt[meshi->jbar] - yplt[0]) / (float)meshi->jbar; - dz = (zplt[meshi->kbar] - zplt[0]) / (float)meshi->kbar; - if(i == 0){ - dxmin = dx; - dymin = dy; - dzmin = dz; - } - else{ - dxmin = MIN(dx, dxmin); - dymin = MIN(dy, dymin); - dzmin = MIN(dz, dzmin); - } - } - float nx, ny, nz; - - nx = (xbarORIG - xbar0ORIG) / dxmin + 1; - ny = (ybarORIG - ybar0ORIG) / dymin + 1; - nz = (zbarORIG - zbar0ORIG) / dzmin + 1; - if(nx * ny * nz > 10000000.0)return 0; - - ijk[0] = (int)nx; - ijk[1] = (int)ny; - ijk[2] = (int)nz; - - char *fdsonemesh, command_line[1024], smvonemesh[1024], gitonemesh[1024], *ext; - - fdsonemesh = ConvertFDSInputFile(fds_filein, ijk, xb); - if(FileExistsOrig(fdsonemesh) == 0 || fdsprog == NULL)return 0; - -// setup and run fds case - strcpy(command_line, fdsprog); - strcat(command_line, " "); - strcat(command_line, fdsonemesh); - strcat(command_line, " > Nul 2> Nul"); - system(command_line); - - strcpy(smvonemesh, fdsonemesh); - ext = strrchr(smvonemesh, '.'); - if(ext!=NULL)ext[0]=0; - strcat(smvonemesh, ".smv"); - if(FileExistsOrig(smvonemesh) == 0)return 0; - - strcpy(gitonemesh, fdsonemesh); - ext = strrchr(gitonemesh, '.'); - if(ext != NULL)ext[0] = 0; - strcat(gitonemesh, "_git.txt"); - - FileCopy(smvonemesh, smv_orig_filename); - FileErase(fdsonemesh); - FileErase(smvonemesh); - FileErase(gitonemesh); - return 1; -} - -/* ------------------ GenerateSmvOrigFileWrapper ------------------------ */ - -void *GenerateSmvOrigFileWrapper(void *arg){ - if(GenerateSmvOrigFile()==1){ - printf("%s generated\n", smv_orig_filename); - } - ReadSMVOrig(); - THREAD_EXIT(readsmvorig_threads); -} -#endif - /* ------------------ ReadSMVOrig ------------------------ */ void ReadSMVOrig(void){ @@ -7053,9 +6871,6 @@ int ReadSMV_Init(){ use_ffmpeg_threads = 0; use_readallgeom_threads = 0; use_isosurface_threads = 0; -#ifdef pp_FDS - use_readsmvorig_threads = 0; -#endif use_mergesmoke_threads = 0; use_meshnabors_threads = 0; } @@ -11826,13 +11641,6 @@ int ReadSMV_Configure(){ UpdateMeshCoords(); PRINT_TIMER(timer_readsmv, "UpdateMeshCoords"); -#ifdef pp_FDS - if(readsmvorig_threads == NULL){ - readsmvorig_threads = THREADinit(&n_readsmvorig_threads, &use_readsmvorig_threads, GenerateSmvOrigFileWrapper); - } - THREADrun(readsmvorig_threads); -#endif - UpdateSmoke3DTypes(); PRINT_TIMER(timer_readsmv, "UpdateSmoke3DTypes"); CheckMemory; diff --git a/Source/smokeview/smokeviewvars.h b/Source/smokeview/smokeviewvars.h index 854d681d0..2bad905db 100644 --- a/Source/smokeview/smokeviewvars.h +++ b/Source/smokeview/smokeviewvars.h @@ -38,12 +38,6 @@ SVEXTERN smokethreaddata smokethreadinfo[MAX_THREADS]; SVEXTERN int SVDECL(n_mergesmoke_glui_threads, 4), SVDECL(use_mergesmoke_glui_threads, 1); SVEXTERN int SVDECL(update_glui_merge_smoke, 1); -//***readsmvorig -#ifdef pp_FDS -SVEXTERN int SVDECL(n_readsmvorig_threads, 1), SVDECL(use_readsmvorig_threads, 1); -SVEXTERN threaderdata SVDECL(*readsmvorig_threads, NULL); -#endif - //***isosurface SVEXTERN int SVDECL(n_isosurface_threads, 1), SVDECL(use_isosurface_threads, 1); SVEXTERN threaderdata SVDECL(*isosurface_threads, NULL); @@ -1812,8 +1806,8 @@ SVEXTERN float texture_origin[3]; SVEXTERN int vslicecolorbarflag; SVEXTERN int SVDECL(blockage_draw_option, 1); -SVEXTERN int SVDECL(mesh_index_debug, -1); -SVEXTERN int SVDECL(min_blockage_index_debug, -1); +SVEXTERN int SVDECL(mesh_index_debug, 0); +SVEXTERN int SVDECL(min_blockage_index_debug, 0); SVEXTERN int SVDECL(n_blockages_debug, 0); #ifdef INMAIN SVEXTERN unsigned char rgb_below_min[3]={255-64,255-64,255-64}, rgb_above_max[3]={0,0,0}; @@ -1968,7 +1962,7 @@ SVEXTERN FILE SVDECL(*LOG_FILENAME,NULL); SVEXTERN char SVDECL(*flushfile,NULL), SVDECL(*chidfilebase,NULL); SVEXTERN int SVDECL(csv_loaded, 0), SVDECL(devices_setup,0),SVDECL(update_csv_load,0); SVEXTERN char SVDECL(*hrr_csv_filename,NULL),SVDECL(*devc_csv_filename,NULL),SVDECL(*exp_csv_filename,NULL); -SVEXTERN char SVDECL(*smokezippath,NULL), SVDECL(*smokeviewpath,NULL), SVDECL(*fdsprog, NULL); +SVEXTERN char SVDECL(*smokezippath,NULL), SVDECL(*smokeviewpath,NULL); SVEXTERN char SVDECL(*INI_fds_filein,NULL), SVDECL(*fds_filein,NULL); SVEXTERN char SVDECL(*caseini_filename,NULL); #ifdef pp_FRAME diff --git a/Source/smokeview/startup.c b/Source/smokeview/startup.c index e57c95f49..0cc2d1afd 100644 --- a/Source/smokeview/startup.c +++ b/Source/smokeview/startup.c @@ -262,9 +262,7 @@ int SetupCase(char *filename){ } // read casename.smo (only OBST lines) to define a one mesh version of OBST's -#ifndef pp_FDS ReadSMVOrig(); -#endif } if(return_code==0&&trainer_mode==1){ GLUIShowTrainer(); diff --git a/scripts/fds_smv_env.bat b/scripts/fds_smv_env.bat index 4c60f8292..1b6ba94e3 100644 --- a/scripts/fds_smv_env.bat +++ b/scripts/fds_smv_env.bat @@ -10,7 +10,7 @@ if exist %userprofile%\.bundle\smv_revision.txt ( :: ---- log entry date ---- -set smvlogdate="7-Nov-2024" +set smvlogdate="12-Nov-2024" :: ---- repo locations ----