Glauber Dynamics in C
Simulation for Glauber Dynamics written in C11
Todo List
Global draw_torus2png (graph *draw_torus, int n, int d, unsigned int duration, FILE *out_stream, int max_width, int max_height, int max_dpi, int penwidth, double passed_time)

Add a drawing function for values d other than 2.

Separate the string generation and png rendering to make the png rendering reusable by other graphviz string generating drawing functions.

Understand graphviz library better and avoid the string generation step alltogether and directly build the graph itself.

Find a more elegant solution to the duration parameter than just rendering the same frame duration amount of times. Ideally a way that allows for double duration (i.e. generate one frame and assign it a duration on sendover through the pipe) since the exponential times are doubles and not integers..

Global graph_construct_torus (int n, int d, int init_weight)
Move this and draw_torus2png to its own header in libweightedgraph and define a easily extendable general {graph_constructing_function, graph_drawing_function} struct and make graphs choosable from the command line.
Global vertex_free (vertex *v)
Add graph_rm_vertex to weightedgraph.h which automatically takes care of removing edges from all neighbours and then frees the vertex.