TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
triqs::mc_tools::measure_set< MCSignType >

#include <triqs/mc_tools/mc_measure_set.hpp>

Detailed Description

template<DoubleOrComplex MCSignType>
class triqs::mc_tools::measure_set< MCSignType >

Set of MC measures.

It combines multiple MC measures.

Since it models the triqs::mc_tools::MCMeasure concept, it can be used just like any other MC measure:

Template Parameters
MCSignTypeType of the sign/weight of a MC configuration (triqs::mc_tools::DoubleOrComplex).

Definition at line 58 of file mc_measure_set.hpp.

Public Types

using measure_itr_t = measure_map_t::iterator
 Iterator type for the measure set.
using measure_map_t = std::map<std::string, measure<MCSignType>>
 Map type used for storing the measures.

Public Member Functions

 measure_set ()=default
 Default constructor.
 measure_set (measure_set &&)=default
 Default move constructor.
 measure_set (measure_set const &)=delete
 Deleted copy constructor.
void accumulate (MCSignType sign)
 Perform all measurements in the set.
void clear ()
 Remove all measures from the set.
void collect_results (const mpi::communicator &c)
 Collect results from all the measures in the measure set from multiple MPI processes.
std::string get_timings (std::string const &prefix="") const
 Get a formatted string with the timings of all measures.
bool has (std::string const &name) const
 Check if a measure with the given name is registered.
template<typename T>
requires (MCMeasure<T, MCSignType>)
measure_itr_t insert (T &&m, std::string name, bool enable_timer, bool enable_report)
 Add a new measure to the set with a given name.
std::vector< std::string > names () const
 Get a vector of all the measure names.
measure_setoperator= (measure_set &&)=default
 Default move assignment operator.
measure_setoperator= (measure_set const &)=delete
 Deleted copy assignment operator.
void remove (measure_itr_t const &it)
 Remove the measure at the given iterator from the set.
std::string report () const
 Report information about the measures in the set.
double total_duration () const
 Get the total duration of all measures.

Static Public Member Functions

static std::string hdf5_format ()
 Get the HDF5 format tag.

Friends

void h5_read (h5::group g, std::string const &key, measure_set &ms)
 Read the measure set object from HDF5.
void h5_write (h5::group g, std::string const &key, measure_set const &ms)
 Write the measure set object to HDF5.

Member Function Documentation

◆ accumulate()

template<DoubleOrComplex MCSignType>
void triqs::mc_tools::measure_set< MCSignType >::accumulate ( MCSignType sign)
inline

Perform all measurements in the set.

It calls the measure::accumulate method for each measure.

Parameters
signSign of the current MC configuration.

Definition at line 126 of file mc_measure_set.hpp.

◆ collect_results()

template<DoubleOrComplex MCSignType>
void triqs::mc_tools::measure_set< MCSignType >::collect_results ( const mpi::communicator & c)

Collect results from all the measures in the measure set from multiple MPI processes.

It calls the measure::collect_results method for each measure.

Parameters
cMPI communicator.

Definition at line 47 of file mc_measure_set.cpp.

◆ get_timings()

template<DoubleOrComplex MCSignType>
std::string triqs::mc_tools::measure_set< MCSignType >::get_timings ( std::string const & prefix = "") const
nodiscard

Get a formatted string with the timings of all measures.

It calls the measure::get_timings method for each measure and concatenates the results.

Parameters
prefixPrefix string to be added to the beginning of each line (not intended for the user).
Returns
String containing the timings of all measures.

Definition at line 60 of file mc_measure_set.cpp.

◆ has()

template<DoubleOrComplex MCSignType>
bool triqs::mc_tools::measure_set< MCSignType >::has ( std::string const & name) const
inlinenodiscard

Check if a measure with the given name is registered.

Parameters
nameName of the measure.
Returns
True if the measure is registered, false otherwise.

Definition at line 113 of file mc_measure_set.hpp.

◆ insert()

template<DoubleOrComplex MCSignType>
template<typename T>
requires (MCMeasure<T, MCSignType>)
measure_itr_t triqs::mc_tools::measure_set< MCSignType >::insert ( T && m,
std::string name,
bool enable_timer,
bool enable_report )
inline

Add a new measure to the set with a given name.

Throws a std::runtime_error if a measurement with the same name has already been registered.

Template Parameters
Ttriqs::mc_tools::MCMeasure type.
Parameters
mMC measure to add to the set.
nameName of the measure.
enable_timerEnable the timer in the measure::accumulate and measure::collect_results methods.
enable_reportEnable the measure::report method.

Definition at line 94 of file mc_measure_set.hpp.

◆ names()

template<DoubleOrComplex MCSignType>
std::vector< std::string > triqs::mc_tools::measure_set< MCSignType >::names ( ) const
nodiscard

Get a vector of all the measure names.

Returns
std::vector<std::string> containing the names of all registered measures.

Definition at line 37 of file mc_measure_set.cpp.

◆ remove()

template<DoubleOrComplex MCSignType>
void triqs::mc_tools::measure_set< MCSignType >::remove ( measure_itr_t const & it)
inline

Remove the measure at the given iterator from the set.

Parameters
itIterator to the measure to be removed.

Definition at line 103 of file mc_measure_set.hpp.

◆ report()

template<DoubleOrComplex MCSignType>
std::string triqs::mc_tools::measure_set< MCSignType >::report ( ) const
nodiscard

Report information about the measures in the set.

It calls the measure::report method for each measure and concatenates the results.

Returns
Concatenated reports from all measurements.

Definition at line 51 of file mc_measure_set.cpp.

◆ h5_read

template<DoubleOrComplex MCSignType>
void h5_read ( h5::group g,
std::string const & key,
measure_set< MCSignType > & ms )
friend

Read the measure set object from HDF5.

It loops over all registered measures and calls the h5_read function for each measure.

Parameters
gh5::group to be read from.
keyName of the subgroup.
msMeasure set object to be read into.

Definition at line 188 of file mc_measure_set.hpp.

◆ h5_write

template<DoubleOrComplex MCSignType>
void h5_write ( h5::group g,
std::string const & key,
measure_set< MCSignType > const & ms )
friend

Write the measure set object to HDF5.

It loops over all registered measures and calls the h5_write function for each measure.

Parameters
gh5::group to be written to.
keyName of the subgroup.
msMeasure set object to be written.

Definition at line 173 of file mc_measure_set.hpp.


The documentation for this class was generated from the following files: