示例#1
0
文件: block.hpp 项目: EBRUDU1/triqs
 template <bool IsView> static void read(h5::group gr, gf_impl<block_index, Target, Opt, IsView, false> &g) {
  // does not work : need to read the block name and remake the mesh...
  g._mesh = gf_mesh<block_index, Opt>(gr.get_all_subgroup_names());
  g._data.resize(g._mesh.size());
  // if (g._data.size() != g._mesh.size()) TRIQS_RUNTIME_ERROR << "h5 read block gf : number of block mismatch";
  for (size_t i = 0; i < g.mesh().size(); ++i) h5_read(gr, g.mesh().domain().names()[i], g._data[i]);
  // h5_read(gr,"symmetry",g._symmetry);
 }
示例#2
0
 template <bool IsView> static void read(h5::group gr, gf_impl<block_index, Target, nothing, void, IsView, false> &g) {
  auto block_names = h5::h5_read<std::vector<std::string>>  (gr, "block_names");
  g._mesh = gf_mesh<block_index>(block_names);
  //auto check_names = gr.get_all_subgroup_names();
  // sort both and check ?
  g._data.resize(g._mesh.size());
  for (size_t i = 0; i < g.mesh().size(); ++i) h5_read(gr, g.mesh().domain().names()[i], g._data[i]);
 }
示例#3
0
 gf_view<Variable, Target, tail, Evaluator, C> make_gf_view_from_g_and_tail(gf_impl<Variable, Target, no_tail, Evaluator, V, C> const &g,
                                                                 tail_view t) {
  details::_equal_or_throw(t.shape(), get_target_shape(g));
  return {g.mesh(), g.data(), t, g.symmetry(), g.indices(), g.name};
 }
示例#4
0
 gf_view<Variable, Target, no_tail, Evaluator, C> make_gf_view_without_tail(gf_impl<Variable, Target, S, Evaluator, V, C> const &g) {
  return {g.mesh(), g.data(), {}, g.symmetry(), g.indices(), g.name};
 }
示例#5
0
 gf<imtime, Target, Opt> make_gf_from_inverse_fourier(gf_impl<imfreq, Target, Opt, V, C> const& gw, mesh_kind mk = full_bins) {
  auto gt = gf<imtime, Target, Opt>{make_mesh_fourier_compatible(gw.mesh(), mk), get_target_shape(gw)};
  gt() = inverse_fourier(gw);
  return gt;
 }
示例#6
0
 gf<imfreq, Target, Opt> make_gf_from_fourier(gf_impl<imtime, Target, Opt, V, C> const& gt) {
  auto gw = gf<imfreq, Target, Opt>{make_mesh_fourier_compatible(gt.mesh()), get_target_shape(gt)};
  gw() = fourier(gt);
  return gw;
 }
示例#7
0
 gf_view<retime, Target> make_gf_from_inverse_fourier(gf_impl<refreq, Target, Singularity, Evaluator, V, C> const& gw) {
  auto gt = gf<retime, Target>{make_mesh_fourier_compatible(gw.mesh()), get_target_shape(gw)};
  gt() = inverse_fourier(gw);
  return gt;
 }
示例#8
0
 gf_view<refreq, Target> make_gf_from_fourier(gf_impl<retime, Target, Singularity, Evaluator, V, C> const& gt) {
  auto gw = gf<refreq, Target>{make_mesh_fourier_compatible(gt.mesh()), get_target_shape(gt)};
  gw() = fourier(gt);
  return gw;
 }