From 6e0d3b89b6a73c47472ff93a44f80eaf1d53906b Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 8 Jan 2025 16:38:37 +0800 Subject: [PATCH 1/9] Add OPT__OUTPUT_TEXT_FORMAT_INT --- include/Global.h | 6 +++--- include/HDF5_Typedef.h | 1 + src/Auxiliary/Aux_Check_Parameter.cpp | 4 ++++ src/Auxiliary/Aux_TakeNote.cpp | 1 + src/Init/Init_Load_Parameter.cpp | 1 + src/Init/Init_ResetParameter.cpp | 7 +++++++ src/Main/Main.cpp | 6 +++--- src/Output/Output_DumpData_Total_HDF5.cpp | 7 +++++-- 8 files changed, 25 insertions(+), 8 deletions(-) diff --git a/include/Global.h b/include/Global.h index 246623d7b..cc1a23f31 100644 --- a/include/Global.h +++ b/include/Global.h @@ -52,8 +52,8 @@ extern long FixUpVar_Flux, FixUpVar_Restrict; extern int PassiveNorm_NVar, PassiveNorm_VarIdx[NCOMP_PASSIVE]; extern int PassiveIntFrac_NVar, PassiveIntFrac_VarIdx[NCOMP_PASSIVE]; -extern int StrLen_Flt; -extern char BlankPlusFormat_Flt[MAX_STRING+1]; +extern int StrLen_Flt, StrLen_Int; +extern char BlankPlusFormat_Flt[MAX_STRING+1], BlankPlusFormat_Int[MAX_STRING+1]; extern double BOX_SIZE, DT__MAX, DT__FLUID, DT__FLUID_INIT, END_T, OUTPUT_DT, OUTPUT_WALLTIME, DT__SYNC_PARENT_LV, DT__SYNC_CHILDREN_LV; extern long int END_STEP; @@ -78,7 +78,7 @@ extern bool OPT__CK_CONSERVATION, OPT__RESET_FLUID, OPT__FREEZE_FLUID, OPT extern bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_FLAG_NEAR_BOUNDARY; extern bool OPT__RECORD_NOTE, OPT__RECORD_UNPHY, INT_OPP_SIGN_0TH_ORDER; extern bool OPT__INT_FRAC_PASSIVE_LR, OPT__CK_INPUT_FLUID, OPT__SORT_PATCH_BY_LBIDX; -extern char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING]; +extern char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING], OPT__OUTPUT_TEXT_FORMAT_INT[MAX_STRING]; extern int OPT__UM_IC_FLOAT8; extern double COM_CEN_X, COM_CEN_Y, COM_CEN_Z, COM_MAX_R, COM_MIN_RHO, COM_TOLERR_R; extern int COM_MAX_ITER; diff --git a/include/HDF5_Typedef.h b/include/HDF5_Typedef.h index 541f0d70b..21a9e2523 100644 --- a/include/HDF5_Typedef.h +++ b/include/HDF5_Typedef.h @@ -810,6 +810,7 @@ struct InputPara_t int Opt__Output_Step; double Opt__Output_Dt; char *Opt__Output_Text_Format_Flt; + char *Opt__Output_Text_Format_Int; double Output_PartX; double Output_PartY; double Output_PartZ; diff --git a/src/Auxiliary/Aux_Check_Parameter.cpp b/src/Auxiliary/Aux_Check_Parameter.cpp index c8da7feba..bbc45b715 100644 --- a/src/Auxiliary/Aux_Check_Parameter.cpp +++ b/src/Auxiliary/Aux_Check_Parameter.cpp @@ -386,6 +386,10 @@ void Aux_Check_Parameter() Aux_Message( stderr, "WARNING : StrLen_Flt (%d) <= 0 (OPT__OUTPUT_TEXT_FORMAT_FLT=%s) --> text output might be misaligned !!\n", StrLen_Flt, OPT__OUTPUT_TEXT_FORMAT_FLT ); + if ( StrLen_Int <= 0 ) + Aux_Message( stderr, "WARNING : StrLen_Int (%d) <= 0 (OPT__OUTPUT_TEXT_FORMAT_INT=%s) --> text output might be misaligned !!\n", + StrLen_Int, OPT__OUTPUT_TEXT_FORMAT_INT ); + if ( OPT__CK_REFINE ) Aux_Message( stderr, "WARNING : \"%s\" check may fail due to the proper-nesting constraint !!\n", "OPT__CK_REFINE" ); diff --git a/src/Auxiliary/Aux_TakeNote.cpp b/src/Auxiliary/Aux_TakeNote.cpp index 76a749111..99f25f240 100644 --- a/src/Auxiliary/Aux_TakeNote.cpp +++ b/src/Auxiliary/Aux_TakeNote.cpp @@ -1558,6 +1558,7 @@ void Aux_TakeNote() fprintf( Note, "OPT__OUTPUT_PART % d\n", OPT__OUTPUT_PART ); fprintf( Note, "OPT__OUTPUT_USER % d\n", OPT__OUTPUT_USER ); fprintf( Note, "OPT__OUTPUT_TEXT_FORMAT_FLT %s\n", OPT__OUTPUT_TEXT_FORMAT_FLT ); + fprintf( Note, "OPT__OUTPUT_TEXT_FORMAT_INT %s\n", OPT__OUTPUT_TEXT_FORMAT_INT ); # ifdef PARTICLE fprintf( Note, "OPT__OUTPUT_PAR_MODE % d\n", OPT__OUTPUT_PAR_MODE ); # ifdef TRACER diff --git a/src/Init/Init_Load_Parameter.cpp b/src/Init/Init_Load_Parameter.cpp index c2795009e..5cc11ca32 100644 --- a/src/Init/Init_Load_Parameter.cpp +++ b/src/Init/Init_Load_Parameter.cpp @@ -494,6 +494,7 @@ void Init_Load_Parameter() ReadPara->Add( "OPT__OUTPUT_PART", &OPT__OUTPUT_PART, 0, 0, 7 ); ReadPara->Add( "OPT__OUTPUT_USER", &OPT__OUTPUT_USER, false, Useless_bool, Useless_bool ); ReadPara->Add( "OPT__OUTPUT_TEXT_FORMAT_FLT", OPT__OUTPUT_TEXT_FORMAT_FLT, "%24.16e", Useless_str, Useless_str ); + ReadPara->Add( "OPT__OUTPUT_TEXT_FORMAT_INT", OPT__OUTPUT_TEXT_FORMAT_INT, "%12ld", Useless_str, Useless_str ); # ifdef PARTICLE ReadPara->Add( "OPT__OUTPUT_PAR_MODE", &OPT__OUTPUT_PAR_MODE, 0, 0, 2 ); # ifdef TRACER diff --git a/src/Init/Init_ResetParameter.cpp b/src/Init/Init_ResetParameter.cpp index 4639b29b0..521572be3 100644 --- a/src/Init/Init_ResetParameter.cpp +++ b/src/Init/Init_ResetParameter.cpp @@ -336,6 +336,13 @@ void Init_ResetParameter() StrLen_Flt = MAX( abs(atoi(OPT__OUTPUT_TEXT_FORMAT_FLT+1)), abs(atoi(OPT__OUTPUT_TEXT_FORMAT_FLT+2)) ); sprintf( BlankPlusFormat_Flt, " %s", OPT__OUTPUT_TEXT_FORMAT_FLT ); + if ( strlen(OPT__OUTPUT_TEXT_FORMAT_INT) > MAX_STRING-1 ) + Aux_Error( ERROR_INFO, "Length of OPT__OUTPUT_TEXT_FORMAT_INT (%d) should be smaller than MAX_STRING-1 (%d) !!\n", + strlen(OPT__OUTPUT_TEXT_FORMAT_INT), MAX_STRING-1 ); + + StrLen_Int = MAX( abs(atoi(OPT__OUTPUT_TEXT_FORMAT_INT+1)), abs(atoi(OPT__OUTPUT_TEXT_FORMAT_INT+2)) ); + sprintf( BlankPlusFormat_Int, " %s", OPT__OUTPUT_TEXT_FORMAT_INT ); + // ELBDM parameters # if ( MODEL == ELBDM ) diff --git a/src/Main/Main.cpp b/src/Main/Main.cpp index f9e1c09cf..93f5bf0d7 100644 --- a/src/Main/Main.cpp +++ b/src/Main/Main.cpp @@ -39,8 +39,8 @@ int *UM_IC_RefineRegion = NULL; long FixUpVar_Flux, FixUpVar_Restrict; int PassiveNorm_NVar, PassiveNorm_VarIdx[NCOMP_PASSIVE]; int PassiveIntFrac_NVar, PassiveIntFrac_VarIdx[NCOMP_PASSIVE]; -int StrLen_Flt; -char BlankPlusFormat_Flt[MAX_STRING+1]; +int StrLen_Flt, StrLen_Int; +char BlankPlusFormat_Flt[MAX_STRING+1], BlankPlusFormat_Int[MAX_STRING+1]; int MPI_Rank, MPI_Rank_X[3], MPI_SibRank[26], NX0[3], NPatchTotal[NLEVEL]; int *BaseP = NULL; @@ -70,7 +70,7 @@ bool OPT__CK_CONSERVATION, OPT__RESET_FLUID, OPT__FREEZE_FLUID, bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_FLAG_NEAR_BOUNDARY; bool OPT__RECORD_NOTE, OPT__RECORD_UNPHY, INT_OPP_SIGN_0TH_ORDER; bool OPT__INT_FRAC_PASSIVE_LR, OPT__CK_INPUT_FLUID, OPT__SORT_PATCH_BY_LBIDX; -char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING]; +char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING], OPT__OUTPUT_TEXT_FORMAT_INT[MAX_STRING]; int OPT__UM_IC_FLOAT8; double COM_CEN_X, COM_CEN_Y, COM_CEN_Z, COM_MAX_R, COM_MIN_RHO, COM_TOLERR_R; int COM_MAX_ITER; diff --git a/src/Output/Output_DumpData_Total_HDF5.cpp b/src/Output/Output_DumpData_Total_HDF5.cpp index de2caea13..5f4b646d9 100644 --- a/src/Output/Output_DumpData_Total_HDF5.cpp +++ b/src/Output/Output_DumpData_Total_HDF5.cpp @@ -69,7 +69,7 @@ Procedure for outputting new variables: //------------------------------------------------------------------------------------------------------- -// Function : Output_DumpData_Total_HDF5 (FormatVersion = 2480) +// Function : Output_DumpData_Total_HDF5 (FormatVersion = 2481) // Description : Output all simulation data in the HDF5 format, which can be used as a restart file // or loaded by YT // @@ -260,6 +260,7 @@ Procedure for outputting new variables: // output DENS and PHAS for the hybrid scheme (discard STUB) // output use_wave_flag[lv] for the hybrid scheme // 2480 : 2024/07/17 --> output OPT__OUTPUT_PAR_MESH and particle attributes mapped from mesh quantities +// 2481 : 2025/01/08 --> output OPT__OUTPUT_TEXT_FORMAT_INT //------------------------------------------------------------------------------------------------------- void Output_DumpData_Total_HDF5( const char *FileName ) { @@ -1553,7 +1554,7 @@ void FillIn_KeyInfo( KeyInfo_t &KeyInfo, const int NFieldStored ) const time_t CalTime = time( NULL ); // calendar time - KeyInfo.FormatVersion = 2480; + KeyInfo.FormatVersion = 2481; KeyInfo.Model = MODEL; KeyInfo.NLevel = NLEVEL; KeyInfo.NCompFluid = NCOMP_FLUID; @@ -2697,6 +2698,7 @@ void FillIn_InputPara( InputPara_t &InputPara, const int NFieldStored, char Fiel InputPara.Opt__Output_Step = OUTPUT_STEP; InputPara.Opt__Output_Dt = OUTPUT_DT; InputPara.Opt__Output_Text_Format_Flt = OPT__OUTPUT_TEXT_FORMAT_FLT; + InputPara.Opt__Output_Text_Format_Int = OPT__OUTPUT_TEXT_FORMAT_INT; InputPara.Output_PartX = OUTPUT_PART_X; InputPara.Output_PartY = OUTPUT_PART_Y; InputPara.Output_PartZ = OUTPUT_PART_Z; @@ -3710,6 +3712,7 @@ void GetCompound_InputPara( hid_t &H5_TypeID, const int NFieldStored ) H5Tinsert( H5_TypeID, "Opt__Output_Step", HOFFSET(InputPara_t,Opt__Output_Step ), H5T_NATIVE_INT ); H5Tinsert( H5_TypeID, "Opt__Output_Dt", HOFFSET(InputPara_t,Opt__Output_Dt ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Opt__Output_Text_Format_Flt", HOFFSET(InputPara_t,Opt__Output_Text_Format_Flt), H5_TypeID_VarStr ); + H5Tinsert( H5_TypeID, "Opt__Output_Text_Format_Int", HOFFSET(InputPara_t,Opt__Output_Text_Format_Int), H5_TypeID_VarStr ); H5Tinsert( H5_TypeID, "Output_PartX", HOFFSET(InputPara_t,Output_PartX ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Output_PartY", HOFFSET(InputPara_t,Output_PartY ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Output_PartZ", HOFFSET(InputPara_t,Output_PartZ ), H5T_NATIVE_DOUBLE ); From 8cf315505397bd54506f04a3dd8fbb667274424d Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 8 Jan 2025 16:38:54 +0800 Subject: [PATCH 2/9] Add OPT__OUTPUT_TEXT_FORMAT_INT --- example/test_problem/Template/Input__Parameter | 1 + 1 file changed, 1 insertion(+) diff --git a/example/test_problem/Template/Input__Parameter b/example/test_problem/Template/Input__Parameter index a0978b409..b224430cd 100644 --- a/example/test_problem/Template/Input__Parameter +++ b/example/test_problem/Template/Input__Parameter @@ -371,6 +371,7 @@ SPEC_INT_GHOST_BOUNDARY 4 # ghost boundary size for spectral int OPT__OUTPUT_TOTAL 1 # output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] OPT__OUTPUT_PART 0 # output a single line or slice: (0=off, 1=xy, 2=yz, 3=xz, 4=x, 5=y, 6=z, 7=diag) [0] OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of output text files [%24.16e] +OPT__OUTPUT_TEXT_FORMAT_INT %12ld # string format of output text files [%12ld] OPT__OUTPUT_USER 0 # output the user-specified data -> edit "Output_User.cpp" [0] OPT__OUTPUT_PAR_MODE 0 # output the particle data: (0=off, 1=text-file, 2=C-binary) [0] ##PARTICLE ONLY## OPT__OUTPUT_PAR_MESH 1 # output the attributes of tracer particles mapped from mesh quantities -> edit "Input__Par_Mesh" [1] ##PARTICLE ONLY## From 8b062198086711be0ec5b9161dc7f1f8992283e7 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 8 Jan 2025 16:39:06 +0800 Subject: [PATCH 3/9] Update wiki --- .../Runtime-Parameters:-Outputs.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md index 618fd65cf..f6910a951 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md @@ -2,6 +2,7 @@ Parameters described on this page: [OPT__OUTPUT_TOTAL](#OPT__OUTPUT_TOTAL),   [OPT__OUTPUT_PART](#OPT__OUTPUT_PART),   [OPT__OUTPUT_TEXT_FORMAT_FLT](#OPT__OUTPUT_TEXT_FORMAT_FLT),   +[OPT__OUTPUT_TEXT_FORMAT_INT](#OPT__OUTPUT_TEXT_FORMAT_INT),   [OPT__OUTPUT_USER](#OPT__OUTPUT_USER),   [OPT__OUTPUT_PAR_MODE](#OPT__OUTPUT_PAR_MODE),   [OPT__OUTPUT_PAR_MESH](#OPT__OUTPUT_PAR_MESH),   @@ -75,6 +76,13 @@ This will affect files generated by, for example, [OPT__OUTPUT_BASEPS](#OPT__OUTPUT_BASEPS). * **Restriction:** + +* #### `OPT__OUTPUT_TEXT_FORMAT_INT`   (%XX.YYe)   [%24.16e] + * **Description:** +String format of integer data in output text files. +Please use the scientific notation `%XXld` such as `%12ld`. + * **Restriction:** + * #### `OPT__OUTPUT_USER`   (0=off, 1=on)   [0] * **Description:** From d0c3203f9d0e890fd0d72c6f07783ae525ac193b Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 15 Jan 2025 10:26:33 +0800 Subject: [PATCH 4/9] Only format integer length --- .../Runtime-Parameters:-Outputs.md | 9 ++++----- example/test_problem/Template/Input__Parameter | 2 +- include/Global.h | 7 ++++--- include/HDF5_Typedef.h | 2 +- src/Auxiliary/Aux_Check_Parameter.cpp | 4 ---- src/Auxiliary/Aux_TakeNote.cpp | 2 +- src/Init/Init_Load_Parameter.cpp | 4 ++-- src/Init/Init_ResetParameter.cpp | 7 ------- src/Main/Main.cpp | 7 ++++--- src/Output/Output_DumpData_Total_HDF5.cpp | 10 +++++----- 10 files changed, 22 insertions(+), 32 deletions(-) diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md index f6910a951..41fb0f5a4 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md @@ -2,7 +2,7 @@ Parameters described on this page: [OPT__OUTPUT_TOTAL](#OPT__OUTPUT_TOTAL),   [OPT__OUTPUT_PART](#OPT__OUTPUT_PART),   [OPT__OUTPUT_TEXT_FORMAT_FLT](#OPT__OUTPUT_TEXT_FORMAT_FLT),   -[OPT__OUTPUT_TEXT_FORMAT_INT](#OPT__OUTPUT_TEXT_FORMAT_INT),   +[OPT__OUTPUT_TEXT_LENGTH_INT](#OPT__OUTPUT_TEXT_LENGTH_INT),   [OPT__OUTPUT_USER](#OPT__OUTPUT_USER),   [OPT__OUTPUT_PAR_MODE](#OPT__OUTPUT_PAR_MODE),   [OPT__OUTPUT_PAR_MESH](#OPT__OUTPUT_PAR_MESH),   @@ -76,11 +76,10 @@ This will affect files generated by, for example, [OPT__OUTPUT_BASEPS](#OPT__OUTPUT_BASEPS). * **Restriction:** - -* #### `OPT__OUTPUT_TEXT_FORMAT_INT`   (%XX.YYe)   [%24.16e] + +* #### `OPT__OUTPUT_TEXT_LENGTH_INT`   (≥0)   [12] * **Description:** -String format of integer data in output text files. -Please use the scientific notation `%XXld` such as `%12ld`. +String length of integer data in output text files. * **Restriction:** diff --git a/example/test_problem/Template/Input__Parameter b/example/test_problem/Template/Input__Parameter index b224430cd..ba43f11ec 100644 --- a/example/test_problem/Template/Input__Parameter +++ b/example/test_problem/Template/Input__Parameter @@ -371,7 +371,7 @@ SPEC_INT_GHOST_BOUNDARY 4 # ghost boundary size for spectral int OPT__OUTPUT_TOTAL 1 # output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] OPT__OUTPUT_PART 0 # output a single line or slice: (0=off, 1=xy, 2=yz, 3=xz, 4=x, 5=y, 6=z, 7=diag) [0] OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of output text files [%24.16e] -OPT__OUTPUT_TEXT_FORMAT_INT %12ld # string format of output text files [%12ld] +OPT__OUTPUT_TEXT_LENGTH_INT 12 # string length of integer output text files [12] OPT__OUTPUT_USER 0 # output the user-specified data -> edit "Output_User.cpp" [0] OPT__OUTPUT_PAR_MODE 0 # output the particle data: (0=off, 1=text-file, 2=C-binary) [0] ##PARTICLE ONLY## OPT__OUTPUT_PAR_MESH 1 # output the attributes of tracer particles mapped from mesh quantities -> edit "Input__Par_Mesh" [1] ##PARTICLE ONLY## diff --git a/include/Global.h b/include/Global.h index cc1a23f31..7fb8482f1 100644 --- a/include/Global.h +++ b/include/Global.h @@ -52,8 +52,8 @@ extern long FixUpVar_Flux, FixUpVar_Restrict; extern int PassiveNorm_NVar, PassiveNorm_VarIdx[NCOMP_PASSIVE]; extern int PassiveIntFrac_NVar, PassiveIntFrac_VarIdx[NCOMP_PASSIVE]; -extern int StrLen_Flt, StrLen_Int; -extern char BlankPlusFormat_Flt[MAX_STRING+1], BlankPlusFormat_Int[MAX_STRING+1]; +extern int StrLen_Flt; +extern char BlankPlusFormat_Flt[MAX_STRING+1]; extern double BOX_SIZE, DT__MAX, DT__FLUID, DT__FLUID_INIT, END_T, OUTPUT_DT, OUTPUT_WALLTIME, DT__SYNC_PARENT_LV, DT__SYNC_CHILDREN_LV; extern long int END_STEP; @@ -78,7 +78,8 @@ extern bool OPT__CK_CONSERVATION, OPT__RESET_FLUID, OPT__FREEZE_FLUID, OPT extern bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_FLAG_NEAR_BOUNDARY; extern bool OPT__RECORD_NOTE, OPT__RECORD_UNPHY, INT_OPP_SIGN_0TH_ORDER; extern bool OPT__INT_FRAC_PASSIVE_LR, OPT__CK_INPUT_FLUID, OPT__SORT_PATCH_BY_LBIDX; -extern char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING], OPT__OUTPUT_TEXT_FORMAT_INT[MAX_STRING]; +extern char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING]; +extern int OPT__OUTPUT_TEXT_LENGTH_INT; extern int OPT__UM_IC_FLOAT8; extern double COM_CEN_X, COM_CEN_Y, COM_CEN_Z, COM_MAX_R, COM_MIN_RHO, COM_TOLERR_R; extern int COM_MAX_ITER; diff --git a/include/HDF5_Typedef.h b/include/HDF5_Typedef.h index 21a9e2523..2fe2d7237 100644 --- a/include/HDF5_Typedef.h +++ b/include/HDF5_Typedef.h @@ -810,7 +810,7 @@ struct InputPara_t int Opt__Output_Step; double Opt__Output_Dt; char *Opt__Output_Text_Format_Flt; - char *Opt__Output_Text_Format_Int; + int Opt__Output_Text_Length_Int; double Output_PartX; double Output_PartY; double Output_PartZ; diff --git a/src/Auxiliary/Aux_Check_Parameter.cpp b/src/Auxiliary/Aux_Check_Parameter.cpp index bbc45b715..c8da7feba 100644 --- a/src/Auxiliary/Aux_Check_Parameter.cpp +++ b/src/Auxiliary/Aux_Check_Parameter.cpp @@ -386,10 +386,6 @@ void Aux_Check_Parameter() Aux_Message( stderr, "WARNING : StrLen_Flt (%d) <= 0 (OPT__OUTPUT_TEXT_FORMAT_FLT=%s) --> text output might be misaligned !!\n", StrLen_Flt, OPT__OUTPUT_TEXT_FORMAT_FLT ); - if ( StrLen_Int <= 0 ) - Aux_Message( stderr, "WARNING : StrLen_Int (%d) <= 0 (OPT__OUTPUT_TEXT_FORMAT_INT=%s) --> text output might be misaligned !!\n", - StrLen_Int, OPT__OUTPUT_TEXT_FORMAT_INT ); - if ( OPT__CK_REFINE ) Aux_Message( stderr, "WARNING : \"%s\" check may fail due to the proper-nesting constraint !!\n", "OPT__CK_REFINE" ); diff --git a/src/Auxiliary/Aux_TakeNote.cpp b/src/Auxiliary/Aux_TakeNote.cpp index 99f25f240..39680d6b3 100644 --- a/src/Auxiliary/Aux_TakeNote.cpp +++ b/src/Auxiliary/Aux_TakeNote.cpp @@ -1558,7 +1558,7 @@ void Aux_TakeNote() fprintf( Note, "OPT__OUTPUT_PART % d\n", OPT__OUTPUT_PART ); fprintf( Note, "OPT__OUTPUT_USER % d\n", OPT__OUTPUT_USER ); fprintf( Note, "OPT__OUTPUT_TEXT_FORMAT_FLT %s\n", OPT__OUTPUT_TEXT_FORMAT_FLT ); - fprintf( Note, "OPT__OUTPUT_TEXT_FORMAT_INT %s\n", OPT__OUTPUT_TEXT_FORMAT_INT ); + fprintf( Note, "OPT__OUTPUT_TEXT_LENGTH_INT % d\n", OPT__OUTPUT_TEXT_LENGTH_INT ); # ifdef PARTICLE fprintf( Note, "OPT__OUTPUT_PAR_MODE % d\n", OPT__OUTPUT_PAR_MODE ); # ifdef TRACER diff --git a/src/Init/Init_Load_Parameter.cpp b/src/Init/Init_Load_Parameter.cpp index 5cc11ca32..58fd6871c 100644 --- a/src/Init/Init_Load_Parameter.cpp +++ b/src/Init/Init_Load_Parameter.cpp @@ -494,7 +494,7 @@ void Init_Load_Parameter() ReadPara->Add( "OPT__OUTPUT_PART", &OPT__OUTPUT_PART, 0, 0, 7 ); ReadPara->Add( "OPT__OUTPUT_USER", &OPT__OUTPUT_USER, false, Useless_bool, Useless_bool ); ReadPara->Add( "OPT__OUTPUT_TEXT_FORMAT_FLT", OPT__OUTPUT_TEXT_FORMAT_FLT, "%24.16e", Useless_str, Useless_str ); - ReadPara->Add( "OPT__OUTPUT_TEXT_FORMAT_INT", OPT__OUTPUT_TEXT_FORMAT_INT, "%12ld", Useless_str, Useless_str ); + ReadPara->Add( "OPT__OUTPUT_TEXT_LENGTH_INT",&OPT__OUTPUT_TEXT_LENGTH_INT, 12, 0, NoMax_int ); # ifdef PARTICLE ReadPara->Add( "OPT__OUTPUT_PAR_MODE", &OPT__OUTPUT_PAR_MODE, 0, 0, 2 ); # ifdef TRACER @@ -509,7 +509,7 @@ void Init_Load_Parameter() ReadPara->Add( "OPT__OUTPUT_CC_MAG", &OPT__OUTPUT_CC_MAG, true, Useless_bool, Useless_bool ); # endif # ifdef GRAVITY - ReadPara->Add( "OPT__OUTPUT_POT", &OPT__OUTPUT_POT, true, Useless_bool, Useless_bool ); + ReadPara->Add( "OPT__OUTPUT_POT", &OPT__OUTPUT_POT, true, Useless_bool, Useless_bool ); # endif # ifdef PARTICLE ReadPara->Add( "OPT__OUTPUT_PAR_DENS", &OPT__OUTPUT_PAR_DENS, PAR_OUTPUT_DENS_PAR_ONLY, 0, 2 ); diff --git a/src/Init/Init_ResetParameter.cpp b/src/Init/Init_ResetParameter.cpp index 521572be3..4639b29b0 100644 --- a/src/Init/Init_ResetParameter.cpp +++ b/src/Init/Init_ResetParameter.cpp @@ -336,13 +336,6 @@ void Init_ResetParameter() StrLen_Flt = MAX( abs(atoi(OPT__OUTPUT_TEXT_FORMAT_FLT+1)), abs(atoi(OPT__OUTPUT_TEXT_FORMAT_FLT+2)) ); sprintf( BlankPlusFormat_Flt, " %s", OPT__OUTPUT_TEXT_FORMAT_FLT ); - if ( strlen(OPT__OUTPUT_TEXT_FORMAT_INT) > MAX_STRING-1 ) - Aux_Error( ERROR_INFO, "Length of OPT__OUTPUT_TEXT_FORMAT_INT (%d) should be smaller than MAX_STRING-1 (%d) !!\n", - strlen(OPT__OUTPUT_TEXT_FORMAT_INT), MAX_STRING-1 ); - - StrLen_Int = MAX( abs(atoi(OPT__OUTPUT_TEXT_FORMAT_INT+1)), abs(atoi(OPT__OUTPUT_TEXT_FORMAT_INT+2)) ); - sprintf( BlankPlusFormat_Int, " %s", OPT__OUTPUT_TEXT_FORMAT_INT ); - // ELBDM parameters # if ( MODEL == ELBDM ) diff --git a/src/Main/Main.cpp b/src/Main/Main.cpp index 93f5bf0d7..866101b81 100644 --- a/src/Main/Main.cpp +++ b/src/Main/Main.cpp @@ -39,8 +39,8 @@ int *UM_IC_RefineRegion = NULL; long FixUpVar_Flux, FixUpVar_Restrict; int PassiveNorm_NVar, PassiveNorm_VarIdx[NCOMP_PASSIVE]; int PassiveIntFrac_NVar, PassiveIntFrac_VarIdx[NCOMP_PASSIVE]; -int StrLen_Flt, StrLen_Int; -char BlankPlusFormat_Flt[MAX_STRING+1], BlankPlusFormat_Int[MAX_STRING+1]; +int StrLen_Flt; +char BlankPlusFormat_Flt[MAX_STRING+1]; int MPI_Rank, MPI_Rank_X[3], MPI_SibRank[26], NX0[3], NPatchTotal[NLEVEL]; int *BaseP = NULL; @@ -70,7 +70,8 @@ bool OPT__CK_CONSERVATION, OPT__RESET_FLUID, OPT__FREEZE_FLUID, bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_FLAG_NEAR_BOUNDARY; bool OPT__RECORD_NOTE, OPT__RECORD_UNPHY, INT_OPP_SIGN_0TH_ORDER; bool OPT__INT_FRAC_PASSIVE_LR, OPT__CK_INPUT_FLUID, OPT__SORT_PATCH_BY_LBIDX; -char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING], OPT__OUTPUT_TEXT_FORMAT_INT[MAX_STRING]; +char OPT__OUTPUT_TEXT_FORMAT_FLT[MAX_STRING]; +int OPT__OUTPUT_TEXT_LENGTH_INT; int OPT__UM_IC_FLOAT8; double COM_CEN_X, COM_CEN_Y, COM_CEN_Z, COM_MAX_R, COM_MIN_RHO, COM_TOLERR_R; int COM_MAX_ITER; diff --git a/src/Output/Output_DumpData_Total_HDF5.cpp b/src/Output/Output_DumpData_Total_HDF5.cpp index 5f4b646d9..042b0e10c 100644 --- a/src/Output/Output_DumpData_Total_HDF5.cpp +++ b/src/Output/Output_DumpData_Total_HDF5.cpp @@ -69,7 +69,7 @@ Procedure for outputting new variables: //------------------------------------------------------------------------------------------------------- -// Function : Output_DumpData_Total_HDF5 (FormatVersion = 2481) +// Function : Output_DumpData_Total_HDF5 (FormatVersion = 2501) // Description : Output all simulation data in the HDF5 format, which can be used as a restart file // or loaded by YT // @@ -260,7 +260,7 @@ Procedure for outputting new variables: // output DENS and PHAS for the hybrid scheme (discard STUB) // output use_wave_flag[lv] for the hybrid scheme // 2480 : 2024/07/17 --> output OPT__OUTPUT_PAR_MESH and particle attributes mapped from mesh quantities -// 2481 : 2025/01/08 --> output OPT__OUTPUT_TEXT_FORMAT_INT +// 2501 : 2025/01/15 --> output OPT__OUTPUT_TEXT_LENGTH_INT //------------------------------------------------------------------------------------------------------- void Output_DumpData_Total_HDF5( const char *FileName ) { @@ -1554,7 +1554,7 @@ void FillIn_KeyInfo( KeyInfo_t &KeyInfo, const int NFieldStored ) const time_t CalTime = time( NULL ); // calendar time - KeyInfo.FormatVersion = 2481; + KeyInfo.FormatVersion = 2501; KeyInfo.Model = MODEL; KeyInfo.NLevel = NLEVEL; KeyInfo.NCompFluid = NCOMP_FLUID; @@ -2698,7 +2698,7 @@ void FillIn_InputPara( InputPara_t &InputPara, const int NFieldStored, char Fiel InputPara.Opt__Output_Step = OUTPUT_STEP; InputPara.Opt__Output_Dt = OUTPUT_DT; InputPara.Opt__Output_Text_Format_Flt = OPT__OUTPUT_TEXT_FORMAT_FLT; - InputPara.Opt__Output_Text_Format_Int = OPT__OUTPUT_TEXT_FORMAT_INT; + InputPara.Opt__Output_Text_Length_Int = OPT__OUTPUT_TEXT_LENGTH_INT; InputPara.Output_PartX = OUTPUT_PART_X; InputPara.Output_PartY = OUTPUT_PART_Y; InputPara.Output_PartZ = OUTPUT_PART_Z; @@ -3712,7 +3712,7 @@ void GetCompound_InputPara( hid_t &H5_TypeID, const int NFieldStored ) H5Tinsert( H5_TypeID, "Opt__Output_Step", HOFFSET(InputPara_t,Opt__Output_Step ), H5T_NATIVE_INT ); H5Tinsert( H5_TypeID, "Opt__Output_Dt", HOFFSET(InputPara_t,Opt__Output_Dt ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Opt__Output_Text_Format_Flt", HOFFSET(InputPara_t,Opt__Output_Text_Format_Flt), H5_TypeID_VarStr ); - H5Tinsert( H5_TypeID, "Opt__Output_Text_Format_Int", HOFFSET(InputPara_t,Opt__Output_Text_Format_Int), H5_TypeID_VarStr ); + H5Tinsert( H5_TypeID, "Opt__Output_Text_Length_Int", HOFFSET(InputPara_t,Opt__Output_Text_Length_Int), H5T_NATIVE_INT ); H5Tinsert( H5_TypeID, "Output_PartX", HOFFSET(InputPara_t,Output_PartX ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Output_PartY", HOFFSET(InputPara_t,Output_PartY ), H5T_NATIVE_DOUBLE ); H5Tinsert( H5_TypeID, "Output_PartZ", HOFFSET(InputPara_t,Output_PartZ ), H5T_NATIVE_DOUBLE ); From 1fa7db606b5f9d803f187d119c52a59f925398c5 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 15 Jan 2025 02:29:33 +0000 Subject: [PATCH 5/9] [Workflow] Update all parameters wiki page --- doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md index af754c96b..e9008e18f 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md @@ -301,6 +301,7 @@ For variables with `Default/Min/Max` labeled as `Depend`, click the parameter na | [[ OPT__OUTPUT_RESTART \| Runtime-Parameters:-Outputs#OPT__OUTPUT_RESTART ]] | 0 | None | None | output data immediately after restart [0] | | [[ OPT__OUTPUT_TEMP \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEMP ]] | OutTempDefault | None | None | output gas temperature [0 (HD) or 1 (SRHD)] ##HYDRO ONLY## | | [[ OPT__OUTPUT_TEXT_FORMAT_FLT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_FORMAT_FLT ]] | "%24.16e" | None | None | string format of output text files [%24.16e] | +| [[ OPT__OUTPUT_TEXT_LENGTH_INT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_LENGTH_INT ]] | 12 | 0 | None | string length of integer output text files [12] | | [[ OPT__OUTPUT_TOTAL \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TOTAL ]] | 1 | 0 | 2 | output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] | | [[ OPT__OUTPUT_USER \| Runtime-Parameters:-Outputs#OPT__OUTPUT_USER ]] | 0 | None | None | output the user-specified data -> edit "Output_User.cpp" [0] | | [[ OPT__OUTPUT_USER_FIELD \| Runtime-Parameters:-Outputs#OPT__OUTPUT_USER_FIELD ]] | 0 | None | None | output user-defined derived fields [0] -> edit "Flu_DerivedField_User.cpp" | From 761f08138a6a5efafc6788dbff2510c773fa4866 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 16 Jan 2025 18:51:52 +0800 Subject: [PATCH 6/9] Load Opt__Output_Text_Length_Int when restert --- src/Init/Init_ByRestart_HDF5.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Init/Init_ByRestart_HDF5.cpp b/src/Init/Init_ByRestart_HDF5.cpp index 56b451e96..4ae2b3156 100644 --- a/src/Init/Init_ByRestart_HDF5.cpp +++ b/src/Init/Init_ByRestart_HDF5.cpp @@ -2357,6 +2357,7 @@ void Check_InputPara( const char *FileName, const int FormatVersion ) LoadField( "Opt__Output_Step", &RS.Opt__Output_Step, SID, TID, NonFatal, &RT.Opt__Output_Step, 1, NonFatal ); LoadField( "Opt__Output_Dt", &RS.Opt__Output_Dt, SID, TID, NonFatal, &RT.Opt__Output_Dt, 1, NonFatal ); LoadField( "Opt__Output_Text_Format_Flt", &RS.Opt__Output_Text_Format_Flt, SID, TID, NonFatal, RT.Opt__Output_Text_Format_Flt, 1, NonFatal ); + LoadField( "Opt__Output_Text_Length_Int", &RS.Opt__Output_Text_Length_Int, SID, TID, NonFatal, &RT.Opt__Output_Text_Length_Int, 1, NonFatal ); } if ( OPT__OUTPUT_PART ) { LoadField( "Output_PartX", &RS.Output_PartX, SID, TID, NonFatal, &RT.Output_PartX, 1, NonFatal ); From a16644b109e7317134b7623778a949446b1d2679 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 16 Jan 2025 18:54:49 +0800 Subject: [PATCH 7/9] Update description --- example/test_problem/ELBDM/DiskHeating/Input__Parameter | 2 +- example/test_problem/Template/Input__Parameter | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/example/test_problem/ELBDM/DiskHeating/Input__Parameter b/example/test_problem/ELBDM/DiskHeating/Input__Parameter index e1eb1975c..82acc4ee3 100644 --- a/example/test_problem/ELBDM/DiskHeating/Input__Parameter +++ b/example/test_problem/ELBDM/DiskHeating/Input__Parameter @@ -246,7 +246,7 @@ SPEC_INT_GHOST_BOUNDARY 4 # ghost boundary size for spectral int # data dump OPT__OUTPUT_TOTAL 1 # output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] OPT__OUTPUT_PART 0 # output a single line or slice: (0=off, 1=xy, 2=yz, 3=xz, 4=x, 5=y, 6=z, 7=diag) [0] -OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of output text files [%24.16e] +OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of floating-point variables in output text files [%24.16e] OPT__OUTPUT_USER 0 # output the user-specified data -> edit "Output_User.cpp" [0] OPT__OUTPUT_PAR_MODE 0 # output the particle data: (0=off, 1=text-file, 2=C-binary) [0] ##PARTICLE ONLY## OPT__OUTPUT_BASEPS 0 # output the base-level power spectrum [0] diff --git a/example/test_problem/Template/Input__Parameter b/example/test_problem/Template/Input__Parameter index 1e09e31b0..344f5a4f3 100644 --- a/example/test_problem/Template/Input__Parameter +++ b/example/test_problem/Template/Input__Parameter @@ -379,8 +379,8 @@ SPEC_INT_GHOST_BOUNDARY 4 # ghost boundary size for spectral int # data dump OPT__OUTPUT_TOTAL 1 # output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] OPT__OUTPUT_PART 0 # output a single line or slice: (0=off, 1=xy, 2=yz, 3=xz, 4=x, 5=y, 6=z, 7=diag) [0] -OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of output text files [%24.16e] -OPT__OUTPUT_TEXT_LENGTH_INT 12 # string length of integer output text files [12] +OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of floating-point variables in output text files [%24.16e] +OPT__OUTPUT_TEXT_LENGTH_INT 12 # string length of integer variables in output text files [12] OPT__OUTPUT_USER 0 # output the user-specified data -> edit "Output_User.cpp" [0] OPT__OUTPUT_PAR_MODE 0 # output the particle data: (0=off, 1=text-file, 2=C-binary) [0] ##PARTICLE ONLY## OPT__OUTPUT_PAR_MESH 1 # output the attributes of tracer particles mapped from mesh quantities -> edit "Input__Par_Mesh" [1] ##PARTICLE ONLY## From 21061ad00e00cb10415dc7158927c2915a153525 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 16 Jan 2025 18:58:41 +0800 Subject: [PATCH 8/9] Update output format --- src/Particle/Par_Output_TextFile.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Particle/Par_Output_TextFile.cpp b/src/Particle/Par_Output_TextFile.cpp index f71c3917a..c54771afb 100644 --- a/src/Particle/Par_Output_TextFile.cpp +++ b/src/Particle/Par_Output_TextFile.cpp @@ -38,7 +38,7 @@ void Par_Output_TextFile( const char *FileName ) fprintf( File, " %*s", (v==0)?StrLen_Flt-1:StrLen_Flt, ParAttFltLabel[v] ); for (int v=0; vPar->Mass[p] < 0.0 ) continue; for (int v=0; vPar->AttributeFlt[v][p] ); -# ifdef INT8_PAR - for (int v=0; vPar->AttributeInt[v][p] ); -# else - for (int v=0; vPar->AttributeInt[v][p] ); -# endif + for (int v=0; vPar->AttributeInt[v][p] ); fprintf( File, "\n" ); } From c4de6bcc6dc11fc653603a7066967fd041e77eaa Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 16 Jan 2025 11:00:06 +0000 Subject: [PATCH 9/9] [Workflow] Update all parameters wiki page --- .../Runtime-Parameters-related/Runtime-Parameters:-All.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md index e9008e18f..a80bc7533 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md @@ -300,8 +300,8 @@ For variables with `Default/Min/Max` labeled as `Depend`, click the parameter na | [[ OPT__OUTPUT_PRES \| Runtime-Parameters:-Outputs#OPT__OUTPUT_PRES ]] | 0 | None | None | output gas pressure [0] ##HYDRO ONLY## | | [[ OPT__OUTPUT_RESTART \| Runtime-Parameters:-Outputs#OPT__OUTPUT_RESTART ]] | 0 | None | None | output data immediately after restart [0] | | [[ OPT__OUTPUT_TEMP \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEMP ]] | OutTempDefault | None | None | output gas temperature [0 (HD) or 1 (SRHD)] ##HYDRO ONLY## | -| [[ OPT__OUTPUT_TEXT_FORMAT_FLT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_FORMAT_FLT ]] | "%24.16e" | None | None | string format of output text files [%24.16e] | -| [[ OPT__OUTPUT_TEXT_LENGTH_INT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_LENGTH_INT ]] | 12 | 0 | None | string length of integer output text files [12] | +| [[ OPT__OUTPUT_TEXT_FORMAT_FLT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_FORMAT_FLT ]] | "%24.16e" | None | None | string format of floating-point variables in output text files [%24.16e] | +| [[ OPT__OUTPUT_TEXT_LENGTH_INT \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TEXT_LENGTH_INT ]] | 12 | 0 | None | string length of integer variables in output text files [12] | | [[ OPT__OUTPUT_TOTAL \| Runtime-Parameters:-Outputs#OPT__OUTPUT_TOTAL ]] | 1 | 0 | 2 | output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] | | [[ OPT__OUTPUT_USER \| Runtime-Parameters:-Outputs#OPT__OUTPUT_USER ]] | 0 | None | None | output the user-specified data -> edit "Output_User.cpp" [0] | | [[ OPT__OUTPUT_USER_FIELD \| Runtime-Parameters:-Outputs#OPT__OUTPUT_USER_FIELD ]] | 0 | None | None | output user-defined derived fields [0] -> edit "Flu_DerivedField_User.cpp" |