summaryrefslogtreecommitdiff
path: root/measurement.hpp
blob: 02fde9cfed23e201a3e24bcb961ed54e356f96fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include "spin.hpp"
#include "transformation.hpp"

template <class U, int D, class R, class S> class Model;

template <class U, int D, class R, class S> class measurement {
public:
  virtual void pre_cluster(const Model<U, D, R, S>&, unsigned, const Transformation<U, D, R, S>*){};
  virtual void plain_bond_visited(const Model<U, D, R, S>&, const Spin<U, D, S>*,
                                  const Spin<U, D, S>*, const Spin<U, D, S>&, double){};
  virtual void plain_site_transformed(const Model<U, D, R, S>&, const Transformation<U, D, R, S>&){};

  virtual void ghost_bond_visited(const Model<U, D, R, S>&, const Spin<U, D, S>&,
                                  const Spin<U, D, S>&, double){};
  virtual void ghost_site_transformed(const Model<U, D, R, S>&, const R&){};

  virtual void post_cluster(const Model<U, D, R, S>&){};
};