diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md index af754c96b..a80bc7533 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md @@ -300,7 +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_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" | diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-Outputs.md index 618fd65cf..41fb0f5a4 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_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),   @@ -75,6 +76,12 @@ This will affect files generated by, for example, [OPT__OUTPUT_BASEPS](#OPT__OUTPUT_BASEPS). * **Restriction:** + +* #### `OPT__OUTPUT_TEXT_LENGTH_INT`   (≥0)   [12] + * **Description:** +String length of integer data in output text files. + * **Restriction:** + * #### `OPT__OUTPUT_USER`   (0=off, 1=on)   [0] * **Description:** 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 5f245d1b6..344f5a4f3 100644 --- a/example/test_problem/Template/Input__Parameter +++ b/example/test_problem/Template/Input__Parameter @@ -379,7 +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_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## diff --git a/include/Global.h b/include/Global.h index bc08cdaa9..924857869 100644 --- a/include/Global.h +++ b/include/Global.h @@ -81,6 +81,7 @@ extern bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_FLA 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 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 16ea740ae..aa326b00b 100644 --- a/include/HDF5_Typedef.h +++ b/include/HDF5_Typedef.h @@ -831,6 +831,7 @@ struct InputPara_t int Opt__Output_Step; double Opt__Output_Dt; char *Opt__Output_Text_Format_Flt; + int Opt__Output_Text_Length_Int; double Output_PartX; double Output_PartY; double Output_PartZ; diff --git a/src/Auxiliary/Aux_TakeNote.cpp b/src/Auxiliary/Aux_TakeNote.cpp index 3f2aaa9f3..b21bdd335 100644 --- a/src/Auxiliary/Aux_TakeNote.cpp +++ b/src/Auxiliary/Aux_TakeNote.cpp @@ -1582,6 +1582,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_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_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 ); diff --git a/src/Init/Init_Load_Parameter.cpp b/src/Init/Init_Load_Parameter.cpp index 902f51edf..d969b8e05 100644 --- a/src/Init/Init_Load_Parameter.cpp +++ b/src/Init/Init_Load_Parameter.cpp @@ -503,6 +503,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_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 @@ -517,7 +518,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/Main/Main.cpp b/src/Main/Main.cpp index a471b2e18..ec9e51f1b 100644 --- a/src/Main/Main.cpp +++ b/src/Main/Main.cpp @@ -73,6 +73,7 @@ bool OPT__OPTIMIZE_AGGRESSIVE, OPT__INIT_GRID_WITH_OMP, OPT__NO_ 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]; +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 85fcc8f39..8b0f6a9cb 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 = 2500) +// 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 // @@ -263,6 +263,7 @@ Procedure for outputting new variables: // 2481 : 2024/12/11 --> output OPT__FLAG_ANGULAR, FlagTable_Angular, FLAG_ANGULAR_CEN_X, FLAG_ANGULAR_CEN_Y, FLAG_ANGULAR_CEN_Z // OPT__FLAG_RADIAL, FlagTable_Radial, FLAG_RADIAL_CEN_X, FLAG_RADIAL_CEN_Y, FLAG_RADIAL_CEN_Z // 2500 : 2024/07/01 --> output particle integer attributes +// 2501 : 2025/01/15 --> output OPT__OUTPUT_TEXT_LENGTH_INT //------------------------------------------------------------------------------------------------------- void Output_DumpData_Total_HDF5( const char *FileName ) { @@ -1598,7 +1599,7 @@ void FillIn_KeyInfo( KeyInfo_t &KeyInfo, const int NFieldStored ) const time_t CalTime = time( NULL ); // calendar time - KeyInfo.FormatVersion = 2500; + KeyInfo.FormatVersion = 2501; KeyInfo.Model = MODEL; KeyInfo.NLevel = NLEVEL; KeyInfo.NCompFluid = NCOMP_FLUID; @@ -2767,6 +2768,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_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; @@ -3808,6 +3810,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_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 ); 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" ); }