Loading include/dca/io/hdf5/hdf5_types.hpp +12 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,18 @@ public: } }; template <> class HDF5_TYPE<std::uint16_t> { public: static hid_t get() { return H5T_NATIVE_UINT16; } static H5::PredType get_PredType() { return H5::PredType::NATIVE_UINT16; } }; template <> class HDF5_TYPE<float> { public: Loading include/dca/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration.hpp +10 −9 Original line number Diff line number Diff line Loading @@ -885,26 +885,27 @@ void CT_AUX_HS_configuration<parameters_type>::write(io::HDF5Writer& file, const auto n = configuration.size(); std::vector<double> times(n); std::vector<std::array<int, 2>> bands(n); std::vector<std::array<int, 2>> e_spins(n); std::vector<std::array<int, 2>> sites(n); std::vector<std::array<std::uint8_t, 2>> bands(n); std::vector<std::array<std::int8_t, 2>> e_spins(n); std::vector<std::array<std::uint16_t, 2>> sites(n); std::vector<std::int8_t> hs_spin(n); auto to_array = [](const std::pair<int, int>& pair) { return std::array<int, 2>{pair.first, pair.second}; auto to_array = [](auto& arr, const std::pair<int, int>& pair) { arr[0] = pair.first; arr[1] = pair.second; }; for (int i = 0; i < configuration.size(); ++i) { times[i] = configuration[i].get_tau(); bands[i] = to_array(configuration[i].get_bands()); e_spins[i] = to_array(configuration[i].get_e_spins()); sites[i] = to_array(configuration[i].get_r_sites()); to_array(bands[i], configuration[i].get_bands()); to_array(e_spins[i], configuration[i].get_e_spins()); to_array(sites[i], configuration[i].get_r_sites()); hs_spin[i] = configuration[i].get_HS_spin(); } file.execute("times", times); file.execute("bands", bands); file.execute("e_spinds", e_spins); file.execute("e_spins", e_spins); file.execute("sites", sites); file.execute("hs_spin", hs_spin); Loading tools/python_scripts/visualize_configuration.py 0 → 100644 +24 −0 Original line number Diff line number Diff line # Author: Giovanni Balduzzi # Usage: python3 visualize_configuration.py <configuration file> <time stamp> import numpy as np import h5py from sys import argv if(len(argv) != 3) : print("Arguments: <file name> <time stamp>") exit(-1) filename = argv[1] stamp = argv[2] file = h5py.File(filename,'r')[stamp] times = file['times'][:] sites = file['sites'][:, 0] spins = file['hs_spin'][:] # remove non-interacting spins times = times[spins != 0] sites = sites[spins != 0] spins = spins[spins != 0] Loading
include/dca/io/hdf5/hdf5_types.hpp +12 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,18 @@ public: } }; template <> class HDF5_TYPE<std::uint16_t> { public: static hid_t get() { return H5T_NATIVE_UINT16; } static H5::PredType get_PredType() { return H5::PredType::NATIVE_UINT16; } }; template <> class HDF5_TYPE<float> { public: Loading
include/dca/phys/dca_step/cluster_solver/ctaux/structs/ct_aux_hs_configuration.hpp +10 −9 Original line number Diff line number Diff line Loading @@ -885,26 +885,27 @@ void CT_AUX_HS_configuration<parameters_type>::write(io::HDF5Writer& file, const auto n = configuration.size(); std::vector<double> times(n); std::vector<std::array<int, 2>> bands(n); std::vector<std::array<int, 2>> e_spins(n); std::vector<std::array<int, 2>> sites(n); std::vector<std::array<std::uint8_t, 2>> bands(n); std::vector<std::array<std::int8_t, 2>> e_spins(n); std::vector<std::array<std::uint16_t, 2>> sites(n); std::vector<std::int8_t> hs_spin(n); auto to_array = [](const std::pair<int, int>& pair) { return std::array<int, 2>{pair.first, pair.second}; auto to_array = [](auto& arr, const std::pair<int, int>& pair) { arr[0] = pair.first; arr[1] = pair.second; }; for (int i = 0; i < configuration.size(); ++i) { times[i] = configuration[i].get_tau(); bands[i] = to_array(configuration[i].get_bands()); e_spins[i] = to_array(configuration[i].get_e_spins()); sites[i] = to_array(configuration[i].get_r_sites()); to_array(bands[i], configuration[i].get_bands()); to_array(e_spins[i], configuration[i].get_e_spins()); to_array(sites[i], configuration[i].get_r_sites()); hs_spin[i] = configuration[i].get_HS_spin(); } file.execute("times", times); file.execute("bands", bands); file.execute("e_spinds", e_spins); file.execute("e_spins", e_spins); file.execute("sites", sites); file.execute("hs_spin", hs_spin); Loading
tools/python_scripts/visualize_configuration.py 0 → 100644 +24 −0 Original line number Diff line number Diff line # Author: Giovanni Balduzzi # Usage: python3 visualize_configuration.py <configuration file> <time stamp> import numpy as np import h5py from sys import argv if(len(argv) != 3) : print("Arguments: <file name> <time stamp>") exit(-1) filename = argv[1] stamp = argv[2] file = h5py.File(filename,'r')[stamp] times = file['times'][:] sites = file['sites'][:, 0] spins = file['hs_spin'][:] # remove non-interacting spins times = times[spins != 0] sites = sites[spins != 0] spins = spins[spins != 0]