From 0ad947f800bcbe2c488d2d5cbcdb16c46e6d3857 Mon Sep 17 00:00:00 2001 From: Jaron Date: Tue, 8 Nov 2016 08:17:26 -0500 Subject: various changes, including adding central moments and changing the fuse thresholds to long doubles --- src/fracture.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/fracture.c') diff --git a/src/fracture.c b/src/fracture.c index 11e6efd..7ee82fb 100644 --- a/src/fracture.c +++ b/src/fracture.c @@ -8,7 +8,7 @@ int main(int argc, char *argv[]) { // defining variables to be (potentially) set by command line flags uint8_t filename_len; uint32_t N; - uint_t L; + uint_t L, refactor_every; double beta, inf, cutoff, crack_len; bool crack_growth_crit, save_data, save_cluster_dist, use_voltage_boundaries, use_dual, save_network, save_crit_stress, save_stress_field, save_voltage_field, save_toughness, save_energy, save_conductivity, @@ -25,6 +25,7 @@ int main(int argc, char *argv[]) { // set default values N = 100; + refactor_every = UINT_MAX; L = 16; crack_len = 0.; beta = .3; @@ -45,7 +46,7 @@ int main(int argc, char *argv[]) { save_damage_field = false; save_conductivity = false; save_toughness = false; - save_energy = false; + save_energy = true; save_threshold = false; @@ -58,11 +59,14 @@ int main(int argc, char *argv[]) { // get commandline options - while ((opt = getopt(argc, argv, "n:L:b:B:q:dVcoNsCrtDSvel:gTE")) != -1) { + while ((opt = getopt(argc, argv, "n:L:b:B:q:dVcoNsCrtDSvel:gTER:")) != -1) { switch (opt) { case 'n': N = atoi(optarg); break; + case 'R': + refactor_every = atoi(optarg); + break; case 'L': L = atoi(optarg); break; @@ -303,7 +307,7 @@ int main(int argc, char *argv[]) { graph_t *g = graph_create(lattice, boundary, L, use_dual, &c); net_t *net = net_create(g, inf, beta, crack_len, use_voltage_boundaries, &c); net_t *tmp_net = net_copy(net, &c); - data_t *data = net_fracture(tmp_net, &c, cutoff); + data_t *data = net_fracture(tmp_net, &c, cutoff, refactor_every); net_free(tmp_net, &c); uint_t max_pos = 0; @@ -357,7 +361,8 @@ int main(int argc, char *argv[]) { break; } - break_edge(net, next_broken, &c); + bool refactor = ((j + 1) % refactor_every) == 0; + break_edge(net, next_broken, &c, refactor); double val = data->extern_field[j]; if (save_cluster_dist) { -- cgit v1.2.3-70-g09d2