diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2019-04-26 12:43:34 -0400 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2019-04-26 12:43:34 -0400 |
commit | 62c9955c37b2f9729d964093b129934ff8287cd4 (patch) | |
tree | 158e54350a7e1671382dc5d80b4bc0acf0acde3c /src | |
parent | 1cc17734cf7e872ea67782284d70004d6d02c473 (diff) | |
download | fuse_networks-62c9955c37b2f9729d964093b129934ff8287cd4.tar.gz fuse_networks-62c9955c37b2f9729d964093b129934ff8287cd4.tar.bz2 fuse_networks-62c9955c37b2f9729d964093b129934ff8287cd4.zip |
fixed measurement of avalanches to now be at constant external strain
Diffstat (limited to 'src')
-rw-r--r-- | src/animate.cpp | 13 | ||||
-rw-r--r-- | src/measurements.cpp | 2 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/animate.cpp b/src/animate.cpp index be0beef..9ba335b 100644 --- a/src/animate.cpp +++ b/src/animate.cpp @@ -15,7 +15,7 @@ animate::animate(double Lx, double Ly, unsigned window_size, int argc, char *arg void animate::pre_fracture(const network &n) { lv = std::numeric_limits<long double>::lowest(); - avalanches = {{}}; + avalanches = {}; boost::remove_edge_if(trivial, G); glClearColor(1.0f, 1.0f, 1.0f, 1.0f ); @@ -49,8 +49,8 @@ void animate::pre_fracture(const network &n) { } void animate::bond_broken(const network& n, const current_info& cur, unsigned i) { - long double c = logl(cur.conductivity / fabs(cur.currents[i])) + n.thresholds[i]; - if (c > lv && avalanches.back().size() > 0) { + long double c = n.thresholds[i] - logl(fabs(cur.currents[i])); + if (c > lv) { lv = c; avalanches.push_back({i}); } else { @@ -94,19 +94,18 @@ void animate::post_fracture(network &n) { std::default_random_engine gen; std::uniform_real_distribution<double> dis(0.0,1.0); - bool cycle_present = true; auto av_it = avalanches.rbegin(); - while (cycle_present) { + while (true) { for (unsigned e : *av_it) { boost::remove_edge(n.G.dual_edges[e].v[0], n.G.dual_edges[e].v[1], G); n.fuses[e] = false; } auto cracks = find_minimal_crack(G, n); - std::cout << cracks.size() << "\n"; + if (cracks.size() == 0) { - cycle_present = false; + break; } av_it++; diff --git a/src/measurements.cpp b/src/measurements.cpp index ffd814d..00643b3 100644 --- a/src/measurements.cpp +++ b/src/measurements.cpp @@ -172,7 +172,7 @@ void ma::pre_fracture(const network&) { } void ma::bond_broken(const network& net, const current_info& cur, unsigned i) { - long double c = logl(cur.conductivity / fabs(cur.currents[i])) + net.thresholds[i]; + long double c = n.thresholds[i] - logl(fabs(cur.currents[i])); if (c > lv) { if (avalanches.size() > 0) { sa[avalanches.back().size() - 1]++; |