63 mytype_.insertMember(
"r", HOFFSET(
ctype, real), PredType::NATIVE_DOUBLE);
64 mytype_.insertMember(
"i", HOFFSET(
ctype, imag), PredType::NATIVE_DOUBLE);
67 DataSpace s1(RANK1,q1);
68 aversion=file_.createAttribute(
"file_version",PredType::NATIVE_INT,s1);
69 aversion.write(PredType::NATIVE_INT,&version);
76 template<
class MultiIndex>
89 template<
class MultiIndex>
93 set_coeff_dim(packet);
96 set_group_structure(dt);
102 set_file_dataspace();
111 select_elem_hyperslabs();
119 wrlist[
"packet"]=flag;
127 wrlist[
"energy"]=flag;
143 timestepsize_packet=timestep;
151 timestepsize_norms=timestep;
159 timestepsize_epot=timestep;
160 timestepsize_ekin=timestep;
168 timestepsize_epot=timestep;
176 timestepsize_ekin=timestep;
186 constexpr
int dim = D;
188 hsize_t chunk_dims6[]={1};
189 plist_time.setChunk(RANK1,chunk_dims6);
190 plist_time.setFillValue(PredType::NATIVE_INT,&iref);
194 hsize_t chunk_dims1[]={1,dim,1};
195 plist_qp.setChunk(RANK3,chunk_dims1);
198 hsize_t chunk_dims2[]={1,dim,dim};
199 plist_QP.setChunk(RANK3,chunk_dims2);
202 hsize_t chunk_dims3[]={1,1,1};
203 plist_S.setChunk(RANK3,chunk_dims3);
206 hsize_t chunk_dims5[2];
208 chunk_dims5[1]=csize;
209 plist_c.setChunk(RANK2,chunk_dims5);
214 hsize_t chunk_dims4[]={1,1};
215 plist_energy.setChunk(RANK2,chunk_dims4);
216 plist_energy.setFillValue(PredType::NATIVE_DOUBLE,&dref);
221 hsize_t chunk_dims6[]={1,1};
222 plist_norms.setChunk(RANK2,chunk_dims6);
223 plist_norms.setFillValue(PredType::NATIVE_DOUBLE,&dref);
237 DataSpace t6(RANK1,timeelem);
240 constexpr
int dim = D;
246 DataSpace t1(RANK3,qpelem);
251 DataSpace t2(RANK3,QPelem);
256 DataSpace t3(RANK3,Selem);
261 DataSpace t5(RANK2,celem);
268 DataSpace t4(RANK2,energyelem);
275 DataSpace t6(RANK2,normelem);
288 H5std_string a1=datablock_string;
289 gblock = std::make_shared<Group>(file_.createGroup(a1));
291 DataSpace s1(RANK1,q1);
292 apacket=gblock->createAttribute(
"packet",PredType::NATIVE_INT,s1);
293 aenergy=gblock->createAttribute(
"energy",PredType::NATIVE_INT,s1);
294 anorm=gblock->createAttribute(
"norm",PredType::NATIVE_INT,s1);
295 adt=gblock->createAttribute(
"dt",PredType::NATIVE_DOUBLE,s1);
296 adt.write(PredType::NATIVE_DOUBLE,&dt);
301 apacket.write(PredType::NATIVE_INT,&ap);
302 H5std_string a2=(datablock_string+wavepacket_group_string);
303 gpacket = std::make_shared<Group>(file_.createGroup(a2));
304 H5std_string a3=(datablock_string+wavepacket_group_string+packet_group_string);
305 gPi = std::make_shared<Group>(file_.createGroup(a3));
306 H5std_string a4=(datablock_string+wavepacket_group_string+coefficient_group_string);
307 gcoefficient = std::make_shared<Group>(file_.createGroup(a4));
312 apacket.write(PredType::NATIVE_INT,&ap);
314 H5std_string a7=datablock_string+observables_group;
315 gobservables=std::make_shared<Group>(file_.createGroup(a7));
319 aenergy.write(PredType::NATIVE_INT,&ae);
320 H5std_string a5 = (datablock_string+observables_group+energies_group);
321 genergy = std::make_shared<Group>(file_.createGroup(a5));
326 aenergy.write(PredType::NATIVE_INT,&ae);
331 anorm.write(PredType::NATIVE_INT,&an);
332 H5std_string a6 = (datablock_string+observables_group+norms_group);
333 gnorms = std::make_shared<Group>(file_.createGroup(a6));
338 anorm.write(PredType::NATIVE_INT,&an);
349 constexpr
int dim = D;
351 hsize_t count6[]={1};
352 hsize_t start6[]={0};
353 hsize_t stride6[]={1};
354 hsize_t block6[]={1};
355 timelemspace.selectHyperslab(H5S_SELECT_SET, count6, start6, stride6, block6);
360 hsize_t count1[]={1,dim,1};
361 hsize_t start1[]={0,0,0};
362 hsize_t stride1[]={1,1,1};
363 hsize_t block1[]={1,1,1};
365 hsize_t count2[]={1,dim,dim};
366 hsize_t start2[]={0,0,0};
367 hsize_t stride2[]={1,1,1};
368 hsize_t block2[]={1,1,1};
370 hsize_t count3[]={1,1,1};
371 hsize_t start3[]={0,0,0};
372 hsize_t stride3[]={1,1,1};
373 hsize_t block3[]={1,1,1};
376 qpelemspace.selectHyperslab(H5S_SELECT_SET, count1, start1, stride1, block1);
378 QPelemspace.selectHyperslab(H5S_SELECT_SET, count2, start2, stride2, block2);
380 Selemspace.selectHyperslab(H5S_SELECT_SET, count3, start3, stride3, block3);
386 hsize_t start4[]={0,0};
387 hsize_t stride4[]={1,1};
388 hsize_t block4[]={1,1};
389 celemspace.selectHyperslab(H5S_SELECT_SET, count4, start4, stride4, block4);
393 hsize_t count5[]={1,1};
394 hsize_t start5[]={0,0};
395 hsize_t stride5[]={1,1};
396 hsize_t block5[]={1,1};
397 energyelemspace.selectHyperslab(H5S_SELECT_SET, count5, start5, stride5, block5);
401 hsize_t count6[]={1,1};
402 hsize_t start6[]={0,0};
403 hsize_t stride6[]={1,1};
404 hsize_t block6[]={1,1};
405 normelemspace.selectHyperslab(H5S_SELECT_SET, count6, start6, stride6, block6);
418 constexpr
int dim = D;
422 hsize_t dim1[]={1,dim,1};
423 DataSpace d1(RANK3,dim1,maxdims3);
427 hsize_t dim2[]={1,dim,dim};
428 DataSpace d2(RANK3,dim2,maxdims3);
432 hsize_t dim3[]={1,1,1};
433 DataSpace d3(RANK3,dim3,maxdims3);
441 DataSpace d5(RANK2,dim5,maxdims2);
445 DataSpace dt1(RANK1,dimt1,maxdims1);
446 timespace_packet=dt1;
450 hsize_t dim4[]={1,1};
451 DataSpace d4(RANK2,dim4,maxdims2);
456 DataSpace dt2(RANK1,dimt2,maxdims1);
462 hsize_t dim5[]={1,1};
463 DataSpace d5(RANK2,dim5,maxdims2);
467 DataSpace dt3(RANK1,dimt3,maxdims1);
481 H5std_string pack=datablock_string+wavepacket_group_string+packet_group_string;
482 qs=std::make_shared<DataSet>(file_.createDataSet(pack+
"/q",mytype_,qspace,plist_qp));
483 ps=std::make_shared<DataSet>(file_.createDataSet(pack+
"/p",mytype_,pspace,plist_qp));
484 Qs=std::make_shared<DataSet>(file_.createDataSet(pack+
"/Q",mytype_,Qspace,plist_QP));
485 Ps=std::make_shared<DataSet>(file_.createDataSet(pack+
"/P",mytype_,Pspace,plist_QP));
486 Ss=std::make_shared<DataSet>(file_.createDataSet(pack+
"/S",mytype_,Sspace,plist_S));
487 adQs=std::make_shared<DataSet>(file_.createDataSet(pack+
"/adQ",mytype_,adQspace,plist_S));
488 H5std_string tpack=datablock_string+wavepacket_group_string;
489 times_packet=std::make_shared<DataSet>(file_.createDataSet(tpack+
"/timegrid",PredType::NATIVE_INT,timespace_packet,plist_time));
491 H5std_string cff=datablock_string+wavepacket_group_string+coefficient_group_string;
492 coeffs=std::make_shared<DataSet>(file_.createDataSet(cff+
"/c_0",mytype_,cspace,plist_c));
496 H5std_string ename=datablock_string+observables_group+energies_group;
497 H5std_string enameepot=ename+
"/potential";
498 energys_epot=std::make_shared<DataSet>(file_.createDataSet(enameepot,PredType::NATIVE_DOUBLE,energyspace_epot,plist_energy));
499 H5std_string enameekin=ename+
"/kinetic";
500 energys_ekin=std::make_shared<DataSet>(file_.createDataSet(enameekin,PredType::NATIVE_DOUBLE,energyspace_ekin,plist_energy));
501 H5std_string engtime1=ename+
"/timegrid_pot";
502 times_epot=std::make_shared<DataSet>(file_.createDataSet(engtime1,PredType::NATIVE_INT,timespace_epot,plist_time));
503 H5std_string engtime2=ename+
"/timegrid_kin";
504 times_ekin=std::make_shared<DataSet>(file_.createDataSet(engtime2,PredType::NATIVE_INT,timespace_ekin,plist_time));
508 H5std_string tmm=datablock_string+observables_group+norms_group+
"/norm";
509 normss=std::make_shared<DataSet>(file_.createDataSet(tmm,PredType::NATIVE_DOUBLE,normspace,plist_norms));
510 H5std_string tmt=datablock_string+observables_group+norms_group+
"/timegrid";
511 times_norms=std::make_shared<DataSet>(file_.createDataSet(tmt,PredType::NATIVE_INT,timespace_norms,plist_time));
523 exnorms[0]=index_norm;
525 ex_timegrid_norms[0]=index_norm;
529 std::cout<<
"ERROR: setup_extension_norms called with bool=false\n";
541 exepot[0]=index_epot;
543 ex_timegrid_epot[0]=index_epot;
547 std::cout<<
"ERROR: setup_extension_epot called with bool=false\n";
559 exekin[0]=index_ekin;
561 ex_timegrid_ekin[0]=index_ekin;
565 std::cout<<
"ERROR: setup_extension_ekin called with bool=false\n";
578 exqp[0]=index_packet;
581 exQP[0]=index_packet;
590 ex_timegrid_packet[0]=index_packet;
594 std::cout<<
"ERROR: setup_extension_packet called with bool=false\n";
617 times_packet->extend(ex_timegrid_packet);
621 std::cout<<
"ERROR: extend_dataset_packet called with bool=false\n";
633 normss->extend(exnorms);
634 times_norms->extend(ex_timegrid_norms);
638 std::cout<<
"ERROR: extend_dataset_norms called with bool=false\n";
650 energys_epot->extend(exepot);
651 times_epot->extend(ex_timegrid_epot);
655 std::cout<<
"ERROR: extend_dataset_epot called with bool=false\n";
667 energys_ekin->extend(exekin);
668 times_ekin->extend(ex_timegrid_ekin);
672 std::cout<<
"ERROR: extend_dataset_ekin called with bool=false\n";
684 energyspace_ekin=energys_ekin->getSpace();
685 timespace_ekin=times_ekin->getSpace();
689 std::cout<<
"ERROR: update_filespace_ekin called with bool=false\n";
701 energyspace_epot=energys_epot->getSpace();
702 timespace_epot=times_epot->getSpace();
706 std::cout<<
"ERROR: update_filespace_epot called with bool=false\n";
718 normspace=normss->getSpace();
719 timespace_norms=times_norms->getSpace();
723 std::cout<<
"ERROR: update_filespace_norms called with bool=false\n";
736 qspace=qs->getSpace();
737 pspace=ps->getSpace();
739 Qspace=Qs->getSpace();
740 Pspace=Ps->getSpace();
742 Sspace=Ss->getSpace();
743 adQspace=adQs->getSpace();
744 cspace=coeffs->getSpace();
745 timespace_packet=times_packet->getSpace();
749 std::cout<<
"ERROR: update_filespace_packet called with bool=false\n";
759 void transform(std::vector<ctype>& newdata,Eigen::Matrix<complex_t,D,D> mat)
762 newdata.resize(dim*dim);
763 std::complex<double>* tmp(mat.data());
764 for(
int p=0;
p<dim*dim;++
p)
766 newdata[
p].real=tmp[
p].real();
767 newdata[
p].imag=tmp[
p].imag();
777 void transform(std::vector<ctype>& newdata,Eigen::Matrix<real_t,D,1> mat)
781 double* tmp(mat.data());
782 for(
int p=0;
p<dim;++
p)
784 newdata[
p].real=tmp[
p];
798 newarg.
real=arg.real();
799 newarg.
imag=arg.imag();
800 newdata.push_back(newarg);
809 void transform(std::vector<ctype>& newdata,Eigen::Matrix<complex_t, Eigen::Dynamic, 1> cmat)
811 newdata.resize(csize);
812 for(
int q=0;q<csize;++q)
814 newdata[q].real=cmat[q].real();
815 newdata[q].imag=cmat[q].imag();
830 newdata.push_back(newarg);
839 template<
class MultiIndex>
845 if(tindex_packet%timestepsize_packet==0)
847 select_file_writespace_packet();
849 std::vector<ctype> myc;
851 coeffs->write(myc.data(),mytype_,celemspace,cspace);
853 std::vector<ctype> myQ;
854 transform(myQ,params.Q());
855 Qs->write(myQ.data(),mytype_,QPelemspace,Qspace);
857 std::vector<ctype> myP;
858 transform(myP,params.P());
859 Ps->write(myP.data(),mytype_,QPelemspace,Pspace);
861 std::vector<ctype> myq;
862 transform(myq,params.q());
863 qs->write(myq.data(),mytype_,qpelemspace,qspace);
865 std::vector<ctype> myp;
866 transform(myp,params.p());
867 ps->write(myp.data(),mytype_,qpelemspace,pspace);
869 std::vector<ctype> myS;
870 transform(myS,params.S());
871 Ss->write(myS.data(),mytype_,Selemspace,Sspace);
873 std::vector<ctype> myadQ;
874 transform(myadQ,params.sdQ());
875 adQs->write(myadQ.data(),mytype_,Selemspace,adQspace);
877 times_packet->write(&tindex_packet,PredType::NATIVE_INT,timelemspace,timespace_packet);
885 std::cout<<
"ERROR: store_packet called with bool=false\n";
897 if(tindex_ekin%timestepsize_ekin==0)
899 select_file_writespace_ekin();
900 energys_ekin->write(&ekin_,PredType::NATIVE_DOUBLE,energyelemspace,energyspace_ekin);
901 times_ekin->write(&tindex_ekin,PredType::NATIVE_INT,timelemspace,timespace_ekin);
905 if(tindex_epot%timestepsize_epot==0)
907 select_file_writespace_epot();
908 energys_epot->write(&epot_,PredType::NATIVE_DOUBLE,energyelemspace,energyspace_epot);
909 times_epot->write(&tindex_epot,PredType::NATIVE_INT,timelemspace,timespace_epot);
916 std::cout<<
"ERROR: store_energies called with bool=false\n";
924 template<
class MultiIndex>
929 if(tindex_norm%timestepsize_norms==0)
931 double mynorm = waveblocks::observables::norm<D,MultiIndex>(packet);
932 select_file_writespace_norm();
933 normss->write(&mynorm,PredType::NATIVE_DOUBLE,normelemspace,normspace);
934 times_norms->write(&tindex_norm,PredType::NATIVE_INT,timelemspace,timespace_norms);
941 std::cout<<
"ERROR: store_norms called with bool=false\n";
955 hsize_t count1[]={1,dim,1};
957 start1[0]=index_packet-1;
960 hsize_t stride1[]={1,1,1};
961 hsize_t block1[]={1,1,1};
963 hsize_t count2[]={1,dim,dim};
965 start2[0]=index_packet-1;
968 hsize_t stride2[]={1,1,1};
969 hsize_t block2[]={1,1,1};
971 hsize_t count3[]={1,1,1};
973 start3[0]=index_packet-1;
976 hsize_t stride3[]={1,1,1};
977 hsize_t block3[]={1,1,1};
979 qspace.selectHyperslab(H5S_SELECT_SET, count1, start1, stride1, block1);
980 pspace.selectHyperslab(H5S_SELECT_SET, count1, start1, stride1, block1);
982 Qspace.selectHyperslab(H5S_SELECT_SET, count2, start2, stride2, block2);
983 Pspace.selectHyperslab(H5S_SELECT_SET, count2, start2, stride2, block2);
985 Sspace.selectHyperslab(H5S_SELECT_SET, count3, start3, stride3, block3);
986 adQspace.selectHyperslab(H5S_SELECT_SET, count3, start3, stride3, block3);
993 start4[0]=index_packet-1;
995 hsize_t stride4[]={1,1};
996 hsize_t block4[]={1,1};
997 cspace.selectHyperslab(H5S_SELECT_SET, count4, start4, stride4, block4);
999 hsize_t countt1[]={1};
1001 startt1[0]=index_packet-1;
1002 hsize_t stridet1[]={1};
1003 hsize_t blockt1[]={1};
1004 timespace_packet.selectHyperslab(H5S_SELECT_SET, countt1, startt1, stridet1, blockt1);
1008 std::cout<<
"ERROR: select_file_writespace_packet called with bool=false\n";
1020 setup_extension_packet();
1021 extend_dataset_packet();
1022 update_filespace_packet();
1031 if(wrlist[
"energy"])
1033 hsize_t count5[]={1,1};
1035 start5[0]=index_ekin-1;
1037 hsize_t stride5[]={1,1};
1038 hsize_t block5[]={1,1};
1039 energyspace_ekin.selectHyperslab(H5S_SELECT_SET, count5, start5, stride5, block5);
1041 hsize_t countt2[]={1};
1043 startt2[0]=index_ekin-1;
1044 hsize_t stridet2[]={1};
1045 hsize_t blockt2[]={1};
1046 timespace_ekin.selectHyperslab(H5S_SELECT_SET, countt2, startt2, stridet2, blockt2);
1050 std::cout<<
"ERROR: select_file_writespace_ekin called with bool=false\n";
1062 setup_extension_ekin();
1063 extend_dataset_ekin();
1064 update_filespace_ekin();
1073 if(wrlist[
"energy"])
1075 hsize_t count5[]={1,1};
1077 start5[0]=index_epot-1;
1079 hsize_t stride5[]={1,1};
1080 hsize_t block5[]={1,1};
1081 energyspace_epot.selectHyperslab(H5S_SELECT_SET, count5, start5, stride5, block5);
1083 hsize_t countt3[]={1};
1085 startt3[0]=index_epot-1;
1086 hsize_t stridet3[]={1};
1087 hsize_t blockt3[]={1};
1088 timespace_epot.selectHyperslab(H5S_SELECT_SET, countt3, startt3, stridet3, blockt3);
1092 std::cout<<
"ERROR: select_file_writespace_epot called with bool=false\n";
1104 setup_extension_epot();
1105 extend_dataset_epot();
1106 update_filespace_epot();
1117 hsize_t count6[]={1,1};
1119 start6[0]=index_norm-1;
1121 hsize_t stride6[]={1,1};
1122 hsize_t block6[]={1,1};
1123 normspace.selectHyperslab(H5S_SELECT_SET, count6, start6, stride6, block6);
1125 hsize_t countt4[]={1};
1127 startt4[0]=index_norm-1;
1128 hsize_t stridet4[]={1};
1129 hsize_t blockt4[]={1};
1130 timespace_norms.selectHyperslab(H5S_SELECT_SET, countt4, startt4, stridet4, blockt4);
1134 std::cout<<
"ERROR: select_file_writespace_norms called with bool=false\n";
1146 setup_extension_norm();
1147 extend_dataset_norm();
1148 update_filespace_norm();
1160 setup_extension_packet();
1161 extend_dataset_packet();
1173 setup_extension_ekin();
1174 extend_dataset_ekin();
1186 setup_extension_epot();
1187 extend_dataset_epot();
1199 setup_extension_norm();
1200 extend_dataset_norm();
1209 if(wrlist[
"packet"])
1217 if(wrlist[
"energy"])
1228 std::map<std::string,bool> wrlist={{
"packet",1},{
"energy",0},{
"norm",0}};
1237 H5std_string packet_group_string=
"/Pi";
1238 H5std_string datablock_string=
"/datablock_0";
1239 H5std_string coefficient_group_string=
"/coefficients";
1240 H5std_string wavepacket_group_string=
"/wavepacket";
1241 H5std_string energies_group=
"/energies";
1242 H5std_string norms_group=
"/norm";
1243 H5std_string observables_group=
"/observables";
1254 const hsize_t maxdims1[1]={H5S_UNLIMITED};
1255 const hsize_t maxdims2[2]={H5S_UNLIMITED,H5S_UNLIMITED};
1256 const hsize_t maxdims3[3]={H5S_UNLIMITED,H5S_UNLIMITED,H5S_UNLIMITED};
1264 hsize_t ex_timegrid_norms[1];
1265 hsize_t ex_timegrid_epot[1];
1266 hsize_t ex_timegrid_ekin[1];
1267 hsize_t ex_timegrid_packet[1];
1274 hsize_t energyelem[2];
1276 hsize_t timeelem[1];
1280 hsize_t normelem[2];
1286 int timestepsize_norms=1;
1287 int timestepsize_ekin=1;
1288 int timestepsize_epot=1;
1289 int timestepsize_packet=1;
1293 int tindex_packet=0;
1303 std::shared_ptr<DataSet>
qs;
1305 std::shared_ptr<DataSet>
ps;
1307 std::shared_ptr<DataSet>
Qs;
1309 std::shared_ptr<DataSet>
Ps;
1311 std::shared_ptr<DataSet>
Ss;
DataSpace timespace_epot
space for timegrid epot
Definition: hdf5writer.hpp:1320
void cleanup_epot(void)
reverse last dataset extension for epot
Definition: hdf5writer.hpp:1183
The ctype struct for writing complex numbers.
Definition: hdf5writer.hpp:34
void set_write_packet(bool flag)
sets bool value for writing the packet(matrices and coefficients)
Definition: hdf5writer.hpp:117
DataSpace timelemspace
space of timegrid element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1277
std::shared_ptr< Group > gPi
group for matrices in packet
Definition: hdf5writer.hpp:1297
void setup_extension_epot(void)
setup extension for epot
Definition: hdf5writer.hpp:537
void allocate_datasets(void)
allocate space for datasets
Definition: hdf5writer.hpp:477
Definition: coefficients_file_parser.cpp:10
void extend_dataset_epot(void)
extend dataset for next timestep for epot
Definition: hdf5writer.hpp:646
std::shared_ptr< DataSet > Ss
dataset for packet.S() in file
Definition: hdf5writer.hpp:1311
DataSpace energyelemspace
space of energy element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1275
DataSpace Sspace
space for packet.S() in file
Definition: hdf5writer.hpp:1310
DSetCreatPropList plist_S
PropList for packet.S()
Definition: hdf5writer.hpp:1246
DataSpace pspace
space for packet.p() in file
Definition: hdf5writer.hpp:1304
std::shared_ptr< Group > gcoefficient
group for coefficients in packet
Definition: hdf5writer.hpp:1298
H5std_string filename_
placeholder for filename
Definition: hdf5writer.hpp:1225
DataSpace qpelemspace
space of q,p element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1269
void setup_extension_norm(void)
setup extension for norms
Definition: hdf5writer.hpp:519
function p(by, bw, bv)
Definition: jquery.js:23
void select_elem_hyperslabs(void)
From HDF interface select element hyperslabs.
Definition: hdf5writer.hpp:347
void prestructuring(waveblocks::wavepackets::ScalarHaWp< D, MultiIndex > packet, double dt)
prestructure after knowing bool values and packet
Definition: hdf5writer.hpp:90
DataSpace timespace_ekin
space for timegrid ekin
Definition: hdf5writer.hpp:1318
void set_timestep_epot(int timestep)
set timestep for writing epot
Definition: hdf5writer.hpp:166
void store_packet(const waveblocks::wavepackets::ScalarHaWp< D, MultiIndex > &packetto)
store ScalarHaWp<D,Multiindex> packet
Definition: hdf5writer.hpp:840
void set_timestep_norm(int timestep)
set timestep for writing norms
Definition: hdf5writer.hpp:149
void advance_ekin(void)
advance writing position for ekin and extends set
Definition: hdf5writer.hpp:1059
DataSpace timespace_packet
space for timegrid for packet in file
Definition: hdf5writer.hpp:1316
void set_file_dataspace(void)
set dataspace used in file
Definition: hdf5writer.hpp:416
H5File file_
H5File placeholder.
Definition: hdf5writer.hpp:1227
void store_energies(double epot_, double ekin_)
store energies in chosen timestep
Definition: hdf5writer.hpp:893
void cleanup_norm(void)
reverse last dataset extension for norms
Definition: hdf5writer.hpp:1196
std::shared_ptr< DataSet > energys_ekin
dataset for ekin in file
Definition: hdf5writer.hpp:1325
double imag
Definition: hdf5writer.hpp:36
DataSpace timespace_norms
space for timegrid in file
Definition: hdf5writer.hpp:1322
std::shared_ptr< DataSet > times_packet
dataset for timegrid for packet in file
Definition: hdf5writer.hpp:1317
std::complex< real_t > complex_t
Definition: types.hpp:15
void update_filespace_ekin(void)
update ekin filespace
Definition: hdf5writer.hpp:680
Attribute aenergy
attribute to save bool energy in datablock_0
Definition: hdf5writer.hpp:1230
double real_t
Definition: types.hpp:14
void advance_epot(void)
advance writing position for epot and extends set
Definition: hdf5writer.hpp:1101
DSetCreatPropList plist_QP
PropList for packet.Q() packet.P()
Definition: hdf5writer.hpp:1245
void select_file_writespace_packet(void)
select file writespace for packet
Definition: hdf5writer.hpp:949
std::shared_ptr< Group > gobservables
group for observables
Definition: hdf5writer.hpp:1301
DataSpace QPelemspace
space of Q,P element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1271
void set_group_structure(double dt)
set up group structure in file
Definition: hdf5writer.hpp:286
var ap
Definition: jquery.js:23
void set_timestep_energies(int timestep)
set timestep for writing energies
Definition: hdf5writer.hpp:157
std::shared_ptr< DataSet > times_ekin
dataset for timegrid for ekin in file
Definition: hdf5writer.hpp:1319
std::shared_ptr< DataSet > coeffs
dataset for coefficients in file
Definition: hdf5writer.hpp:1315
void update_filespace_packet(void)
update packet filespace
Definition: hdf5writer.hpp:731
void setup_extension_packet(void)
setup extension for packet
Definition: hdf5writer.hpp:573
std::shared_ptr< DataSet > Qs
dataset for packet.Q() in file
Definition: hdf5writer.hpp:1307
std::shared_ptr< DataSet > qs
dataset for packet.q() in file
Definition: hdf5writer.hpp:1303
hdf5writer(std::string name)
Construction of hdf5 writer class with a name.
Definition: hdf5writer.hpp:60
DSetCreatPropList plist_norms
PropList for norms.
Definition: hdf5writer.hpp:1250
std::shared_ptr< DataSet > times_norms
dataset for timegrid in file
Definition: hdf5writer.hpp:1323
void cleanup_ekin(void)
reverse last dataset extension for ekin
Definition: hdf5writer.hpp:1170
std::shared_ptr< DataSet > energys_epot
dataset for epot in file
Definition: hdf5writer.hpp:1327
void transform(std::vector< ctype > &newdata, Eigen::Matrix< complex_t, Eigen::Dynamic, 1 > cmat)
transform an Eigen::Matrix<complex_t,Eigen::Dynamic,1> to std::vector<ctype>
Definition: hdf5writer.hpp:809
int csize
runtime size coefficients
Definition: hdf5writer.hpp:1294
std::shared_ptr< DataSet > adQs
dataset for packet.sdQ() in file
Definition: hdf5writer.hpp:1313
std::shared_ptr< Group > gnorms
group for norms
Definition: hdf5writer.hpp:1300
void set_timestep_packet(int timestep)
set timestep for writing packet
Definition: hdf5writer.hpp:141
DSetCreatPropList plist_time
PropList for timegrids.
Definition: hdf5writer.hpp:1249
std::shared_ptr< DataSet > times_epot
dataset for timegrid for epot in file
Definition: hdf5writer.hpp:1321
std::shared_ptr< Group > genergy
group for energies
Definition: hdf5writer.hpp:1299
double real
Definition: hdf5writer.hpp:35
DSetCreatPropList plist_qp
PropList for packet.q() packet.p()
Definition: hdf5writer.hpp:1244
DataSpace Pspace
space for packet.P() in file
Definition: hdf5writer.hpp:1308
void select_file_writespace_epot(void)
select file writespace for epot
Definition: hdf5writer.hpp:1071
DataSpace normelemspace
space of norm element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1281
HaWpParamSet< D > & parameters()
Grants writeable access to the Hagedorn parameter set of the wavepacket.
Definition: hawp_commons.hpp:230
void transform(std::vector< ctype > &newdata, real_t arg)
transform real_t to std::vector<ctype>
Definition: hdf5writer.hpp:825
DSetCreatPropList plist_c
PropList for coefficients.
Definition: hdf5writer.hpp:1248
void update_filespace_norm(void)
update norms filespace
Definition: hdf5writer.hpp:714
void update_filespace_epot(void)
update epot filespace
Definition: hdf5writer.hpp:697
void transform(std::vector< ctype > &newdata, complex_t arg)
transform a std::complex variable into std::vector<ctype>
Definition: hdf5writer.hpp:795
void set_write_norm(bool flag)
sets bool value for writing norms
Definition: hdf5writer.hpp:133
void store_norm(const waveblocks::wavepackets::ScalarHaWp< D, MultiIndex > &packet)
store norms in chosen timestep
Definition: hdf5writer.hpp:925
std::shared_ptr< DataSet > normss
dataset for norms in file
Definition: hdf5writer.hpp:1329
void advance_norm(void)
advance writing position for norms and extends set
Definition: hdf5writer.hpp:1143
std::shared_ptr< DataSet > ps
dataset for packet.p() in file
Definition: hdf5writer.hpp:1305
void extend_dataset_packet(void)
extend dataset for next timestep for packet
Definition: hdf5writer.hpp:602
std::shared_ptr< Group > gpacket
group for packet
Definition: hdf5writer.hpp:1296
void set_coeff_dim(waveblocks::wavepackets::ScalarHaWp< D, MultiIndex > packet)
runtime function to evaluate number of coefficients
Definition: hdf5writer.hpp:77
DataSpace normspace
space for norms
Definition: hdf5writer.hpp:1328
DSetCreatPropList plist_energy
PropList for energies.
Definition: hdf5writer.hpp:1247
void set_chunk_dim(void)
Set up chunk dimension for the written variables.
Definition: hdf5writer.hpp:184
void transform(std::vector< ctype > &newdata, Eigen::Matrix< real_t, D, 1 > mat)
transform Eigen::Matrix<real_t,D,1> into std::vector<ctype>
Definition: hdf5writer.hpp:777
DataSpace cspace
space for coefficients in file
Definition: hdf5writer.hpp:1314
Concrete implementation of a scalar Hagedorn wavepacket.
Definition: hawp_commons.hpp:209
void extend_dataset_ekin(void)
extend dataset for next timestep for ekin
Definition: hdf5writer.hpp:663
void select_file_writespace_ekin(void)
select file writespace for ekin
Definition: hdf5writer.hpp:1029
Attribute anorm
attribute to save bool norm in datablock_0
Definition: hdf5writer.hpp:1231
struct waveblocks::io::ctype instanceof
void extend_dataset_norm(void)
extend dataset for next timestep for norms
Definition: hdf5writer.hpp:629
DataSpace energyspace_ekin
space for ekin in file
Definition: hdf5writer.hpp:1324
DataSpace adQspace
space for packet.sdQ() in file
Definition: hdf5writer.hpp:1312
Our HDF5 writer class.
Definition: hdf5writer.hpp:47
void transform(std::vector< ctype > &newdata, Eigen::Matrix< complex_t, D, D > mat)
transform Eigen::Matrix<complex_t,D,D> into std::vector<ctype>
Definition: hdf5writer.hpp:759
DataSpace Qspace
space for packet.Q() in file
Definition: hdf5writer.hpp:1306
void poststructuring(void)
last resize for exact length
Definition: hdf5writer.hpp:1207
var b
Definition: jquery.js:16
void setup_extension_ekin(void)
setup extension for ekin
Definition: hdf5writer.hpp:555
void select_file_writespace_norm(void)
select file writespace for norms
Definition: hdf5writer.hpp:1113
Attribute aversion
attribute to save file version
Definition: hdf5writer.hpp:1233
Definition: adaptors.hpp:146
DataSpace Selemspace
space of S element written from program to file needed by HDF interface
Definition: hdf5writer.hpp:1273
CompType mytype_
declaration of H5:CompType member used for HDF interface to write ctype*
Definition: hdf5writer.hpp:1226
void set_write_energies(bool flag)
sets bool value for writing the energies
Definition: hdf5writer.hpp:125
DataSpace energyspace_epot
space for epot in file
Definition: hdf5writer.hpp:1326
void set_elem_space(void)
Set up elem space for HDF interface.
Definition: hdf5writer.hpp:233
Attribute adt
attribute to save dt in datablock_0
Definition: hdf5writer.hpp:1232
Attribute apacket
attribute to save bool packet in datablock_0
Definition: hdf5writer.hpp:1229
std::shared_ptr< DataSet > Ps
dataset for packet.P() in file
Definition: hdf5writer.hpp:1309
void advance_packet(void)
advance writing position for packet and extends set
Definition: hdf5writer.hpp:1017
std::shared_ptr< Group > gblock
group for datablock
Definition: hdf5writer.hpp:1295
void cleanup_packet(void)
reverse last dataset extension for packet
Definition: hdf5writer.hpp:1157
DataSpace qspace
space for packet.q() in file
Definition: hdf5writer.hpp:1302
void set_timestep_ekin(int timestep)
set timestep for writing ekin
Definition: hdf5writer.hpp:174
DataSpace celemspace
space of coefficient element written from program to file needed by HDF interface ...
Definition: hdf5writer.hpp:1279