# Create a fully connected graph
G = nx.complete_graph(12)

# Both node and edge dynamics are required
G.graph['node_dyn'] = True
G.graph['edge_dyn'] = True

# All nodes are chaotic Lorenz oscillators
netevo.set_all_node_dynamics(G, lorenz_node_dyn)
# All edges follow the adaptive rule
netevo.set_all_edge_dynamics(G, adaptive_law_edge_dyn)

# Randomly assign node states
netevo.rnd_uniform_node_states(G, [(0.1, 20.0), (0.1, 20.0), (0.1, 20.0)])
# Edges all start with a very weak strength
netevo.rnd_uniform_edge_states(G, [(0.00000001, 0.00000001)])

#=========================================
# DEFINE THE VISUAL REPORTER
#=========================================

# Create the figure to display the visualization
fig = plt.figure(figsize=(6.5,6.5))
# Node positions to use for the visualization
pos = nx.circular_layout(G)
# Function to generate the visualisation of the network
def visual_reporter (G, t):
    plt.clf()
    n_sizes = []
    for i in G.nodes():
        new_size = 100.0 * G.node[i]['state'][0]
    G.node[n]['color'] = 'b'
G.node[12]['color'] = 'r'

# Both node and edge dynamics are required
G.graph['node_dyn'] = True
G.graph['edge_dyn'] = True

# All nodes are chaotic Lorenz oscillators
netevo.set_all_node_dynamics(G, lorenz_node_dyn)
# All edges follow the adaptive rule
netevo.set_all_edge_dynamics(G, netevo.no_edge_dyn)

# Randomly assign node states
netevo.rnd_uniform_node_states (G, [(3.0, 10.0), (3.0, 10.0), (3.0, 10.0)])
# Edges all start with a very weak strength
netevo.rnd_uniform_edge_states (G, [(0.3, 0.3)])

# Our pinning node has no dynamics just fixed states that change
G.node[12]['state'] = [30.0, 30.0, 30.0]
G.node[12]['dyn'] = pinner_node_dyn

#=========================================
# DEFINE THE VISUAL REPORTER
#=========================================

# Turn on animation in pylab
# http://stackoverflow.com/questions/8965055/basic-animation-with-matplotlibs-pyplot
pylab.ion()
# Create the figure to display the visualization
fig = plt.figure(figsize=(6.5,6.5))
# Node positions to use for the visualization