Data Structures | Typedefs | Functions

ne_dyn.h File Reference

Network dynamics related structures and functions. More...

#include "ne_std.h"

Go to the source code of this file.

Data Structures

struct  ne_dyn_node_t
 Node dynamics structure. More...
struct  ne_dyn_edge_t
 Edge dynamics structure. More...
struct  ne_dyn_node_lib_el
 Node dynamics list structure (linked list). More...
struct  ne_dyn_edge_lib_el
 Edge dynamics list structure (linked list). More...

Typedefs

typedef ne_err_code_t ne_dyn_n_fn_t (int i, void *sys, double t, const double *y, double *dydt, double *params)
 Node dynamics function type.
typedef ne_err_code_t ne_dyn_e_fn_t (int eid, int i, int j, void *sys, double t, const double *y, double *dydt, double *params)
 Edge dynamics function type.
typedef struct ne_dyn_node_lib_el ne_dyn_node_lib_t
 Node dynamics list structure (linked list).
typedef struct ne_dyn_edge_lib_el ne_dyn_edge_lib_t
 Edge dynamics list structure (linked list).

Functions

void ne_dyn_finalise (void)
 Clean up memory used by the dynamics library.
ne_err_code_t ne_dyn_add_node_dyn (ne_dyn_node_t *nodeDyn)
 Add a new node dynamic to the library.
ne_err_code_t ne_dyn_add_edge_dyn (ne_dyn_edge_t *edgeDyn)
 Add a new edge dynamic to the library.
ne_err_code_t ne_dyn_remove_node_dyn (const char *name)
 Remove a node dynamic from the library.
ne_err_code_t ne_dyn_remove_edge_dyn (const char *name)
 Remove a edge dynamic from the library.
ne_dyn_node_tne_dyn_find_node_dyn (const char *name)
 Find a given node dynamic from its name.
ne_dyn_edge_tne_dyn_find_edge_dyn (const char *name)
 Find a given node dynamic from its name.

Detailed Description

Network dynamics related structures and functions.

Dynamics for nodes and edges are held within a global library which can be queried when loading dynamical networks from file. Each form of node and edge dynamic has a name which is used when loading an ne_system from file. Ensure that any required dynamics have been loaded to the library before loading an ne_system using them; otherwise default (null) dynamics will be used. For a list of built in node and edge dynamics that can be used see the libraries in ne_dyn_node_ode_lib/ne_dyn_edge_ode_lib (ODE dynamics) and ne_dyn_node_map_lib/ne_dyn_edge_map_lib (Discrete time mappings).

Author:
T.E. Gorochowski

Definition in file ne_dyn.h.


Typedef Documentation

typedef ne_err_code_t ne_dyn_e_fn_t(int eid, int i, int j, void *sys, double t, const double *y, double *dydt, double *params)

Edge dynamics function type.

This is used for both continuous differential equations and discrete time dynamics. The variable *y is an array with node states held in the first n*STATES_PER_NODE, followed by m*STATES_PER_EDGE edge states where n and m are the number of nodes and edges respectively. For discrete time mappings *dydt should be set to the next point in the mapping.

Definition at line 54 of file ne_dyn.h.

Edge dynamics list structure (linked list).

typedef ne_err_code_t ne_dyn_n_fn_t(int i, void *sys, double t, const double *y, double *dydt, double *params)

Node dynamics function type.

This is used for both continuous differential equations and discrete time dynamics. The variable *y is an array with node states held in the first n*STATES_PER_NODE, followed by m*STATES_PER_EDGE edge states where n and m are the number of nodes and edges respectively. For discrete time mappings *dydt should be set to the next point in the mapping.

Definition at line 46 of file ne_dyn.h.

Node dynamics list structure (linked list).


Function Documentation

ne_err_code_t ne_dyn_add_edge_dyn ( ne_dyn_edge_t edgeDyn  ) 

Add a new edge dynamic to the library.

Definition at line 85 of file ne_dyn.c.

ne_err_code_t ne_dyn_add_node_dyn ( ne_dyn_node_t nodeDyn  ) 

Add a new node dynamic to the library.

Definition at line 64 of file ne_dyn.c.

void ne_dyn_finalise ( void   ) 

Clean up memory used by the dynamics library.

This is automatically called by ne_finalise and should not need to be called manually.

Definition at line 40 of file ne_dyn.c.

ne_dyn_edge_t* ne_dyn_find_edge_dyn ( const char *  name  ) 

Find a given node dynamic from its name.

Definition at line 219 of file ne_dyn.c.

ne_dyn_node_t* ne_dyn_find_node_dyn ( const char *  name  ) 

Find a given node dynamic from its name.

Definition at line 194 of file ne_dyn.c.

ne_err_code_t ne_dyn_remove_edge_dyn ( const char *  name  ) 

Remove a edge dynamic from the library.

Definition at line 150 of file ne_dyn.c.

ne_err_code_t ne_dyn_remove_node_dyn ( const char *  name  ) 

Remove a node dynamic from the library.

Definition at line 106 of file ne_dyn.c.