Add unit attributes and fix units
This commit is contained in:
+89
-6
@@ -31,6 +31,7 @@ int main(int argc,char *argv[]){
|
||||
|
||||
double data[nCol][10000];
|
||||
string headers[nCol];
|
||||
string units[nCol];
|
||||
|
||||
string fnStr("HBUNCH.OUT");
|
||||
|
||||
@@ -75,15 +76,97 @@ int main(int argc,char *argv[]){
|
||||
}
|
||||
|
||||
H5PartWriteFileAttribString(file,"File Description", "This file contains HOMDYN HBUNCH.OUT data");
|
||||
|
||||
H5PartWriteFileAttribString(file,"tUnit","s");
|
||||
H5PartWriteFileAttribString(file,"xUnit","m");
|
||||
H5PartWriteFileAttribString(file,"yUnit","m");
|
||||
H5PartWriteFileAttribString(file,"zUnit","m");
|
||||
H5PartWriteFileAttribString(file,"pxUnit","#beta#gamma");
|
||||
H5PartWriteFileAttribString(file,"pyUnit","#beta#gamma");
|
||||
H5PartWriteFileAttribString(file,"pzUnit","#beta#gamma");
|
||||
H5PartWriteFileAttribString(file,"idUnit","1");
|
||||
H5PartWriteFileAttribString(file,"SPOSUnit","m");
|
||||
H5PartWriteFileAttribString(file,"TIMEUnit","s");
|
||||
H5PartWriteFileAttribString(file,"#gammaUnit","1");
|
||||
H5PartWriteFileAttribString(file,"ENERGYUnit","MeV");
|
||||
H5PartWriteFileAttribString(file,"#varepsilonUnit","m rad");
|
||||
H5PartWriteFileAttribString(file,"#varepsilonrUnit","m rad");
|
||||
|
||||
H5PartWriteFileAttribString(file,"#varepsilonr-geomUnit","m rad");
|
||||
H5PartWriteFileAttribString(file,"RMSXUnit","m");
|
||||
H5PartWriteFileAttribString(file,"RMSRUnit","m");
|
||||
H5PartWriteFileAttribString(file,"RMSPUnit","#beta#gamma");
|
||||
|
||||
H5PartWriteFileAttribString(file,"maxdEUnit","MeV");
|
||||
H5PartWriteFileAttribString(file,"max#phiUnit","deg");
|
||||
|
||||
H5PartWriteFileAttribString(file,"phizUnit","deg");
|
||||
H5PartWriteFileAttribString(file,"enezUnit","keV");
|
||||
|
||||
for (int c=0;c<nCol;c++)
|
||||
int rc = H5PartWriteFileAttribString(file,(headers[c]+string("Unit")).c_str(), " "); ;
|
||||
/*
|
||||
1 Z_[m]
|
||||
2 sigma_r_[mm]
|
||||
3 sigma_z_[mm]
|
||||
4 I_[A]
|
||||
5 sigma_x_[mm]
|
||||
6 enx_[um]
|
||||
7 sigma_y_[mm]
|
||||
8 eny_[um]
|
||||
9 T_[MeV]
|
||||
10 dg/g_[%]
|
||||
11 DE_[MeV]
|
||||
12 elz_[KeVmm]
|
||||
13 Ez_[MV/m]
|
||||
14 Bz_[T] Bx_[G] By_[G]
|
||||
15 Qgrad_[T/m]
|
||||
16 ByWig
|
||||
17 BHOR_[T]
|
||||
18 Time_[nsec]
|
||||
19 beta
|
||||
20 R/gL
|
||||
21 Lplas_[m]
|
||||
22 Zeq_[m]
|
||||
23 EWsteady
|
||||
*/
|
||||
|
||||
for (int t=0;t<nLines;t++) {
|
||||
H5PartSetStep(file,t); /* must set the current timestep in file */
|
||||
for (int c=0;c<nCol;c++) {
|
||||
int rc = H5PartWriteStepAttrib(file,headers[c].c_str(), H5T_NATIVE_DOUBLE,&data[c][t],1);
|
||||
}
|
||||
H5PartSetStep(file,t); /* must set the current timestep in file */
|
||||
|
||||
double d3[3];
|
||||
double dummy = 0.0;
|
||||
int rc;
|
||||
|
||||
rc = H5PartWriteStepAttrib(file,"SPOS", H5T_NATIVE_DOUBLE,&data[0][t],1);
|
||||
|
||||
dummy = data[1][t]/1000.0;
|
||||
rc = H5PartWriteStepAttrib(file,"RMSR", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
rc = H5PartWriteStepAttrib(file,"TIME", H5T_NATIVE_DOUBLE,&data[17][t],1);
|
||||
rc = H5PartWriteStepAttrib(file,"ENERGY", H5T_NATIVE_DOUBLE,&data[8][t],1);
|
||||
|
||||
d3[0] = data[4][t]/1000.0;
|
||||
d3[1] = data[6][t]/1000.0;
|
||||
d3[2] = 0.0;
|
||||
rc = H5PartWriteStepAttrib(file,"RMSX", H5T_NATIVE_DOUBLE,&d3,3);
|
||||
|
||||
d3[0] = data[5][t]/1000000.0;
|
||||
d3[1] = data[7][t]/1000000.0;
|
||||
d3[2] = 0.0;
|
||||
rc = H5PartWriteStepAttrib(file,"#varepsilon", H5T_NATIVE_DOUBLE,&d3,3);
|
||||
|
||||
|
||||
d3[0] = 0.0;
|
||||
d3[1] = 0.0;
|
||||
d3[2] = 0.0;
|
||||
|
||||
rc = H5PartWriteStepAttrib(file,"#gamma", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
rc = H5PartWriteStepAttrib(file,"#varepsilonr", H5T_NATIVE_DOUBLE,&d3,3);
|
||||
rc = H5PartWriteStepAttrib(file,"#varepsilonr-geom", H5T_NATIVE_DOUBLE,&d3,3);
|
||||
rc = H5PartWriteStepAttrib(file,"RMSP", H5T_NATIVE_DOUBLE,&d3,3);
|
||||
|
||||
rc = H5PartWriteStepAttrib(file,"maxdE", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
rc = H5PartWriteStepAttrib(file,"max#phi", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
rc = H5PartWriteStepAttrib(file,"phiz", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
rc = H5PartWriteStepAttrib(file,"enez", H5T_NATIVE_DOUBLE,&dummy,1);
|
||||
}
|
||||
H5PartCloseFile(file);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user