summaryrefslogtreecommitdiff
path: root/lib/fracture.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fracture.h')
-rw-r--r--lib/fracture.h73
1 files changed, 37 insertions, 36 deletions
diff --git a/lib/fracture.h b/lib/fracture.h
index f56e14a..5eb0a1d 100644
--- a/lib/fracture.h
+++ b/lib/fracture.h
@@ -16,7 +16,6 @@
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
@@ -25,7 +24,6 @@
#include <jst/graph.h>
#include <jst/rand.h>
-
// these defs allow me to switch to long int cholmod in a sitch
#define int_t int
#define uint_t unsigned int
@@ -35,68 +33,69 @@
#define GSL_RAND_GEN gsl_rng_mt19937
typedef struct {
- const graph_t *graph;
- bool *fuses;
- long double *thres;
- double inf;
- cholmod_dense *boundary_cond;
- cholmod_factor *factor;
- bool voltage_bound;
- uint_t num_broken;
- uint_t dim;
- uint_t nep;
- uint_t *evp;
- cholmod_sparse *voltcurmat;
+ const graph_t *graph;
+ bool *fuses;
+ long double *thres;
+ double inf;
+ cholmod_dense *boundary_cond;
+ cholmod_factor *factor;
+ bool voltage_bound;
+ uint_t num_broken;
+ uint_t dim;
+ uint_t nep;
+ uint_t *evp;
+ cholmod_sparse *voltcurmat;
} net_t;
typedef struct {
- uint_t num_broken;
- uint_t *break_list;
- double *conductivity;
- long double *extern_field;
+ uint_t num_broken;
+ uint_t *break_list;
+ double *conductivity;
+ long double *extern_field;
} data_t;
-intptr_t *run_voronoi(uint_t num_coords, double *coords, bool periodic, double xmin, double xmax, double ymin, double ymax);
+intptr_t *run_voronoi(uint_t num_coords, double *coords, bool periodic,
+ double xmin, double xmax, double ymin, double ymax);
-cholmod_sparse *gen_adjacency(const net_t *net, bool dual, bool use_gp, bool symmetric, cholmod_common *c);
+cholmod_sparse *gen_adjacency(const net_t *net, bool dual, bool use_gp,
+ bool symmetric, cholmod_common *c);
cholmod_sparse *gen_laplacian(const net_t *net, cholmod_common *c);
-int edge_to_verts(uint_t width, bool periodic, uint_t edge,
- bool index);
+int edge_to_verts(uint_t width, bool periodic, uint_t edge, bool index);
-int dual_edge_to_verts(uint_t width, bool periodic, uint_t edge,
- bool index);
+int dual_edge_to_verts(uint_t width, bool periodic, uint_t edge, bool index);
-double dual_vert_to_coord(uint_t width, bool periodic, uint_t vert,
- bool index);
+double dual_vert_to_coord(uint_t width, bool periodic, uint_t vert, bool index);
-void factor_update(cholmod_factor *factor, uint_t v1, uint_t v2, cholmod_common *c);
+void factor_update(cholmod_factor *factor, uint_t v1, uint_t v2,
+ cholmod_common *c);
void factor_update2(cholmod_factor *factor, uint_t v1, cholmod_common *c);
void net_notch(net_t *net, double notch_len, cholmod_common *c);
data_t *net_fracture(net_t *net, cholmod_common *c, double cutoff);
double *net_voltages(const net_t *net, cholmod_common *c);
-double *net_currents(const net_t *net, const double *voltages, cholmod_common *c);
+double *net_currents(const net_t *net, const double *voltages,
+ cholmod_common *c);
double net_conductivity(const net_t *net, const double *voltages);
void update_boundary(net_t *instance, const double *avg_field);
-FILE *get_file(const char *prefix, uint_t width, uint_t crack,
- double beta, uint_t iter, uint_t num_iter,
- uint_t num, bool read);
+FILE *get_file(const char *prefix, uint_t width, uint_t crack, double beta,
+ uint_t iter, uint_t num_iter, uint_t num, bool read);
double update_beta(double beta, uint_t width, const double *stress,
- const double *damage, double bound_total);
+ const double *damage, double bound_total);
cholmod_sparse *gen_voltcurmat(uint_t num_edges, uint_t num_verts,
- uint_t *edges_to_verts, cholmod_common *c);
+ uint_t *edges_to_verts, cholmod_common *c);
net_t *net_copy(const net_t *net, cholmod_common *c);
void net_free(net_t *instance, cholmod_common *c);
-net_t *net_create(const graph_t *g, double inf, double beta, double notch_len, bool vb, cholmod_common *c);
+net_t *net_create(const graph_t *g, double inf, double beta, double notch_len,
+ bool vb, cholmod_common *c);
bool break_edge(net_t *instance, uint_t edge, cholmod_common *c);
@@ -111,11 +110,13 @@ double *get_corr(net_t *instance, uint_t **dists, cholmod_common *c);
double *bin_values(graph_t *network, uint_t width, double *values);
-cholmod_dense *bound_set(const graph_t *g, bool vb, double notch_len, cholmod_common *c);
+cholmod_dense *bound_set(const graph_t *g, bool vb, double notch_len,
+ cholmod_common *c);
data_t *data_create(uint_t num_edges);
void data_free(data_t *data);
-void data_update(data_t *data, uint_t last_broke, long double strength, double conductivity);
+void data_update(data_t *data, uint_t last_broke, long double strength,
+ double conductivity);
long double rand_dist_pow(const gsl_rng *r, double beta);