Stores greater and lesser components of herm_matrix
\(C(t,t^\prime)\) in Wigner time representation to a given HDF5 group handle. The representation is defined by \( \widetilde{C}^\gtrless}(T,t) = C^\gtrless(T+t/2,T-t/2)\). Every dt
time steps are stored.
1942 typedef std::complex<double> complex;
1946 complex *ggtr =
new complex[(nt_ + 1) * element_size_];
1947 complex *gles =
new complex[(nt_ + 1) * element_size_];
1948 store_int_attribute_to_hid(group_id, std::string(
"nt"), nt_);
1949 store_int_attribute_to_hid(group_id, std::string(
"size1"), size1_);
1950 store_int_attribute_to_hid(group_id, std::string(
"size2"), size2_);
1951 store_int_attribute_to_hid(group_id, std::string(
"element_size"),
1953 hid_t group_id_les = create_group(group_id, std::string(
"les"));
1954 hid_t group_id_gtr = create_group(group_id, std::string(
"gtr"));
1955 hsize_t len_shape = 3, shape[3];
1958 for (
int tav = 0; tav <= nt_; tav += dt) {
1959 int len = (tav <= nt_ - tav ? tav : nt_ - tav);
1960 std::sprintf(name,
"%d", tav);
1963 for (
int trel2 = 0; trel2 <= len; trel2++) {
1964 cdmatrix ggtrtt, glestt;
1965 this->get_les(tav + trel2, tav - trel2, glestt);
1966 this->get_gtr(tav + trel2, tav - trel2, ggtrtt);
1967 for (
int i = 0; i < element_size_; i++) {
1968 gles[trel2 * element_size_ + i] =
1969 glestt(i / size2_, i % size2_);
1970 ggtr[trel2 * element_size_ + i] =
1971 ggtrtt(i / size2_, i % size2_);
1974 store_cplx_array_to_hid(group_id_les, std::string(name), gles, shape,
1976 store_cplx_array_to_hid(group_id_gtr, std::string(name), ggtr, shape,