#include #include #include #include #include #include #include #include #include #include "analysis_tools.hpp" class ma : public hooks { // need: // - interface for turning on and off specific measurements // private: unsigned Mx; unsigned My; unsigned num; uint64_t Nc; uint64_t NC; uint64_t Nl; uint64_t Nm; uint64_t Ns; uint64_t Nn; uint64_t Nb; uint64_t NB; uint64_t Na; uint64_t Ne; uint64_t NA; uint64_t NE; uint64_t Nq; // measurement storage std::vector sc; std::vector sC; std::vector sn; // non-spanning cluster size distribution std::vector ss; // minimal spanning cluster size distribution std::vector sm; // spanning cluster size distribution std::vector sl; // final avalanche size distribution std::vector sb; // final avalanche size distribution std::vector sB; // final avalanche size distribution std::vector sd; // final avalanche size distribution std::vector sD; // final avalanche size distribution std::vector sf; // final avalanche size distribution std::vector sa; // non-final avalanche size distribution std::vector sA; // non-final avalanche size distribution std::vector se; // non-final avalanche size distribution std::vector sE; // non-final avalanche size distribution std::vector si; std::vector sI; std::vector sy; std::vector sY; std::vector sz; std::vector sZ; std::vector cc; std::vector cC; std::vector cn; std::vector cs; std::vector cm; std::vector cl; std::vector cb; std::vector cB; std::vector ca; std::vector ce; std::vector cA; std::vector cE; std::vector cq; ClusterTree last_clusters; ClusterTree last_clusters_v; std::vector last_backbone_c; std::vector last_backbone_v; public: long double lc; long double lv; long double lm; std::list moduliA; std::list moduliE; std::list> avalanches; std::list> evalanches; std::list last_avalanche; std::list last_evalanche; std::string model_string; ma(unsigned Lx, unsigned Ly, double beta, double w); ma(unsigned n, double a, double beta, double w); ~ma(); void pre_fracture(const network &) override; void bond_broken(const network& net, const current_info& cur, unsigned i) override; void post_fracture(network &n) override; };