#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "analysis_tools.hpp" typedef boost::graph_traits::vertex_descriptor Vertex; typedef boost::graph_traits::vertices_size_type VertexIndex; class pm : public hooks { private: unsigned p; Graph G; std::vector rank; std::vector parent; boost::disjoint_sets ds; // measurement storage std::vector sc; // non-spanning cluster size distribution 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 sp; public: std::string model_string; pm(unsigned Lx, unsigned Ly); pm(unsigned n, double a); ~pm(); 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; };